Post on 31-Mar-2015
©J.Tiberghien - ULB-VUBVersion 2007 1Première partie, chap. 2, page
Chapitre 1.2
Systèmes d’exploitation
©J.Tiberghien - ULB-VUBVersion 2007 2Première partie, chap. 2, page
Layered Operating System model
Hardware
Operating
SystemApplication
©J.Tiberghien - ULB-VUBVersion 2007 3Première partie, chap. 2, page
Absolute Binary Loader
ABL
CentralMemory
s3,t4
s3,t4
©J.Tiberghien - ULB-VUBVersion 2007 4Première partie, chap. 2, page
Command Interpreter
ABL
CentralMemory
chess
s3,t4
Cmnd.Int.
Fmgr.
©J.Tiberghien - ULB-VUBVersion 2007 5Première partie, chap. 2, page
Interactive usage
©J.Tiberghien - ULB-VUBVersion 2007 6Première partie, chap. 2, page
Batch Processing
©J.Tiberghien - ULB-VUBVersion 2007 7Première partie, chap. 2, page
File Manager
• Organizes data on disk
• Hides the details of physical files
• Offers standardized file organizations– Sequential– Random Access– Indexed Sequential
• Maintains File Directories
©J.Tiberghien - ULB-VUBVersion 2007 8Première partie, chap. 2, page
Random Access Files
• Space inefficient• Fast access
©J.Tiberghien - ULB-VUBVersion 2007 9Première partie, chap. 2, page
Sequential Files
• Space efficient• Slow access
©J.Tiberghien - ULB-VUBVersion 2007 10Première partie, chap. 2, page
Indexed Sequential Files
Good compromise:•Space efficient•Access reasonably fast
©J.Tiberghien - ULB-VUBVersion 2007 11Première partie, chap. 2, page
Command Interpreter
ABL
chess
Cmnd.Int.
Fmgr.
©J.Tiberghien - ULB-VUBVersion 2007 12Première partie, chap. 2, page
Control by Command Interpreter
Program X
Return to CMND.INT
Start User Pgm
Cmnd Interpreter
©J.Tiberghien - ULB-VUBVersion 2007 13Première partie, chap. 2, page
Interrupts
Interrupt Handler
©J.Tiberghien - ULB-VUBVersion 2007 14Première partie, chap. 2, page
KFL =
KDA =DDA =
4 5 6
1 2 3
* 0 #
7 8 9
Data Memory
Arithmetic Unit
Control Unit
Program Memory
ND =
SC =
p1 COPY #0 ND P2
p2 COPY #0 SC P3
p3 NE? ND #3 P3 P4
p4 NE? SC #321 P1 P5
p5 COPY #1 DDA P1
p10 MUL SC #10 SC P11p11 ADD SC KDA SC P12
p13 ADD ND #1 ND P14p12 COPY #0 KFL P13
Interrupt handler
p14 RTI
Interrupt
©J.Tiberghien - ULB-VUBVersion 2007 15Première partie, chap. 2, page
Interrupt Handler
Program X
Return to int.handlr
Start User Pgm
Interrupt Handler
Find cause int.
ControlUnit
©J.Tiberghien - ULB-VUBVersion 2007 16Première partie, chap. 2, page
Interrupt Handler Based System
Commandinterpreter
Userprogram
Filemanager
A.B.L.
Interrupthandler
©J.Tiberghien - ULB-VUBVersion 2007 17Première partie, chap. 2, page
Single-task Systems
active
waitingfor cpu
Blocked(= busywaiting)
task completed
start I/O
activation
load
I/Ocompletion
©J.Tiberghien - ULB-VUBVersion 2007 18Première partie, chap. 2, page
active
waitingfor cpu blocked
task completed
start I/Opreemption
activation
load
swapout
I/Ocompletion(interrupt)
Multi-task Systems
©J.Tiberghien - ULB-VUBVersion 2007 19Première partie, chap. 2, page
Multitasking Issues• Process Scheduling
Which program becomes active when ?
• Job Scheduling (or Queue Management)Which programs reside in Central Memory ?
• Memory ManagementHow much memory gets each program ?
• Output SpoolingHow to keep output of programs apart ?
©J.Tiberghien - ULB-VUBVersion 2007 20Première partie, chap. 2, page
Process Scheduler All programs have a priority and the one waiting
with the highest priority becomes active.
• Non-preemptive Scheduling:
Priorities are compared whenever
• the active program blocks itself
• a clock tick occurs (typically every 10 mS)
• Preemptive Scheduling
Priorities are continuously compared.
©J.Tiberghien - ULB-VUBVersion 2007 21Première partie, chap. 2, page
Process Priorities
active
blocked
+1-1
p = p0 waitingfor cpu
+1
©J.Tiberghien - ULB-VUBVersion 2007 22Première partie, chap. 2, page
Job Scheduler Selects the programs to be loaded in Central
Memory
• Manual selection
(starting an application under Windows)
• Automatic selection – based on priorities
– Based on the Round Robin algorithm
©J.Tiberghien - ULB-VUBVersion 2007 23Première partie, chap. 2, page
Round Robin
Centralmemory
Preempted tasks
after t seconds
New tasks
Input queue
Completed
tasks
©J.Tiberghien - ULB-VUBVersion 2007 24Première partie, chap. 2, page
Memory Management
• Allocates memory to each program
– Static Allocation
• Good Job Scheduling mandatory.
–Dynamic Allocation: Virtual Memory
• Job Scheduling not so important.
©J.Tiberghien - ULB-VUBVersion 2007 25Première partie, chap. 2, page
Virtual Memory
Page Table
123
456
cm
pm
pmpm
004
002
10031004
1007
1009
CM PM
cmpm
©J.Tiberghien - ULB-VUBVersion 2007 26Première partie, chap. 2, page
Output Spooling
Program A
Program B
Program C
Program D