Presentation is loading. Please wait.

Presentation is loading. Please wait.

Processes & Threads Introduction to Operating Systems: Module 5.

Similar presentations


Presentation on theme: "Processes & Threads Introduction to Operating Systems: Module 5."— Presentation transcript:

1 Processes & Threads Introduction to Operating Systems: Module 5

2 CPU scheduling queue Enqueuer Ready Queue Dispatcher Context Switcher Ready Process PCBs CPU Remove the Running Process From Other States

3 Schedulers u Short-term scheduler (STS)  Selects a process from ready queue and give it CPU (dispatch)  Determine if the running process should be preempted (preempt) u Medium-term scheduler (MTS)  When needed, chooses ready processes to be saved to disk (suspend), or restored from disk (activate) u Long-term scheduler (LTS)  Initiates process (activate) u LTS and MTS determine the degree of multiprogramming  Processes may be either I/O-bound or CPU-bound  want to keep a good mix of each type of process to maximize resource utilization

4 join Process queues ready queue cpu I/O queuei/oI/O request time slice expires fork a child resource request resource queue condition queue child executes terminated

5 Queues as linked lists of PCBs Running Ready Disk1 Disk2 Printer

6 Process switching u Switching from one process to another u Often tens of microseconds (must be fast!) u Increases utilization of CPU  I/O and processing in parallel u incurs minimal overhead u CPU may have a process switch instruction

7 Process switching u A process switch may occur whenever the OS is invoked  system call  explicit request by the program, such as open file  the process may be blocked If so, OS will dispatch a new process  Trap (non-system call)  an error resulted from the last instruction may cause the process to be moved to the terminate state  Interrupt  the cause is external to the execution of the current instruction  control is transferred to the exception handler  After servicing the exception, a new process may be dispatched

8 Process switching interrupts u Clock  process uses all of its time slice  the exception handler will preempt the process u I/O  an I/O device has completed a transfer  wakeup processes waiting for this event and resume interrupted process, or  preempt interrupted process and dispatch a ready process with higher priority

9 Mode switching u Not all interrupts entail process switching  control can just return to the interrupted program  only processor state information needs to be saved u This is called mode switching  move from user mode to protected mode u Less overhead than process switching  no need to update PCB

10 u Stop the current process (process A)  Save enough state information (or context ) so that process A can be restarted later u Select a ready process (process B) u Load B’s state  memory mapping info, program counter, general registers, open file table (pointer), etc. u (Re)start B Process switching steps

11 Threads u A sequential execution stream within a process  sometimes called a lightweight process (LWP) u The major advantages of threads  low cost of thread switching  easy mechanism for shared resources  easily take advantage of multiprocessor system u The major disadvantages  harder to debug  unneeded overhead if threads aren’t used

12 Threads u Threads within a process (or task) share  text segment  data segment  OS resources (open files and signals) u Each thread has its own  program counter  register set  stack space

13 A Process (kernel view) Kernel Support Program Text Data Process Status Resources Allocate resources to processes when they are needed

14 A task and its family of threads Program Text Process Status Global data Thread Status Stack Thread Resources Task (Process) Program counters

15 Why threads become popular now? u SMPs (Symmetric Multiprocessors)  2 to 128 processors sharing  System bus  I/O system  Main memory  One operating system for all processors

16 Three types of thread systems u Kernel-supported threads (Mach, OS/2, NT) u User-level threads; supported above the kernel, via a set of library calls at the user level u Hybrid approach implements both user-level and kernel-supported threads (Solaris)

17 A simple view Thread 0 Thread 1 Thread 3 Thread 2 Thread run time libraries Kernel (see process) User-level Kernel (see thread) Kernel-level System call A User Program Thread 0 Thread 1 Thread 3 Thread 2

18 Kernel-level versus User-level threads u User-level thread  User-level activities; no kernel involvement  Basic scheduling unit in OS is process  Threads of the same process can not run on different CPUs in SMP in parallel u Kernel-level thread  Each process consists of several threads  Basic scheduling unit is thread  Can run on different CPUs in SMP in parallel

19 Advantages of kernel threads u Higher application throughput  if there were no kernel thread support  need I/O means the process goes into waiting state and wait until the I/O is complete  with multiple kernel threads per task  Block the I/O requesting thread and continue to work on another thread  Increases the overall throughput of the application

20 Advantages of user level threads u Threads are cheap  can be implemented at user levels, no kernel resources u Threads are fast  no system calls, switching modes involved

21 Using Threads - Windowing System Window Threads Application Minimized thread switching time Better response time

22 Other Examples u Robot control: single program, multiple concurrent operations u Airline reservations: one thread per customer  thread per task u Network server: single program, must handle concurrent requests from multiple users (examples: Web server)  thread pool

23 Sun Solaris 2 u Mixed approach  OS schedules light-weight process (LWP)  User-level library schedules user-level threads u User threads are cheap, can be thousands per task u Each LWP supports one or more user threads  LWPs are what we’ve been calling kernel threads  Solaris has entities called kernel threads; they are scheduling artifacts contained in the OS

24 Sun Solaris 2 (Mixed) Kernel thread Task 1 Task 2Task 3 CPU KERNEL Light weight process (LWP) User-level thread CPU

25 Examples of threads packages u POSIX-style threads:  OSF/DCE, Chorus threads, POSIX P1003.4a pthreads  SunOS Multi-Thread Architecture (Solaris 2)  IBM AIX 4.x, SCO UnixWare 2.0 u Microsoft-Style threads:  WIN32 threads (Window95, NT)  OS/2 threads (IBM OS/2) u Others: C Threads in Mach OS (now part of Macintosh OS X)


Download ppt "Processes & Threads Introduction to Operating Systems: Module 5."

Similar presentations


Ads by Google