290 likes | 453 Views
CMPT 300: Final Review Chapters 8 – 14. Memory Management: Ch. 8, 9. Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory unit User program deals with logical addresses; never sees physical addresses Mapping from logical to physical addresses
E N D
Memory Management: Ch. 8, 9 • Address spaces • Logical (virtual): generated by the CPU • Physical: seen by the memory unit • User program deals with logical addresses; never sees physical addresses • Mapping from logical to physical addresses • Static: done at compile-time • Dynamic: done at load or execution time
Memory Allocation • Memory is usually divided into two partitions for: • Kernel: usually held in low memory • User processes: usually held in high memory • Typically, the two partitions are managed differently • Memory allocation • Contiguous • First-, Best-, Worst-fit • Fragmentation: external and internal • Paging, segmentation, virtual memory
1 4 2 3 Segmentation 1 2 3 4 user space physical memory space
Paging and Segmentation • Paging issues: • Page size • Internal fragmentation and page table size • Page table (one table for each process) • Access time: use cache (TLB) • Size: use two- or three-levels page tables use hashed or inverted page tables for > 32 bits architectures • Segmentation: variable size • External fragmentation • Facilitates sharing of code and data (share the whole segment) • Combined Segmentation + paging: • Example Intel Pentium
Virtual Memory • Logical address space can be much larger than physical address space • Only the needed parts of the program are brought to memory for execution • Allows address spaces to be shared by several processes • Allows for more efficient process creation • Virtual memory can be implemented via • Demand paging • Demand segmentation
Page Replacement • When we need to bring a page from disk and there is no free frame: • Find a victim page to evict from memory • Objective: minimize number of page faults (they are very costly) • Replacement algorithms • FIFO, OPT, LRU, second-chance, …
Thrashing • Thrashing a process is busy swapping pages in and out more than executing (because OS allocated too few frames to it)
Locality Model • As a process executes, it moves from locality to locality, where a locality is a set of pages that are actively used together • Locality could be: function, module, segment of code, … • Locality model helps us to estimate the working set of a process • Working set: pages that are actively being used (within a window)
Allocating Kernel Memory • Treated differently from user memory because • Kernel requests memory for structures of varying sizes • Process descriptors (PCB), semaphores, file descriptors, … • Some of them are less than a page • Some kernel memory needs to be contiguous • some hardware devices interact directly with physical memory without using virtual memory • Virtual memory may just be too expensive for the kernel (cannot afford a page fault)
File Systems: Ch. 10, 11, 12 • Interface: file and directory structure • Maintains pointers to logical block addresses Application Programs Logical File System • Implementation: block allocation, … • Maps logical into physical addresses File-organization Module Device Drivers • Implementation: device-specific instructions • Writes specific bit patterns to device controller StorageDevices
File System Interface • Files • The smallest storage unit from the user’s perspective • A collection of blocks on the disk from OS’ perspective • Directory structure • Tree-structured with links (general graphs) • Each file has an entry in the directory
File System Implementation • To implement a file system, we need • On-diskstructures, e.g., • directory structure, number of blocks, location of free blocks, boot information, … • (In addition to data blocks, of course) • In-memorystructures to: • improve performance (caching) • manage file system
On-disk Structures Free block Boot block Superblock Directory structure File control block Data block
Block Allocation • Allocate free blocks to files to achieve efficient disk space utilization, and fast file access • Threecommon allocation methods • Contiguous • Linked • Indexed • OS keeps track of free blocks using • Bitmaps • Linked lists
Disk Structure and Scheduling • Disk structure • cylinders, tracks, sectors, logical blocks • Disk operation • Move the head to desired track (seektime) • Wait for desired sector to rotate under the head (rotational latency time) • Transfer the block to a local buffer, then to main memory (transfer time) • Disk scheduling • To minimize seek time (head movements) • Algorithms: FCFC, SSTF, SCAN, LOOK
Protection: Ch. 14 • Protection: Ensure that each object is accessed correctly and only by those processes that are allowed to do so • A process operates within a protection domain • Domain = set of access rights (= user-id in UNIX)
Access Matrix • Protection as a matrix • Implemented as Access Control List (columns), or Capability List (rows)
Protection in UNIX • Default: Coarse-grained protection using 9 bits • rwxrwxrwx filename • Ownergroupall_others • Optional: fine-grained protection using Access Control List
Warp Up: What We Have Covered • How to manage resources in a single computer
Warp Up: What We Have NOT Covered • How to manage resources distributed over multiple computers • CMPT 371: Computer Networks • Protocols and algorithms to make computers talk to each other • CMPT 401: Operating Systems II • Distributed file systems, distributed synchronization, inter-process communications, consistency and reliability, security • Special-purpose operating systems, e.g., • Real-time OS • OS on small devices (PDAs, sensors,…)
That is it with CMPT 300! Good Luck on Your Final