2
Objectives and Functions
ConvenienceMaking the computer easier to use
EfficiencyAllowing better use of computer resources
4
Operating System Services
Program creationProgram executionAccess to I/O devicesControlled access to filesSystem accessError detection and responseAccounting
6
Types of Operating System
InteractiveBatchSingle program (Uni-programming)Multi-programming (Multi-tasking)
7
Early Systems
Late 1940s to mid 1950sNo Operating SystemPrograms interact directly with hardwareTwo main problems:
SchedulingSetup time
8
Simple Batch Systems
Resident Monitor programUsers submit jobs to operatorOperator batches jobsMonitor controls sequence of events to process batchWhen one job is finished, control returns to Monitor which reads next jobMonitor handles scheduling
9
Job Control Language
Instructions to MonitorUsually denoted by $e.g.
$JOB$FTN... Some Fortran instructions$LOAD$RUN... Some data$END
10
Desirable Hardware Features
Memory protectionTo protect the Monitor
TimerTo prevent a job monopolizing the system
Privileged instructionsOnly executed by Monitore.g. I/O
InterruptsAllows for relinquishing and regaining control
11
Multi-programmed Batch Systems
I/O devices very slowWhen one program is waiting for I/O, another can use the CPU
15
Time Sharing Systems
Allow users to interact directly with the computer
i.e. Interactive
Multi-programming allows a number of users to interact with the computer
17
Long Term Scheduling
Determines which programs are submitted for processingi.e. controls the degree of multi-programmingOnce submitted, a job becomes a process for the short term scheduler(or it becomes a swapped out job for the medium term scheduler)
18
Medium Term Scheduling
Part of the swapping function (later…)Usually based on the need to manage multi-programmingIf no virtual memory, memory management is also an issue
19
Short Term Scheduler
DispatcherFine grained decisions of which job to execute nexti.e. which job actually gets to use the processor in the next time slot
21
Process Control Block
IdentifierStatePriorityProgram counterMemory pointersContext dataI/O statusAccounting information
23
Process Scheduling
Process
Request
EndLong-TermQueue
Short-Term
QueueCPU
I/O QueueI/O
I/O QueueI/O
I/O QueueI/O
24
Memory Management
Uni-programMemory split into twoOne for Operating System (monitor)One for currently executing program
Multi-program“User” part is sub-divided and shared among active processes
25
Swapping
Problem: I/O is so slow compared with CPU that even in multi-programming system, CPU can be idle most of the timeSolutions:
Increase main memory ⌧Expensive⌧Leads to larger programs
Swapping
26
What is Swapping?
Long term queue of processes stored on diskProcesses “swapped” in as space becomes availableAs a process completes it is moved out of main memoryIf none of the processes in memory are ready (i.e. all I/O blocked)
Swap out a blocked process to intermediate queueSwap in a ready process or a new processBut swapping is an I/O process...
27
Partitioning
Splitting memory into sections to allocate to processes (including Operating System)Fixed-sized partitions
May not be equal sizeProcess is fitted into smallest hole that will take it (best fit)Some wasted memoryLeads to variable sized partitions
29
Variable Sized Partitions (1)
Allocate exactly the required memory to a processThis leads to a hole at the end of memory, too small to use
Only one small hole - less waste
When all processes are blocked, swap out a process and bring in anotherNew process may be smaller than swapped out processAnother hole
30
Variable Sized Partitions (2)
Eventually have lots of holes (fragmentation)Solutions:
Coalesce - Join adjacent holes into one large holeCompaction - From time to time go through memory and move all hole into one free block (c.f. disk de-fragmentation)
32
Relocation
No guarantee that process will load into the same place in memoryInstructions contain addresses
Locations of dataAddresses for instructions (branching)
Logical address - relative to beginning of programPhysical address - actual location in memory (this time)Automatic conversion using base address
33
Paging
Split memory into equal sized, small chunks -page framesSplit programs (processes) into equal sized small chunks - pagesAllocate the required number page frames to a processOperating System maintains list of free framesA process does not require contiguous page framesUse page table to keep track
35
Virtual Memory
Demand pagingDo not require all pages of a process in memoryBring in pages as required
Page faultRequired page is not in memoryOperating System must swap in required pageMay need to swap out a page to make spaceSelect page to throw out based on recent history
36
Thrashing
Too many processes in too little memoryOperating System spends all its time swappingLittle or no real work is doneDisk light is on all the time
SolutionsGood page replacement algorithmsReduce number of processes runningFit more memory
37
Bonus
We do not need all of a process in memory for it to runWe can swap in pages as requiredSo - we can now run processes that are bigger than total memory available!
Main memory is called real memoryUser/programmer sees much bigger memory -virtual memory
39
Segmentation
Paging is not (usually) visible to the programmerSegmentation is visible to the programmerUsually different segments allocated to program and dataMay be a number of program and data segments
40
Advantages of Segmentation
Simplifies handling of growing data structuresAllows programs to be altered and recompiled independently, without re-linking and re-loadingLends itself to sharing among processesLends itself to protectionSome systems combine segmentation with paging