410 likes | 694 Views
Computer Organization and Architecture. Operating System Support. Objectives and Functions. Convenience Making the computer easier to use Efficiency Allowing better use of computer resources. Layers and Views of a Computer System. Operating System Services. Program creation
E N D
Computer Organization and Architecture Operating System Support
Objectives and Functions • Convenience • Making the computer easier to use • Efficiency • Allowing better use of computer resources
Operating System Services • Program creation • Program execution • Access to I/O devices • Controlled access to files • System access • Error detection and response • Accounting
Types of Operating System • Interactive • Batch • Single program (Uni-programming) • Multi-programming (Multi-tasking)
Early Systems • Late 1940s to mid 1950s • No Operating System • Programs interact directly with hardware • Two main problems: • Scheduling • Setup time
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
Scheduling • Key to multi-programming • Long term • Medium term • Short term • I/O
Memory Management • Uni-program • Memory split into two • One for Operating System (monitor) • One for currently executing program • Multi-program • “User” part is sub-divided and shared among active processes
Swapping • Problem: I/O is so slow compared with CPU that even in multi-programming system, CPU can be idle most of the time • Solutions: • Increase main memory • Expensive • Leads to larger programs • Swapping
What is Swapping? • Long term queue of processes stored on disk • Processes “swapped” in as space becomes available • As a process completes it is moved out of main memory • If none of the processes in memory are ready (i.e. all I/O blocked) • Swap out a blocked process to intermediate queue • Swap in a ready process or a new process • But swapping is an I/O process...
Partitioning • Splitting memory into sections to allocate to processes (including Operating System) • Fixed-sized partitions • May not be equal size • Process is fitted into smallest hole that will take it (best fit) • Some wasted memory • Leads to variable sized partitions
Variable Sized Partitions (1) • Allocate exactly the required memory to a process • This 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 another • New process may be smaller than swapped out process • Another hole
Variable Sized Partitions (2) • Eventually have lots of holes (fragmentation) • Solutions: • Coalesce - Join adjacent holes into one large hole • Compaction - From time to time go through memory and move all hole into one free block (c.f. disk de-fragmentation)
Virtual Memory • In 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 memory • Movement of programs and data, between main memory and secondary storage, is performed automatically by the operating system. These techniques are called virtual-memory techniques
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.
Demand Paging • The 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.
Demand Paging • We 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.
Address Translation • Accessing a word in memory involves the translation of a virtual address into a physical one: • - virtual address: page number + offset • - physical address: frame number + offset • Address translation is performed by the MMU using a page table.
The Page Table • The 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.
The Page Table • Each 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.
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).
Translation Lookaside Buffer • Every virtual memory reference causes two physical memory access • Fetch page table entry • Fetch data • Use special cache for page table • TLB
Page Replacement • When a new page is loaded into main memory and there is no free memory frame, an existing page has to be replaced • The decision on which page to replace is based on the same speculations like those for replacement of blocks in cache memory • LRU strategy is often used to decide on which page to replace.
Page Replacement • When 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.
Summary • Objective and functions • OS Scheduling • Memory management • virtual memory • page replacement