Ch. 2 Lecture 1 PDF
Ch. 2 Lecture 1 PDF
Process Concept
Process Scheduling
Operations on Processes
Cooperating Processes
Threads
Interprocess Communication
Process Concept
new admitted
exit terminated
interrupt
ready running
Scheduler
I/O or dispatch
event I/O or
completion event wait
waiting
Process States
Resource sharing
Parent and children share all resources.
Children share subset of parent’s resources - prevents
many processes from overloading the system.
Parent and children share no resources.
Execution
Parent and child execute concurrently.
Parent waits until child has terminated.
Address Space
Child process is duplicate of parent process.
Child process has a program loaded into it.
UNIX Process Creation
Resource Sharing
Economy
Utilization of MP Architectures
Threads(Cont.)
Network Servers
Concurrent requests from network
Again, single program, multiple concurrent operations
File server, Web server, and airline reservation systems
MS/DOS, early
One Traditional UNIX
Macintosh
Embedded systems Mach, OS/2, Linux
(Geoworks, VxWorks, Windows 9x???
Many JavaOS,etc)
Win NT to XP, Solaris,
JavaOS, Pilot(PC) HP-UX, OS X
Kernel-supported threads
User-level threads
Hybrid approach implements both user-level
and kernel-supported threads (Solaris 2).
Kernel Threads
Examples
Windows XP/2000, Solaris, Linux,Tru64 UNIX,
Mac OS X, Mach, OS/2
User Threads
Supported above the kernel, via a set of library calls
at the user level.
Thread management done by user-level threads library
User program provides scheduler and thread package
May have several user threads per kernel thread
User threads may be scheduled non-premptively relative to
each other (only switch on yield())
Advantages
Cheap, Fast
Threads do not need to call OS and cause interrupts to kernel
Disadv: If kernel is single threaded, system call from any
thread can block the entire task.
Example thread libraries:
POSIX Pthreads, Win32 threads, Java threads
Multithreading Models
Many-to-One
One-to-One
Many-to-Many
Many-to-One
Many user-level threads mapped to single
kernel thread
Examples:
Solaris Green Threads
GNU Portable Threads
One-to-One
Examples
Windows NT/XP/2000; Linux; Solaris 9 and later
Many-to-Many Model
Allows many user level
threads to be mapped to
many kernel threads
Allows the operating
system to create a
sufficient number of
kernel threads
Solaris prior to version 9
Windows NT/2000 with
the ThreadFiber package
Thread Support in Solaris 2
B
Multiprocessing
C
A B C
Multiprogramming A B C A B C B
Cooperating Processes
…….
Direct Communication
Operations
create a new mailbox
send/receive messages through mailbox
destroy a mailbox
Issue: Mailbox sharing
P1, P2 and P3 share mailbox A.
P1 sends message, P2 and P3 receive… who gets
message??
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.
Message Buffering
Scrambled Messages
Message arrives from sender P to receiver Q, but
information in message is corrupted due to noise in
communication channel.
Solution
need error detection mechanism, e.g. CHECKSUM
need error correction mechanism, e.g. retransmission
Producer-Consumer Problem