The Structure of the “THE” ‐ Multiprogramming System p g g y
“THE” (Technische Hogeschool Eindhoven)
Edsger W. Dijkstra 1968
Presented by: Payal Agrawal
1
The Structure of the THE Multiprogramming System p g g y THE - - PowerPoint PPT Presentation
The Structure of the THE Multiprogramming System p g g y THE (Technische Hogeschool Eindhoven) Edsger W. Dijkstra 1968 Presented by: Payal Agrawal Presented by: Payal Agrawal 1 Who is Dijkstra? Who is Dijkstra? Remember him
1
2
3
Reduction of turn‐around time for programs of short duration Economic use of peripheral devices Efficient use of Memory and CPU The ability to run large flexible user programs that can i t ith h th communicate with each other Testable N d i d l i i Not designed as a multi‐user operating system
4
– 32K core memory vs. 1‐2 b Gb – 512K words drum vs. 100 Gb Gb – Memory cycle time 2.5 μs
– Address size 27bits vs. 64bits L it h l – Low capacity channels supporting peripherals
printer 1 plotter and 2 teleprinter)
[Source: electrologica.nl]
printer, 1 plotter, and 2 teleprinter)
5
6
7
in drum address.
“segment”
g – Core Pages (page frames) – Drum Pages (disk blocks)
to the page “physical address”
drum
Vi t l M !! Virtual Memory !!
i Vi t l Add Physical Address
8
Magic Virtual Address Physical Address
– Process per program – Process per peripheral – Processes for segment controller and message interpreter g g p
effects to the internal logic of the process
processes executing independently
number of actual processors, as long as processors can it h t th i switch to the various processes
is implemented via "semaphores “ is implemented via semaphores. virtualization of the CPU!! virtualization of the CPU!!
9
V " " ( i ) V: "vrygeven" (to give up)
S val = S val – 1; S.val = S.val – 1; while S.val <0 add calling process to S.list and block ; /* sleep! */}
S val = S val + 1 S.val = S.val + 1 If S.val <= 0 { remove a process Q from S.list; wakeup (Q);}
10
mutex = 1;
P(mutex); critical section critical section V(mutex);
11
mutex = 1; privateSemaphore = 0; p p ; P(mutex);
modify global state variables, inspect condition V(privateSemaphore); V(privateSemaphore);
V(mutex); P(privateSemaphore);
P i t S h d f C diti h i ti
– wait until condition holds before proceeding – signal when condition holds so others may proceed signal when condition holds so others may proceed
private semaphores, initialized to 0. – Max value equals 1, – Min value equals ‐1.
12
privately
Homing Position: The neutral point in which all cyclic processes are when the system is at rest.
(signal) is in homing position
All ill t ll b i h i iti (
deadlock)
13
14
EL X8 Processor Allocation
15
Segment Controller
call direction
EL X8 Processor Allocation Segment Controller
16
ll Message Interpreter
call direction
EL X8 Processor Allocation Segment Controller
17
EL X8
buffering of input streams and unbuffering of output streams.
computer
Abstraction: Devices wrapped by buffers and abstracted to logical communication units.
l
call direction
user programs
Message Interpreter Buffering I/O streams User Programs
user programs
Processor Allocation Segment Controller Message Interpreter
18
EL X8
19
– All the concepts are born It t k l ti ! – It took a long time! – Learnt that the society of mutually synchronized processes in time behavior can satisfy all the processes in time behavior can satisfy all the requirements
– Done in rather traditional manner – Change of specifications has been rare
20
21
– Similar to context switching in OS
22
23
system introduced the first forms
software‐based memory segmentation freeing programmers from being memory segmentation freeing programmers from being forced to use actual physical locations on the drum memory
A refined multiprogramming system whose implementation removes exhaustive testing
24
25
26