1 os review processes and threads chi zhang
DESCRIPTION
3 Process State As a process executes, it changes state new: The process is being created. running: Instructions are being executed. waiting: The process is waiting for some event to occur. ready: The process is waiting to be assigned to a process. terminated: The process has finished execution.TRANSCRIPT
![Page 2: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/2.jpg)
2
Process ConceptProcess – a program in execution;
process execution must progress in sequential fashion.
A process includes program counter stack data section
![Page 3: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/3.jpg)
3
Process State As a process executes, it changes state
new: The process is being created. running: Instructions are being executed. waiting: The process is waiting for some event to occur. ready: The process is waiting to be assigned to a process. terminated: The process has finished execution.
![Page 4: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/4.jpg)
4
Process Control Block (PCB)
Pointer to the next process
![Page 5: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/5.jpg)
5
CPU Switch From Process to Process
![Page 6: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/6.jpg)
6
Context Switch
When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process.
Context-switch time is overhead; the system does no useful work while switching.
Time dependent on hardware support.
![Page 7: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/7.jpg)
7
System Calls System calls provide the interface between a running
program and the operating system.
![Page 8: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/8.jpg)
8
Single and Multithreaded Processes
Code, Data and Files are shared
![Page 9: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/9.jpg)
9
Benefits Responsiveness
User interaction in parallel with data retrieval Utilization of MP Architectures Resource Sharing between Threads (vs.
Process) E.g. Synchronization by accessing shared data
Economy (vs. Process) If the task is the same, why not share the code? In Solaris 2, creating a process is about 30 times
slower than threads. Context switch threads is about 5 times slower.
![Page 10: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/10.jpg)
10
User Threads
Thread management done by user-level threads library
A blocking system call will cause the entire process to blockOS is unaware of threads
The kernel cannot schedule threads on different CPUs.
Example: Pthread, a POSIX standard (IEEE 1003.1c) API for thread creation and synchronization.
![Page 11: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/11.jpg)
11
Many-to-One Model (User Threads)
![Page 12: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/12.jpg)
12
Kernel Threads
Supported by the KernelOS manages threads
Slower to create and manage because of system calls
A blocking system call will not cause the entire process to block.
The kernel can schedule threads on different CPUs.
![Page 13: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/13.jpg)
13
Many-to-Many Model (Solaris 2) Allows many user level threads to be mapped to
many (fewer) kernel threads. Allows the operating system to create a sufficient
number of kernel threads.
![Page 14: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/14.jpg)
14
The thread library (user level) multiplexes (schedules) user-level threads on the pool of LWPs for the process.Only user-level threads currently connected to an LWP accomplish workFor one process, one LWP is needed for every thread that may block concurrently in system calls for multiple I/O threads
![Page 15: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/15.jpg)
15
Java Threads
class Command implements Runnable {String commandLine; Command(String commandLine) { this.commandLine = commandLine; } public void run() {
// Do what commandLine says to do // yield () the thread pause temporally
} }
![Page 16: 1 OS Review Processes and Threads Chi Zhang](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1ad37f8b9ab05997239a/html5/thumbnails/16.jpg)
16
Java Threads
String line = inputStream.readLine(); int numberOfCommands = // count how many comands
there are on the line Thread t[] = new Thread[numberOfCommands]; for (int i=0; i<numberOfCommands; i++) {
String c = // next command on the line t[i] = new Thread(new Command(c)); t[i].start();
} for (int i=0; i<numberOfCommands; i++) {
t[i].join(); // wait until the end of t[i]}
Also