1 / 25

Processes & Threads

Introduction to Operating Systems: Module 5. Processes & Threads. CPU scheduling queue. From Other States. Remove the Running Process. Ready Process. PCBs. Enqueuer. Ready Queue. CPU. Dispatcher. Context Switcher. Schedulers. Short-term scheduler (STS)

ilar
Download Presentation

Processes & Threads

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Operating Systems: Module 5 Processes & Threads

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

  3. Schedulers • Short-term scheduler (STS) • Selects a process from ready queue and give it CPU (dispatch) • Determine if the running process should be preempted (preempt) • Medium-term scheduler (MTS) • When needed, chooses ready processes to be saved to disk (suspend), or restored from disk (activate) • Long-term scheduler (LTS) • Initiates process (activate) • 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. terminated ready queue Process queues cpu i/o I/O queue I/O request time slice expires child executes join fork a child condition queue resource queue resource request

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

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

  7. Process switching • 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 • Clock • process uses all of its time slice • the exception handler will preempt the process • 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 • Not all interrupts entail process switching • control can just return to the interrupted program • only processor state information needs to be saved • This is called mode switching • move from user mode to protected mode • Less overhead than process switching • no need to update PCB

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

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

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

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

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

  15. Why threads become popular now? • 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 • Kernel-supported threads (Mach, OS/2, NT) • User-level threads; supported above the kernel, via a set of library calls at the user level • Hybrid approach implements both user-level and kernel-supported threads (Solaris)

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

  18. 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 Kernel-level thread Each process consists of several threads Basic scheduling unit is thread Can run on different CPUs in SMP in parallel Kernel-level versus User-level threads

  19. Advantages of kernel threads • 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 • Threads are cheap • can be implemented at user levels, no kernel resources • Threads are fast • no system calls, switching modes involved

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

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

  23. Mixed approach OS schedules light-weight process (LWP) User-level library schedules user-level threads User threads are cheap, can be thousands per task 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 Sun Solaris 2

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

  25. 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 Microsoft-Style threads: WIN32 threads (Window95, NT) OS/2 threads (IBM OS/2) Others: C Threads in Mach OS (now part of Macintosh OS X) Examples of threads packages

More Related