Processes and Threads Flashcards
Processes
- A process is an abstraction of a running program
- It enables doing several things at the same time
- support the ability to have (pseudo) concurrent operation
- Ex. consider a user PC ??
- In a multiprogramming system, the CPU switches from process to
process quickly, running each for tens or hundreds of milliseconds
Process and Program
- A process is an activity of some
kind - A program is something that
may be stored on disk, not doing
anything - Ex: baking vs. recipe
The Process Model
- All the runnable software on the computer, sometimes including the
operating system, is organized into a number of sequential processes - To understand the system, it is much easier to think about a collection
of processes running in (pseudo) parallel - This rapid switching back and forth is called multiprogramming
The Process Model
a) Multiprogramming four programs.
b) Conceptual model of four independent, sequential processes.
c) Only one program is active at once
Process Creation
- Events which cause processes creation:
1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to create a new process.
4. Initiation of a batch job. - In all these cases, a new process is created by having an existing
process execute a process creation system call.
Process Termination
- Events which cause process termination:
1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
Process States
- Three states a process may be in:
1. Running (actually using the CPU at that instant).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens)
Implementation of Processes
- The lowest layer of a process-structured operating system handles
interrupts and scheduling. - Above that layer are sequential processes.
Process Table
One entry per process
* Contains important information
about the process’ state
* Information that must be saved
when the process is switched
from running to ready or blocked
state so that it can be restarted
later
Interrupt Handling and Scheduling
- Hardware stacks program counter, etc.
- Hardware loads new program counter from interrupt vector.
- Assembly language procedure saves registers.
- Assembly language procedure sets up new stack.
- C interrupt service runs (typically reads and buffers input).
- Scheduler decides which process is to run next.
- C procedure returns to the assembly code.
- Assembly language procedure starts up new current process.
Threads
- In many applications, multiple activities are going on at once
- Threads give the ability for the parallel entities to share an address
space and all of its data - not possible with multiple processes (with their separate address spaces)
- Threads are lighter weight than processes, so they are easier (i.e.,
faster) to create and destroy - Threads allow computing and IO activities to overlap
Thread Usage - A Word Processor
- First thread interacts with the user.
- Second thread handles reformatting in the background.
- Third thread handles the disk backups.
Thread Usage - A Multithreaded Web Server
The dispatcher reads incoming requests for work from the
network and chooses an idle (i.e., blocked) worker thread to
hand the request
The Classical Thread Model
- Multithreading is the situation of allowing multiple threads in the
same process
Advantages of Thread over Process
- Responsiveness:
- If the process is divided into multiple threads, one thread can complete its
execution and its output can be immediately returned. - Faster context switch:
- Context switch time between threads is lower compared to process context
switch. Process context switching needs more CPU overhead. - Effective utilization of multiprocessor system:
- If we have multiple threads in a single process, then we can schedule multiple
threads on multiple processor. - Resource sharing:
- Resources like code, data, and files can be shared among all threads within a
process. (Stack and registers can’t be shared) - Communication:
- Communication between multiple threads is easier, as the threads shares
common address space. while in process we have to follow some specific
communication technique for communication between two process. - Enhanced throughput of the system:
- If a process is divided into multiple threads, and each thread function is
considered as one job, then the number of jobs completed per unit of time is
increased, thus increasing the throughput of the system.