ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of...
Transcript of ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of...
![Page 1: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/1.jpg)
ICS 143 - Principles of Operating Systems
Lectures 3 and 4 - Processes and Threads Prof. Nalini Venkatasubramanian [email protected]
Some slides adapted from http://www-inst.eecs.berkeley.edu/~cs162/ Copyright © 2010 UCB. Note that some slides are also adapted from course text slides © 2008 Silberschatz
![Page 2: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/2.jpg)
Outline
n Process Concept q Process Scheduling q Operations on Processes q Cooperating Processes
n Threads n Interprocess Communication
![Page 3: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/3.jpg)
Process Concept
n An operating system executes a variety of programs
n batch systems - jobs n time-shared systems - user programs or tasks n Job, task and program used interchangeably
n Process - a program in execution n process execution proceeds in a sequential fashion
n A process contains n program counter, stack and data section
![Page 4: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/4.jpg)
Process =? Program
n More to a process than just a program: q Program is just part of the process state q I run Vim or Notepad on lectures.txt, you run it on homework.java – Same
program, different processes n Less to a process than a program:
q A program can invoke more than one process q A web browser lunches multiple processes, e.g., one per tab
main () {
…;
}
A() {
…
}
main () {
…;
}
A() {
…
}
Heap
Stack A
main
Program Process
![Page 5: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/5.jpg)
Process State
n A process changes state as it executes.
new admitted
interrupt
I/O or event completion
Scheduler dispatch I/O or
event wait
exit
ready running
terminated
waiting
![Page 6: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/6.jpg)
Process States
n New - The process is being created. n Running - Instructions are being executed. n Waiting - Waiting for some event to occur. n Ready - Waiting to be assigned to a
processor. n Terminated - Process has finished execution.
![Page 7: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/7.jpg)
Process Control Block n Contains information
associated with each process n Process State - e.g. new,
ready, running etc. n Process Number – Process ID n Program Counter - address of
next instruction to be executed n CPU registers - general
purpose registers, stack pointer etc.
n CPU scheduling information - process priority, pointer
n Memory Management information - base/limit information
n Accounting information - time limits, process number
n I/O Status information - list of I/O devices allocated
Process Control Block
![Page 8: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/8.jpg)
Representation of Process Scheduling Process (PCB) moves from queue to queue When does it move? Where? A scheduling decision
![Page 9: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/9.jpg)
Process Queues
Device Queue
Ready Queue
![Page 10: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/10.jpg)
Ready Queue And Various I/O Device Queues
![Page 11: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/11.jpg)
Process Scheduling Queues
n Job Queue - set of all processes in the system n Ready Queue - set of all processes residing in main
memory, ready and waiting to execute. n Device Queues - set of processes waiting for an I/O
device. n Process migration between the various queues. n Queue Structures - typically linked list, circular list
etc.
![Page 12: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/12.jpg)
Process Control Block
Enabling Concurrency and Protection: Multiplex processes
n Only one process (PCB) active at a time q Current state of process held in PCB:
n “snapshot” of the execution and protection environment q Process needs CPU, resources
n Give out CPU time to different processes (Scheduling): q Only one process “running” at a time q Give more time to important processes
n Give pieces of resources to different processes (Protection): q Controlled access to non-CPU resources
n E.g. Memory Mapping: Give each process their own address space
![Page 13: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/13.jpg)
Enabling Concurrency: Context Switch
n Task that switches CPU from one process to another process
q the CPU must save the PCB state of the old process and load the saved PCB state of the new process.
n Context-switch time is overhead q System does no useful work while switching q Overhead sets minimum practical switching time; can
become a bottleneck
n Time for context switch is dependent on hardware support ( 1- 1000 microseconds).
![Page 14: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/14.jpg)
CPU Switch From Process to Process
n Code executed in kernel above is overhead q Overhead sets minimum practical switching time
![Page 15: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/15.jpg)
Schedulers n Long-term scheduler (or job scheduler) -
q selects which processes should be brought into the ready queue.
q invoked very infrequently (seconds, minutes); may be slow. q controls the degree of multiprogramming
n Short term scheduler (or CPU scheduler) - q selects which process should execute next and allocates
CPU. q invoked very frequently (milliseconds) - must be very fast q Sometimes the only scheduler in the system
n Medium Term Scheduler q swaps out process temporarily q balances load for better throughput
![Page 16: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/16.jpg)
Medium Term (Time-sharing) Scheduler
![Page 17: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/17.jpg)
A tree of processes in Linux
17
![Page 18: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/18.jpg)
Process Profiles
n I/O bound process - q spends more time in I/O, short CPU bursts, CPU
underutilized.
n CPU bound process - q spends more time doing computations; few very long CPU
bursts, I/O underutilized.
n The right job mix: q Long term scheduler - admits jobs to keep load balanced
between I/O and CPU bound processes q Medium term scheduler – ensures the right mix (by
sometimes swapping out jobs and resuming them later)
![Page 19: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/19.jpg)
Process Creation
n Processes are created and deleted dynamically
n Process which creates another process is called a parent process; the created process is called a child process.
n Result is a tree of processes n e.g. UNIX - processes have dependencies and form a
hierarchy.
n Resources required when creating process n CPU time, files, memory, I/O devices etc.
![Page 20: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/20.jpg)
UNIX Process Hierarchy
![Page 21: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/21.jpg)
What does it take to create a process?
n Must construct new PCB q Inexpensive
n Must set up new page tables for address space q More expensive
n Copy data from parent process? (Unix fork() ) q Semantics of Unix fork() are that the child process gets a
complete copy of the parent memory and I/O state q Originally very expensive q Much less expensive with “copy on write”
n Copy I/O state (file handles, etc) q Medium expense
![Page 22: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/22.jpg)
Process Creation
n Resource sharing q Parent and children share all resources. q Children share subset of parent’s resources - prevents
many processes from overloading the system. q Parent and children share no resources.
n Execution q Parent and child execute concurrently. q Parent waits until child has terminated.
n Address Space q Child process is duplicate of parent process. q Child process has a program loaded into it.
![Page 23: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/23.jpg)
UNIX Process Creation
n Fork system call creates new processes
n execve system call is used after a fork to replace the processes memory space with a new program.
![Page 24: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/24.jpg)
Process Termination
n Process executes last statement and asks the operating system to delete it (exit).
q Output data from child to parent (via wait). q Process’ resources are deallocated by operating system.
n Parent may terminate execution of child processes.
q Child has exceeded allocated resources. q Task assigned to child is no longer required. q Parent is exiting
§ OS does not allow child to continue if parent terminates § Cascading termination
![Page 25: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/25.jpg)
Threads
n Processes do not share resources well q high context switching overhead
n Idea: Separate concurrency from protection n Multithreading: a single program made up of a number of
different concurrent activities n A thread (or lightweight process)
q basic unit of CPU utilization; it consists of: § program counter, register set and stack space
n A thread shares the following with peer threads: § code section, data section and OS resources (open files, signals) § No protection between threads
n Collectively called a task.
n Heavyweight process is a task with one thread.
![Page 26: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/26.jpg)
Single and Multithreaded Processes
n Threads encapsulate concurrency: “Active” component n Address spaces encapsulate protection: “Passive” part
q Keeps buggy program from trashing the system
![Page 27: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/27.jpg)
Benefits
n Responsiveness
n Resource Sharing
n Economy
n Utilization of MP Architectures
![Page 28: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/28.jpg)
Threads(Cont.)
n In a multiple threaded task, while one server thread is blocked and waiting, a second thread in the same task can run.
n Cooperation of multiple threads in the same job confers higher throughput and improved performance.
n Applications that require sharing a common buffer (i.e. producer-consumer) benefit from thread utilization.
n Threads provide a mechanism that allows sequential processes to make blocking system calls while also achieving parallelism.
![Page 29: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/29.jpg)
Thread State n State shared by all threads in process/addr
space q Contents of memory (global variables, heap) q I/O state (file system, network connections, etc)
n State “private” to each thread q Kept in TCB ≡ Thread Control Block q CPU registers (including, program counter) q Execution stack
n Parameters, Temporary variables n return PCs are kept while called procedures are
executing
![Page 30: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/30.jpg)
Threads (cont.)
n Thread context switch still requires a register set switch, but no memory management related work!!
n Thread states - n ready, blocked, running, terminated
n Threads share CPU and only one thread can run at a time.
n No protection among threads.
![Page 31: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/31.jpg)
Examples: Multithreaded programs n Embedded systems
q Elevators, Planes, Medical systems, Wristwatches q Single Program, concurrent operations
n Most modern OS kernels q Internally concurrent because have to deal with
concurrent requests by multiple users q But no protection needed within kernel
n Database Servers q Access to shared data by many concurrent users q Also background utility processing must be done
![Page 32: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/32.jpg)
More Examples: Multithreaded programs
n Network Servers q Concurrent requests from network q Again, single program, multiple concurrent operations q File server, Web server, and airline reservation systems
n Parallel Programming (More than one physical CPU) q Split program into multiple threads for parallelism q This is called Multiprocessing
![Page 33: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/33.jpg)
Real operating systems have either q One or many address spaces q One or many threads per address space
Mach, OS/2, Linux Windows 9x???
Win NT to XP, Solaris, HP-UX, OS X
Embedded systems (Geoworks, VxWorks,
JavaOS,etc) JavaOS, Pilot(PC)
Traditional UNIX MS/DOS, early Macintosh
Many
One
# threads Per AS:
Many One
# of
add
r sp
aces
:
![Page 34: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/34.jpg)
Types of Threads
n Kernel-supported threads n User-level threads n Hybrid approach implements both user-level
and kernel-supported threads (Solaris 2).
![Page 35: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/35.jpg)
Kernel Threads
n Supported by the Kernel q Native threads supported directly by the kernel q Every thread can run or block independently q One process may have several threads waiting on different things
n Downside of kernel threads: a bit expensive
q Need to make a crossing into kernel mode to schedule
n Examples q Windows XP/2000, Solaris, Linux,Tru64 UNIX,
Mac OS X, Mach, OS/2
![Page 36: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/36.jpg)
User Threads n Supported above the kernel, via a set of library calls
at the user level. n Thread management done by user-level threads library
q User program provides scheduler and thread package n May have several user threads per kernel thread n User threads may be scheduled non-premptively relative to
each other (only switch on yield()) q Advantages
n Cheap, Fast q Threads do not need to call OS and cause interrupts to kernel
q Disadv: If kernel is single threaded, system call from any thread can block the entire task.
n Example thread libraries: q POSIX Pthreads, Win32 threads, Java threads
![Page 37: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/37.jpg)
Multithreading Models
n Many-to-One
n One-to-One
n Many-to-Many
![Page 38: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/38.jpg)
Many-to-One n Many user-level threads mapped to single
kernel thread n Examples:
q Solaris Green Threads q GNU Portable Threads
![Page 39: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/39.jpg)
One-to-One
n Each user-level thread maps to kernel thread
Examples q Windows NT/XP/2000; Linux; Solaris 9 and later
![Page 40: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/40.jpg)
Many-to-Many Model n Allows many user level
threads to be mapped to many kernel threads
n Allows the operating system to create a sufficient number of kernel threads
n Solaris prior to version 9 n Windows NT/2000 with
the ThreadFiber package
![Page 41: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/41.jpg)
Thread Support in Solaris 2
n Solaris 2 is a version of UNIX with support for q kernel and user level threads, symmetric multiprocessing
and real-time scheduling.
n Lightweight Processes (LWP) q intermediate between user and kernel level threads q each LWP is connected to exactly one kernel thread
![Page 42: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/42.jpg)
Threads in Solaris 2
![Page 43: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/43.jpg)
Threads in Solaris 2
n Resource requirements of thread types n Kernel Thread: small data structure and stack; thread
switching does not require changing memory access information - relatively fast.
n Lightweight Process: PCB with register data, accounting and memory information - switching between LWP is relatively slow.
n User-level thread: only needs stack and program counter; no kernel involvement means fast switching. Kernel only sees the LWPs that support user-level threads.
![Page 44: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/44.jpg)
Two-level Model
n Similar to M:M, except that it allows a user thread to be bound to kernel thread
n Examples q IRIX, HP-UX, Tru64 UNIX, Solaris 8 and earlier
![Page 45: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/45.jpg)
Threading Issues
n Semantics of fork() and exec() system calls
n Thread cancellation n Signal handling n Thread pools n Thread specific data
![Page 46: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/46.jpg)
Multi( processing, programming, threading) n Definitions:
q Multiprocessing ≡ Multiple CPUs q Multiprogramming ≡ Multiple Jobs or Processes q Multithreading ≡ Multiple threads per Process
n What does it mean to run two threads “concurrently”? q Scheduler is free to run threads in any order and interleaving: FIFO, Random, …
q Dispatcher can choose to run each thread to completion or time-slice in big chunks or small chunks
A B C
B A A C B C B Multiprogramming
A
B
C Multiprocessing
![Page 47: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/47.jpg)
Cooperating Processes
n Concurrent Processes can be q Independent processes
§ cannot affect or be affected by the execution of another process.
q Cooperating processes § can affect or be affected by the execution of another process.
n Advantages of process cooperation: § Information sharing § Computation speedup § Modularity § Convenience(e.g. editing, printing, compiling)
n Concurrent execution requires § process communication and process synchronization
![Page 48: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/48.jpg)
Interprocess Communication (IPC)
n Separate address space isolates processes q High Creation/Memory Overhead; (Relatively) High Context-Switch Overhead
n Mechanism for processes to communicate and synchronize actions. q Via shared memory - Accomplished by mapping addresses to common DRAM
§ Read and Write through memory q Via Messaging system - processes communicate without resorting
to shared variables. § send() and receive() messages § Can be used over the network!
q Messaging system and shared memory not mutually exclusive § can be used simultaneously within a single OS or a single process.
Proc 1 Proc 2 Proc 3
![Page 49: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/49.jpg)
Shared Memory Communication
Prog 1 Virtual
Address Space 1
Prog 2 Virtual
Address Space 2
Data 2 Stack 1 Heap 1 Code 1 Stack 2 Data 1 Heap 2 Code 2 Shared
n Communication occurs by “simply” reading/writing to shared address page q Really low overhead communication q Introduces complex synchronization problems
Code Data Heap Stack
Shared
Code Data Heap Stack
Shared
![Page 50: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/50.jpg)
Cooperating Processes via Message Passing n IPC facility provides two operations.
send(message) - message size can be fixed or variable receive(message)
n If processes P and Q wish to communicate, they need to:
q establish a communication link between them q exchange messages via send/receive
n Fixed vs. Variable size message q Fixed message size - straightforward physical implementation,
programming task is difficult due to fragmentation q Variable message size - simpler programming, more complex
physical implementation.
![Page 51: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/51.jpg)
Implementation Questions
q How are links established? q Can a link be associated with more than 2
processes? q How many links can there be between every pair
of communicating processes? q What is the capacity of a link? q Fixed or variable size messages? q Unidirectional or bidirectional links? …….
![Page 52: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/52.jpg)
Direct Communication
n Sender and Receiver processes must name each other explicitly:
q send(P, message) - send a message to process P q receive(Q, message) - receive a message from process Q
n Properties of communication link: q Links are established automatically. q A link is associated with exactly one pair of communicating
processes. q Exactly one link between each pair. q Link may be unidirectional, usually bidirectional.
![Page 53: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/53.jpg)
Indirect Communication
n Messages are directed to and received from mailboxes (also called ports)
§ Unique ID for every mailbox. § Processes can communicate only if they share a mailbox. Send(A, message) /* send message to mailbox A */ Receive(A, message) /* receive message from mailbox A */
n Properties of communication link § Link established only if processes share a common mailbox. § Link can be associated with many processes. § Pair of processes may share several communication links § Links may be unidirectional or bidirectional
![Page 54: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/54.jpg)
Indirect Communication using mailboxes
![Page 55: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/55.jpg)
Mailboxes (cont.)
n Operations § create a new mailbox § send/receive messages through mailbox § destroy a mailbox
n Issue: Mailbox sharing § P1, P2 and P3 share mailbox A. § P1 sends message, P2 and P3 receive… who gets
message??
n Possible Solutions § disallow links between more than 2 processes § allow only one process at a time to execute receive operation § allow system to arbitrarily select receiver and then notify
sender.
![Page 56: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/56.jpg)
Message Buffering
n Link has some capacity - determine the number of messages that can reside temporarily in it.
n Queue of messages attached to link q Zero-capacity Queues: 0 messages
§ sender waits for receiver (synchronization is called rendezvous)
q Bounded capacity Queues: Finite length of n messages § sender waits if link is full
q Unbounded capacity Queues: Infinite queue length § sender never waits
![Page 57: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/57.jpg)
Message Problems - Exception Conditions
q Process Termination n Problem: P(sender) terminates, Q(receiver) blocks forever.
q Solutions: § System terminates Q. § System notifies Q that P has terminated. § Q has an internal mechanism(timer) that determines how long to wait
for a message from P.
n Problem: P(sender) sends message, Q(receiver) terminates. In automatic buffering, P sends message until buffer is full or forever. In no-buffering scheme, P blocks forever. q Solutions:
§ System notifies P § System terminates P § P and Q use acknowledgement with timeout
![Page 58: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/58.jpg)
Message Problems - Exception Conditions n Lost Messages
§ OS guarantees retransmission § sender is responsible for detecting it using timeouts § sender gets an exception
n Scrambled Messages q Message arrives from sender P to receiver Q, but
information in message is corrupted due to noise in communication channel.
q Solution § need error detection mechanism, e.g. CHECKSUM § need error correction mechanism, e.g. retransmission
![Page 59: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/59.jpg)
Producer-Consumer Problem
n Paradigm for cooperating processes; q producer process produces information that is
consumed by a consumer process. n We need buffer of items that can be filled by
producer and emptied by consumer. q Unbounded-buffer places no practical limit on the size of
the buffer. Consumer may wait, producer never waits. q Bounded-buffer assumes that there is a fixed buffer size.
Consumer waits for new item, producer waits if buffer is full.
q Producer and Consumer must synchronize.
![Page 60: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/60.jpg)
Producer-Consumer Problem
![Page 61: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/61.jpg)
Bounded Buffer using IPC (messaging)
n Producer repeat
… produce an item in nextp; … send(consumer, nextp); until false;
n Consumer repeat
receive(producer, nextc); …
consume item from nextc; … until false;
![Page 62: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/62.jpg)
Bounded-buffer - Shared Memory Solution n Shared data
var n; type item = ….; var buffer: array[0..n-1] of item; in, out: 0..n-1; in :=0; out:= 0; /* shared buffer = circular array */ /* Buffer empty if in == out */ /* Buffer full if (in+1) mod n == out */ /* noop means ‘do nothing’ */
![Page 63: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/63.jpg)
Bounded Buffer - Shared Memory Solution n Producer process - creates filled buffers
repeat …
produce an item in nextp … while in+1 mod n = out do noop; buffer[in] := nextp; in := in+1 mod n; until false;
![Page 64: ICS 143 - Principles of Operating Systemsics143/lectures/oslectureset2.pdf · Ready Queue - set of all processes residing in main memory, ready and waiting to execute. ! Device Queues](https://reader031.fdocuments.in/reader031/viewer/2022041407/5e18588f01d4065912204eaa/html5/thumbnails/64.jpg)
Bounded Buffer - Shared Memory Solution n Consumer process - Empties filled buffers
repeat while in = out do noop;
nextc := buffer[out] ; out:= out+1 mod n; … consume the next item in nextc … until false