Review Ch 8--12 - network systems lab @ sfu
Download
Report
Transcript Review Ch 8--12 - network systems lab @ sfu
CMPT 300: Final Review
Chapters 8 – 12
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
2
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
3
Paging
4
Segmentation
1
4
1
2
3
2
4
3
user space
physical memory space
5
Segmentation Hardware
6
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
7
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
8
Virtual Memory and Page Fault
9
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, …
10
Thrashing
Thrashing a process is busy swapping pages in and out more
than executing (because OS allocated too few frames to it)
11
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)
12
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)
13
Kernel Memory: Buddy System
14
Kernel Memory: Slab Allocation
15
File 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
16
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
17
File 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
18
On-disk Structures
Free block
Boot block
Superblock
Directory structure
File control block
Data block
19
Opening and Reading from a File
20
Block 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
21
Combined Scheme: UNIX inode
22
Disk 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
23
Warp Up: What We Have Covered
How to manage resources in a single computer
24
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, interprocess communications, consistency and reliability, security
Special-purpose operating systems, e.g.,
Real-time OS
OS on small devices (PDAs, sensors,…)
25
That is it with CMPT 300!
Good Luck on Your Final
26