6 Types of Operating System InteractiveBatchSingle program (Uni-programming)Multi-programming (Multi-tasking)
7 Early Systems Late 1940s to mid 1950s No Operating System Programs interact directly with hardwareTwo main problems:SchedulingSetup time
8 Simple Batch Systems Resident Monitor program Users 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 Desirable Hardware Features Memory protectionTo protect the MonitorTimerTo prevent a job monopolizing the systemPrivileged instructionsOnly executed by Monitore.g. I/OInterruptsAllows for relinquishing and regaining control
10 Multi-programmed Batch Systems I/O devices very slowWhen one program is waiting for I/O, another can use the CPU
14 Time Sharing SystemsAllow users to interact directly with the computeri.e. InteractiveMulti-programming allows a number of users to interact with the computer
15 Scheduling Key to multi-programming Long term Medium term Short term I/O
16 Long Term SchedulingDetermines 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)
17 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
18 Short Term Scheduler Dispatcher Fine grained decisions of which job to execute nexti.e. which job actually gets to use the processor in the next time slot
22 Process Scheduling Process Request Long-Term Queue Short-Term Queue CPUEndI/OI/O QueueI/OI/O QueueI/OI/O Queue
23 Memory Management Uni-program Multi-program Memory split into two One for Operating System (monitor)One for currently executing programMulti-program“User” part is sub-divided and shared among active processes
24 SwappingProblem: I/O is so slow compared with CPU that even in multi-programming system, CPU can be idle most of the timeSolutions:Increase main memoryExpensiveLeads to larger programsSwapping
25 What is Swapping? Long term queue of processes stored on disk Processes “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...
26 PartitioningSplitting memory into sections to allocate to processes (including Operating System)Fixed-sized partitionsMay not be equal sizeProcess is fitted into smallest hole that will take it (best fit)Some wasted memoryLeads to variable sized partitions
28 Variable Sized Partitions (1) Allocate exactly the required memory to a processThis leads to a hole at the end of memory, too small to useOnly one small hole - less wasteWhen all processes are blocked, swap out a process and bring in anotherNew process may be smaller than swapped out processAnother hole
29 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)
31 RelocationNo guarantee that process will load into the same place in memoryInstructions contain addressesLocations of dataAddresses for instructions (branching)Logical address - relative to beginning of programPhysical address - actual location in memory (this time)Automatic conversion using base address
32 Paging Split memory into equal sized, small chunks - frames Split 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
34 Virtual Memory Demand paging Page fault Do not require all pages of a process in memoryBring in pages as requiredPage 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
35 Thrashing Too many processes in too little memory Operating System spends all its time swappingLittle or no real work is doneDisk light is on all the timeSolutionsGood page replacement algorithmsReduce number of processes runningFit more memory
36 Bonus We do not need all of a process in memory for it to run We 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
38 Virtual MemoryIn order to be executed or data to be accessed, a certain segment of the program has to be first loaded into main memory; in this case it has to replace another segment already in memoryMovement of programs and data, between main memory and secondary storage, is performed automatically by the operating system. These techniques are called virtual-memory techniques
40 Virtual Memory Organization The virtual programme space (instructions + data) is divided into equal, fixed-size chunks called pages.Physical main memory is organized as a sequence of frames; a page can be assigned to an available frame in order to be stored (page size = frame size).The page is the basic unit of information which is moved between main memory and disk by the virtual memory system.
41 Demand PagingThe program consists of a large amount of pages which are stored on disk; at any one time, only a few pages have to be stored in main memory.The operating system is responsible for loading/ replacing pages so that the number of page faults is minimized.
42 Demand PagingWe have a page fault when the CPU refers to a location in a page which is not in main memory; this page has then to be loaded and, if there is no available frame, it has to replace a page which previously was in memory.
43 Address TranslationAccessing a word in memory involves the translation of a virtual address into a physical one:- virtual address: page number + offset- physical address: frame number + offsetAddress translation is performed by the MMU using a page table.
46 The Page TableThe page table has one entry for each page of the virtual memory space.Each entry of the page table holds the address of the memory frame which stores the respective page, if that page is in main memory.
47 The Page TableEach entry of the page table also includes some control bits which describe the status of the page:whether the page is actually loaded into main memory or not;if since the last loading the page has been modified;information concerning the frequency of access, etc.
49 Memory Reference with Virtual Memory Memory access is solved by hardware except the page fault sequence which is executed by the OS software.The hardware unit which is responsible for translation of a virtual address into a physical one is the Memory Management Unit (MMU).
50 Translation Lookaside Buffer Every virtual memory reference causes two physical memory accessFetch page table entryFetch dataUse special cache for page tableTLB
54 Page ReplacementWhen a new page is loaded into main memory and there is no free memory frame, an existing page has to be replacedThe decision on which page to replace is based on the same speculations like those for replacement of blocks in cache memoryLRU strategy is often used to decide on which page to replace.
55 Page ReplacementWhen the content of a page, which is loaded into main memory, has been modified as result of a write, it has to be written back on the disk after its replacement.One of the control bits in the page table is used in order to signal that the page has been modified.
56 Summary Objective and functions OS Scheduling Memory management virtual memorypage replacement