Title: CMPT 300: Final Review Chapters 8 12
1CMPT 300 Final Review Chapters 8 12
2Memory 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
3Memory 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
4Paging
5Segmentation
1
2
3
4
user space
physical memory space
6Segmentation Hardware
7Paging 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 gt 32 bits
architectures - Segmentation variable size
- External fragmentation
- Facilitates sharing of code and data (share the
whole segment) - Combined Segmentation paging
- Example Intel Pentium
8Virtual 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
9Virtual Memory and Page Fault
10Page 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,
11Thrashing
- Thrashing ? a process is busy swapping pages in
and out more than executing (because OS allocated
too few frames to it)
12Locality 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)
13Allocating 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)
14Kernel Memory Buddy System
15Kernel Memory Slab Allocation
16File Systems Ch. 10, 11, 12
Application Programs
Logical File System
- Interface file and directory structure
- Maintains pointers to logical block addresses
- Implementation block allocation,
- Maps logical into physical addresses
File-organization Module
Device Drivers
- Implementation device-specific instructions
- Writes specific bit patterns to device controller
Storage Devices
17File System Interface
- Files
- The smallest storage unit from the users
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
18File System Implementation
- To implement a file system, we need
- On-disk structures, e.g.,
- directory structure, number of blocks, location
of free blocks, boot information, - (In addition to data blocks, of course)
- In-memory structures to
- improve performance (caching)
- manage file system
19On-disk Structures
Free block
Boot block
Superblock
Directory structure
File control block
Data block
20Opening and Reading from a File
21Block Allocation
- Allocate free blocks to files to achieve
efficient disk space utilization, and fast file
access - Three common allocation methods
- Contiguous
- Linked
- Indexed
- OS keeps track of free blocks using
- Bitmaps
- Linked lists
22Combined Scheme UNIX inode
23Disk Structure and Scheduling
- Disk structure
- cylinders, tracks, sectors, logical blocks
- Disk operation
- Move the head to desired track (seek time)
- 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
24Warp Up What We Have Covered
- How to manage resources in a single computer
25Warp 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,)
26That is it with CMPT 300!