1 / 13

Threads

Threads. Chapter 4. Modern Process & Thread. Process is an infrastructure in which execution takes place  ( address space + resources) Thread is a program in execution within a process context – each thread has its own execution stack. Stack. Data. Thread. Thread. Stack. Process.

xaviere
Download Presentation

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. Threads Chapter 4

  2. Modern Process & Thread • Process is an infrastructure in which execution takes place  (address space + resources) • Thread is a program in execution within a process context – each thread has its own execution stack Stack Data Thread Thread Stack Process … Program Stack Thread Operating System

  3. Single-threaded approaches Multithreaded Approaches MS-DOS Some variants of UNIX Windows, Solaris, modern versions of UNIX

  4. Thread (Lightweight Process) • An execution state (running, ready, etc.) • Saved thread context when not running • Has an execution stack • Some per-thread static storage for local variables • Access to the memory and resources of its process • all threads of a process share this

  5. Benefits of Threads • Takes less time to create a new thread than a process • Less time to terminate a thread than a process • Less time to switch between two threads within the same process • Since threads within the same process share memory and files, they can communicate with each other without invoking the kernel Shared Address Space • All threads in a process implicitly use that process’s address space • Threads can share a program and data • If you want sharing, encode your work as threads in a process • Threads in separate processes can not facilitate sharing

  6. Thread Examples • Foreground to background work (spreadsheet: one thread reading user input, another executing the commands and updating the spreadsheet; yet another making periodic backups) • Asynchronous processing (ex: a thread performing periodic backups against power failures in a word-processor) • Fast execution (on a Multiprocessor system, multiple threads can execute in parallel) • Modular program structure (different tasks/activities in a program may be implemented using different threads) • Client/Server computing

  7. User-Level Threads (ULT) • All thread management is done by the application • The kernel is not aware of the existence of threads and schedules the process as a unit and assigns a single execution state (Ready, Running, Blocked, etc.) • Any application can be programmed to be multithreaded by using a threads librarywhich contains code for creating and destroying threads, for passing messages and data between threads, for scheduling thread execution, and for saving and restoring thread contexts. • Disadvantages: • when a ULT executes a blocking system call, all of the threads within the same process are blocked • can not take advantage of multiprocessing

  8. Kernel-Level Threads (KLT) • W2K, Linux, and OS/2 are examples of this approach • All of the work of thread management is done by the kernel. i.e. no thread management code in the program. • Kernel maintains context information for the process as a whole and for individual threads within the process • Scheduling is done by the kernel on a thread basis Advantages: • Kernel can simultaneously schedule multiple threads from the same process on multiple processors • If one thread in a process is blocked, the kernel can schedule another thread of the same process Disadvantage: transfer of control from one thread to the next in the same process requires a mode switch to the kernel

  9. Combined Approaches • Example: SUNSolaris • Thread creation, destruction, bulk of scheduling and synchronization are done in the user space. • multiple threads within the same application can run in parallel on multiple processors • if one is blocked, another thread within the same application need not block

  10. POSIX Thread Library (Linux) http://web.mst.edu/~ercal/284/ThreadExamples/thread_handout.doc • Thread creation pthread_create() • Synchronization pthread_mutex_lock(), pthread_mutex_unlock(), pthread_mutex_trylock() • Suspension pthread_cond_wait(), pthread_cond_signal(), pthread_join() • Yielding pthread_yield() • Termination pthread_exit()

  11. Symmetric Multiprocessing • Kernel can execute on any processor • Typically each processor does self-scheduling from the pool of available processes or threads

  12. Multiprocessor Operating System Design Considerations • Concurrent processes or threads • Synchronization • Scheduling • Memory Management • Reliability and Fault Tolerance

More Related