Introduction to Operating Systems Windows process and thread management - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Introduction to Operating Systems Windows process and thread management

Description:

... and provide support for the higher level objects used by the Object Manager ... Mutex objects provide mutual exclusion only one thread can have a mutex object ... – PowerPoint PPT presentation

Number of Views:530
Avg rating:3.0/5.0
Slides: 22
Provided by: Lesley106
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Operating Systems Windows process and thread management


1
Introduction to Operating Systems Windows
process and thread management
  • In this lecture we will cover
  • Threads and processes in Windows
  • Thread priority and scheduling
  • Thread synchronisation
  • Interprocess communication

2
Windows structure overview
3
Processes and threads
  • In Windows a process consists of program code,
    execution context ( the address space of the
    process plus such things as the access token)
    resources allocated to the process i.e. handles,
    one or more threads
  • Threads are the units of execution they execute
    program code using the processes context and
    resources

4
  • A thread has its own context (register values
    including instruction pointer, execution stack,
    and such things as scheduling priority)
  • Threads are scheduled onto the processor, not a
    process

5
  • Processes and threads are managed by 2 components
    in Windows
  • the process and thread manager
  • and
  • the kernel

6
kernel
  • The kernel is responsible for
  • Thread scheduling
  • Interrupt and exception handling
  • Low level processor synchronisation
  • Recovery after power failure
  • In normal Operating Systems the kernel refers to
    all the operating systems components that run in
    kernel mode. In Windows as we have seen this
    applies to all the Windows Executive components
    (everything below the line in the diagram).

7
  • However, perversely, Windows applies the name
    kernel to just one component - a low level layer
    of the OS that manages much of the execution of
    threads within processes
  • The kernel uses objects to represent and manage
    low level threads and processes
  • However these kernel objects are different from
    those managed by the Object Manager
  • They are lower level and provide support for the
    higher level objects used by the Object Manager

8
Process and thread manager
  • Process manager is part of the Windows Executive
    and implements the representation of processes
    and threads that are available to other parts of
    the Executive and provides high level services to
    manage and control processes and threads
  • Process and thread manager provides functions to
  • Create and destroy processes
  • Control resource allocation to processes
  • Keep track of information about processes and
    threads

9
  • Processes are created by other processes by
    making a CreateProcess system call
  • Unlike Unix/Linux the parent and child process
    are independent of each other remember fork in
    Unix/Linux creates the child as a copy of the
    parent and hence has a copy of the parents
    address space
  • In Windows child process has completely separate
    address space, etc.
  • Hence Windows does not keep track of process
    hierarchies

10
Thread scheduling
  • Windows maintains a list of threads that are in
    the system
  • Threads may be in one of several different states
  • Ready thread can execute but waiting for a
    processor
  • Running running on a processor
  • Standby - selected to run next on a processor

11
  • Waiting unable to execute until some event
    occurs (typically I/O)
  • Terminated
  • All processes have at least one thread known as
    the base thread created when the process is
    created

12
  • The kernel implements the dispatcher code, which
    determines which thread to run next
  • The dispatcher implements pre-emptive scheduling
    among threads
  • The dispatcher schedules threads without
    reference to the process they belong to hence a
    process that has more threads will if everything
    else is equal have a greater share of the
    processor

13
  • The scheduling algorithm is based on a multilevel
    priority queue approach with each thread having a
    priority and hence belonging to a given queue
  • A ready thread is placed in the queue which
    represents its assigned priority
  • There are 32 priority queue levels designated by
    numbers with 31 highest priority and 0 lowest
  • Dispatcher starts with highest priority queue and
    schedules threads in order in queue in round
    robin fashion

14
  • Each thread is given a time quantum in which to
    execute and it either blocks itself waiting on
    some I/O event or synchronisation event or the
    quantum expires
  • Once a given queue is empty, the dispatcher then
    proceeds to the next lowest priority queue and so
    on until the queues are all empty or a higher
    level priority thread enters a ready state i.e.
    one of the higher level queues is now no longer
    empty and dispatcher pre-empts lower priority
    running thread

15
  • Highest priority levels (16-31) is for real-time
    threads (needing immediate responsiveness) the
    real-time priorities are static
  • Lower priority levels (0-15) are for dynamic
    priority threads
  • A processes base thread is given a base priority
    which is the minimum priority a thread can have

16
  • Each process has
  • a base priority class (a range of priority levels
    which the define the possible range of base
    priorities) and
  • a base priority level which specifies the
    relative base priority a threads should have in
    the base priority class

17
  • Each thread then takes on priority values
    dynamically i.e. it changes over time
  • e.g. if the thread is delayed waiting on an I/O
    event, when the I/O event occurs and the thread
    becomes ready again, its priority is increased
    temporarily.
  • The size of the increase depends on the length of
    the wait the longer the wait the greater the
    increase in priority

18
Traps and exception handling
  • Kernel implements a trap handler which deals with
    hardware interrupts and processor exceptions
  • The trap handler disables interrupts, determines
    the cause of the interrupt, saves processor
    state, re-enables interrupts and dispatches code
    to deal with type of interrupt/exception found
    (Interrupt service routine for I/O events or
    traps from running code to request some service
    or exception handler to handle problems such as
    attempt to execute invalid instruction)

19
Thread synchronisation
  • Windows provides a set of dispatcher objects
    which can be used for synchronisation of thread
    behaviour
  • These dispatcher objects can be in a signalled
    state (when the event that the thread is waiting
    for occurs) or a unsignaled state (when the event
    has not yet occurred)

20
  • Event objects represent events such as I/O events
    when the relevant event occurs the object
    manager sets the event object to the signalled
    state
  • Mutex objects provide mutual exclusion only one
    thread can have a mutex object it does this by
    setting the object into an unsignaled state. Once
    the thread completes its activity it sets the
    mutex object to the signalled state
  • Waitable timer objects these objects remain
    unsignaled until a given time has elapsed

21
Interprocess communication
  • Threads (and hence also processes) can
    communicate using a variety of methods
  • Pipes work very similar to Unix
    unidirectional communication via a shared buffer
  • Sockets similar to pipes but usually connect
    processes and threads on different machines
  • Remote procedure calls allows a thread in one
    process to invoke the execution of code in
    different processes address space
  • File sharing is also implemented
Write a Comment
User Comments (0)
About PowerShow.com