Title: Processes and Threads
1Processes and Threads
2.1 Processes 2.2 Threads 2.3 Interprocess
communication 2.4 Classical IPC problems 2.5
Scheduling
2Agenda
- 2.1 Processes
- 2.2 Threads
- 2.3 Interprocess communication
- 2.4 Classical IPC problems
- 2.5 Scheduling
3Process
- The most central concept in any OS
- An abstraction of a running program
- Modern Computers
- Can do more than one thing at the same time
- Can run user programs
- Can read disk and work with user terminal
- In a multiprogramming system
- More than one user program can be scheduled
- Each may run for tens of msecs.
4ProcessesThe Process Model
- Multiprogramming of four programs
- Conceptual model of 4 independent, sequential
processes - Only one program active at any instant
5Process Creation
- Principal events that cause process creation
- System initialization
- Execution of a process creation system
- User request to create a new process
- Initiation of a batch job
6Process Termination
- Conditions which terminate processes
- Normal exit (voluntary)
- Error exit (voluntary)
- Fatal error (involuntary)
- Killed by another process (involuntary)
7Process Hierarchies
- Parent creates a child process, child processes
can create its own process - Forms a hierarchy
- UNIX calls this a "process group"
- Windows has no concept of process hierarchy
- all processes are created equal
8Process States (1)
- Possible process states
- running
- blocked
- ready
- Transitions between states shown
9Process States (2)
- Lowest layer of process-structured OS
- handles interrupts, scheduling
- Above that layer are sequential processes
10Implementation of Processes (1)
- Fields of a process table entry
11Implementation of Processes (2)
- Skeleton of what lowest level of OS does when an
interrupt occurs
12Agenda
- 2.1 Processes
- 2.2 Threads
- 2.3 Interprocess communication
- 2.4 Classical IPC problems
- 2.5 Scheduling
13Threads
- In traditional OS, each process has
- An address space
- A single tread of control
- In modern OS, each process may have
- Multiple threads of control
- Same address spare
- Running in quasi-parallel
- Thread or a Lightweight Process has
- a program counter, registers, stack
14ThreadsThe Thread Model (1)
- (a) Three processes each with one thread
- (b) One process with three threads
15The Thread Model (2)
- Items shared by all threads in a process
- Items private to each thread
16The Thread Model (3)
- Each thread has its own stack
17Thread Usage (1)
- A word processor with three threads
18Thread Usage (2)
- A multithreaded Web server
19Thread Usage (3)
- Rough outline of code for previous slide
- (a) Dispatcher thread
- (b) Worker thread
20Thread Usage (4)
- Three ways to construct a server
21Implementing Threads in User Space
- A user-level threads package
22Implementing Threads in the Kernel
- A threads package managed by the kernel
23Hybrid Implementations
- Multiplexing user-level threads onto kernel-
level threads
24Scheduler Activations
- Goal mimic functionality of kernel threads
- gain performance of user space threads
- Avoids unnecessary user/kernel transitions
- Kernel assigns virtual processors to each process
- lets runtime system allocate threads to
processors - Problem
- Fundamental reliance on kernel (lower layer)
- Calling procedures in user space (higher layer)
- Called upcall
25Pop-Up Threads
- Creation of a new thread when message arrives
- (a) before message arrives
- (b) after message arrives
26Making Single-Threaded Code Multithreaded (1)
- Conflicts between threads over the use of a
global variable
27Making Single-Threaded Code Multithreaded (2)
- Threads can have private global variables
28Agenda
- 2.1 Processes
- 2.2 Threads
- 2.3 Interprocess communication
- 2.4 Classical IPC problems
- 2.5 Scheduling
29Interprocess Communication
- Processes may need to communicate
- E.g., output of one goes to input of the other
one - Issues
- How to pass information
- different address spaces
- Making critical activities
- Two process try to grab the last 1MB of memory
- Proper sequencing
- One process is producing data for the other one
30Interprocess CommunicationRace Conditions
- Two processes want to access shared memory at
same time
31Critical Regions (1)
- Critical Regions or Critical Sections
- The part of the program where shared memory is
accessed. - Four conditions to provide mutual exclusion
- No two processes simultaneously in critical
region - No assumptions made about speeds or numbers of
CPUs - No process running outside its critical region
may block another process - No process must wait forever to enter its
critical region
32Critical Regions (2)
- Mutual exclusion using critical regions
33Mutual Exclusion with Busy Waiting (0)
- Mutual Exclusion
- Only one process can be in the critical section.
- Disabling Interrupts (HW Solution)
- Dangerous May lead to the end of the system
- Lock Variables (SW Solution)
- Fatal Flow Similar to Spooler Directory
- Strict Alternation (SW Solution)
- Busy Waiting, Violating Condition 3
- Petersons Solution (SW Solution)
- Busy Waiting
- TSL Instruction (HW/SW Solution)
- Busy Waiting, but Faster
34Mutual Exclusion with Busy Waiting (1)Strict
Alternation (SW Solution)
- Proposed solution to critical region problem
- (a) Process 0. (b) Process 1.
35Mutual Exclusion with Busy Waiting (2)Petersons
Solution (SW Solution)
36Mutual Exclusion with Busy Waiting (3)Using TSL
Instruction (HW/SW Solution)
- Entering and leaving a critical region using the
- TSL instruction
37Mutual Exclusion with Sleep and Wakeup
(0)Producer-Consumer Problem
- Priority Inversion Problem
- busy waiting with priority!
- Solution with Fatal Race Condition
- Waking up a consumer that is not asleep yet!
- Semaphore
- An integer that counts the number of wake-up
calls. - Mutexes
- Binary semaphores, good for mutual exclusion.
- Monitors
- Easier to program (Synchronized in Java).
- Message Passing
- N messages used for communication coordination.
- Barriers
- Synchronization of N processes/threads.
38Mutual Exclusion with Sleep and Wakeup (1)Fatal
Race Condition
39Mutual Exclusion with Sleep and Wakeup (2) Using
Semaphores
40Mutual Exclusion with Sleep and Wakeup (3) Using
Mutexes
- Implementation of mutex_lock and mutex_unlock
41Mutual Exclusion with Sleep and Wakeup (4) Using
Monitors (1)
42Mutual Exclusion with Sleep and Wakeup (4) Using
Monitors (2)
- Outline of producer-consumer problem with
monitors - only one monitor procedure active at one time
- buffer has N slots
43Mutual Exclusion with Sleep and Wakeup (4) Using
Monitors (3)
- Solution to producer-consumer problem in Java
(part 1)
44Mutual Exclusion with Sleep and Wakeup (4) Using
Monitors (4)
- Solution to producer-consumer problem in Java
(part 2)
45Mutual Exclusion with Sleep and Wakeup (5)
Message Passing
- The producer-consumer problem with N messages
46Barriers
- Use of a barrier
- processes approaching a barrier
- all processes but one blocked at barrier
- last process arrives, all are let through
47Agenda
- 2.1 Processes
- 2.2 Threads
- 2.3 Interprocess communication
- 2.4 Classical IPC problems
- 2.5 Scheduling
48Dining Philosophers (1)
- Philosophers eat/think
- Eating needs 2 forks
- Pick one fork at a time
- How to prevent deadlock
49Dining Philosophers (2)
- A nonsolution to the dining philosophers problem
50Dining Philosophers (3)
- Solution to dining philosophers problem (part 1)
51Dining Philosophers (4)
- Solution to dining philosophers problem (part 2)
52The Readers and Writers Problem
- A solution to the readers and writers problem
53The Sleeping Barber Problem (1)
54The Sleeping Barber Problem (2)
Solution to sleeping barber problem.
55Agenda
- 2.1 Processes
- 2.2 Threads
- 2.3 Interprocess communication
- 2.4 Classical IPC problems
- 2.5 Scheduling
56Scheduling
- Scheduler
- The part of the OS that make the choice of which
process to run next. - Scheduling Algorithm
- The algorithm used for scheduling
57SchedulingIntroduction to Scheduling (1)
- Bursts of CPU usage alternate with periods of I/O
wait - a CPU-bound process spends most of its time on
computing - an I/O bound process spends most of its time
waiting for I/O
58Introduction to Scheduling (2)System Algorithm
Goals
59Scheduling Algorithm Goals
- Throughput
- The number of jobs per hour that the system
completes. - Turnaround time
- The statically average time from the moment that
a batch job is submitted until the moment it is
completed.
60Scheduling in Batch Systems (1)
- First-Come First-Served
- Shortest Job First (non-preemptive)
- An example of shortest job first scheduling
- Shortest Remaining Time First (preemptive)
- Three-Level Scheduling
61Scheduling in Batch Systems (2)
62Scheduling in Interactive Systems (1)
- Round Robin Scheduling
- list of runnable processes
- list of runnable processes after B uses up its
quantum - Priority Scheduling
- Multiple Queues
- Shortest Process Next
- Guaranteed Scheduling
- Lottery Scheduling
- Fair-Share Scheduling
63Scheduling in Interactive Systems (2)
- A scheduling algorithm with four priority classes
64Scheduling in Real-Time Systems
- Schedulable real-time system
- Given
- m periodic events
- event i occurs within period Pi and requires Ci
seconds - Then the load can only be handled if
65Policy versus Mechanism
- Separate what is allowed to be done with how it
is done - a process knows which of its children threads are
important and need priority - Scheduling algorithm parameterized
- mechanism in the kernel
- Parameters filled in by user processes
- policy set by user process
66Thread Scheduling (1)
- Possible scheduling of user-level threads
- 50-msec process quantum
- threads run 5 msec/CPU burst
67Thread Scheduling (2)
- Possible scheduling of kernel-level threads
- 50-msec process quantum
- threads run 5 msec/CPU burst