Académique Documents
Professionnel Documents
Culture Documents
Multiprogramming
System
Dijkstra 1968
Aiman Erbad
Outline
Contributions
Platform & Systems goals
System Components
Layered structure
Questions
Contributions
Layered Structure of OS
Late debugging
Prevention better than cure
System Components
Storage allocation
Processor allocation
System Structure
Storage Allocation
Hardware
Layered Structure
CPU Scheduling
Hardware
Layered Structure
Memory Management
CPU Scheduling
Hardware
Layered Structure
Console Manager
Memory Management
CPU Scheduler
Hardware
Layered Structure
Device Manager
Console Manager
Memory Management
CPU Scheduler
Hardware
Layered Structure
User Programs
Device Manager
Console Manager
Memory Management
CPU Scheduler
Hardware
Layered OS Structure
Pros
Modularity and information hiding
Each layer can be tested and verified independently
Cons
Difficult to define and order layers
Not flexible (real systems are more complex)
Poor performance
Disjunction between model and reality
Monolithic Structure
user programs
OS everything
hardware
Monolithic OS
Command Interpreter
Information Services
Protection System
I/O System
Microkernel structure
user firefox powerpoint
processes apache
user mode
file system network
system paging
processes threads scheduling
communication
kernel
microkernel low-level VM processor
protection control
hardware
System Goals
(1) Reduce the turn-around time for programs of short duration
Contributions
Platform & Systems goals
System Components
Layered structure
Questions
Mutual Exclusion
begin semaphore mutex; mutex := 1;
parbegin
begin L1:
P(mutex);
critcal section 1;
V(mutex);
remainder of cycle 1;
go to L1 end;
begin L2:
P(mutex);
critical section 2;
V(mutex); remainder of cycle 2;
go to L2 end
parend end
Private Semaphore
Process 1
P(mutex)
If resource available then
V(private semaphore)
V(mutex)
P(private semaphore)
Private Semaphore
Process 2
P(mutex)
"modification and inspection of state variables”
V(private semaphore)
V(mutex)
Proving the Harmonious
Cooperation
Notion of cyclic processes having “homing
position” and “unstable situation”
Proof outline:
Process performing a task can generate only a finite
number of tasks
System cannot be at rest if there are still pending
tasks
All processes will eventually be in homing position
(no deadlock)
References
"The structure of the “THE”-multiprogramming system",
by E. Dijkstra, Communications of the ACM, Vol. 11, No.
5, 1968, 341--346
OS lecture slides – University of Washington
www.cs.washington.edu/451
Dijkstra Home page – University of Texas
http://www.cs.utexas.edu/users/EWD/
Class Presentation by S. Stipic and M. Dimitrov
www.cs.ucf.edu/courses/cop5611/spring05/item/THE.pdf