1 / 16

Processes & Threads

Processes & Threads. Resource ownership – Process or Task Scheduling/execution – Thread or lightweight process. One process, one thread (MS-DOS). One process, multiple threads (Java Runtime). Multiple processes, one thread per process (Unix). Multiple processes,

marja
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. Processes & Threads • Resource ownership – Process or Task • Scheduling/execution – Thread or lightweight process One process, one thread (MS-DOS) One process, multiple threads (Java Runtime) Multiple processes, one thread per process (Unix) Multiple processes, multiple threads (W2K, Solaris, Linux)

  2. Processes & Threads (continue) • In a multithreaded environment, the followings are associated with a process: • Address space to hold the process image • Protected access to processors, other processes (IPC), files, and I/O resources (devices & channels) • Within a process, there may be one or more threads, each with the following: • A thread execution state (Running, Ready, etc) • A saved context when not running – a separate program counter • An execution stack • Some static storage for local variables for this thread • Access to memory and resources of its process, shared with all other threads in that process (global variables)

  3. Single Threaded and Multithreaded Process Models

  4. Key Benefits of Threads • It takes far less time to create a new thread in an existing process than to create a brand-new process. (10X) • It takes less time to terminate a thread than a process. • It takes less time to switch between two threads within the same process. • Threads enhance efficiency in communication between different executing programs – since threads within the same process share memory and files, they can communicate with each other without invoking the kernel.

  5. Key Benefits of Threads (continue)

  6. Key Benefits of Threads (continue.)

  7. Thread Functionality • Thread States • Running, Ready, and Blocked • Suspend is at process-level • Four Basic Thread Operations for a change in Thread State • Spawn: threads can be spawned from a process or a thread within the same process which provide an instruction pointer and its arguments. The new thread will have its own register context and stack space and be out in the Ready Queue. • Block: When a thread needs to wait for an event, it will block (saving its user registers, program counter, and stack pointer). The processor may now turn to execute another ready thread. • Unblock: When the waited event occurs, the waiting thread is moved to the Ready Queue. • Finish: When the thread completes, its register context and stacks are deallocated. • Thread Synchronization • To be covered in Chapter 5 & 6.

  8. User-Level and Kernel-Level Threads

  9. User-Level Threads • Thread management is done by the application and the kernel is not aware of the existence of threads • Advantages: • Thread switching does not require user/kernel mode switching. • Thread scheduling can be application specific. • ULTs can run on any O.S through a thread library. • Disadvantages: • When a ULT executes a system call, not only the thread is blocked, but all of the threads within the process are blocked. • Multithreaded application cannot take advantage of multiprocessing since kernel assign one process to only one processor at a time.

  10. Kernel-Level Threads • Thread management is done by the kernel. No threaded management code in the application – W2K, Linux. • Advantages: • The kernel can scheduling multiple threads from the same process on multiple processors. • If one thread is blocked, the kernel can schedule another thread on the same process. • Kernel routines themselves can be multithreaded. • Disadvantages: • Thread switching within the same process requires kernel mode switching

  11. User and Kernel-Level Threads Performance • Performance • Null fork: the time to create, schedule, execute, and complete a process/thread that invokes the null procedure. • Signal-Wait: the time for a process/thread to signal a waiting process/thread and then wait on a condition. • Procedure call: 7us Kernel Trap:17us • Thread Operation Latencies • Operation ULT KLT Process • Null fork 34 948 11,300 • Signal Wait 37 441 1,840 • Observation • While there is a significant speedup by using KLT multithreading compared to single-threaded processes, there is an additional significant speedup by using ULTs. • However, whether or not the additional speedup is realized depends on the nature of the applications involved. • If most of the thread switches require kernel mode access, then ULT may not perform much better than KLT.

More Related