Memory Management Policies: Unix: The Design of The Unix Operating System Maurice J. Bach Prentice Hall
This document discusses memory management policies in UNIX systems. It describes how UNIX uses swapping to manage memory by writing processes to secondary storage when primary memory is full. It allocates and frees space on the swap device and moves processes between memory and secondary storage as needed. It also covers demand paging, which only loads pages from disk into memory when they are accessed rather than swapping entire processes at once. Data structures like page tables and disk block descriptors are used to track mappings between memory and swap space.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
959 views
Memory Management Policies: Unix: The Design of The Unix Operating System Maurice J. Bach Prentice Hall
This document discusses memory management policies in UNIX systems. It describes how UNIX uses swapping to manage memory by writing processes to secondary storage when primary memory is full. It allocates and frees space on the swap device and moves processes between memory and secondary storage as needed. It also covers demand paging, which only loads pages from disk into memory when they are accessed rather than swapping entire processes at once. Data structures like page tables and disk block descriptors are used to track mappings between memory and swap space.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22
1
Memory Management Policies:
UNIX Chapter 9 THE DESIGN OF THE UNIX OPERATING SYSTEM Maurice J. bach Prentice Hall
Allocating swap space Freeing swap space Swapping Demand paging Topics 2 Memory Primary memory is a precious resource that frequently cannot contain all active processes in the system The memory management system decides which processes should reside (at least partially) in main memory It monitors the amount of available primary memory and may periodically write processes to a secondary device called the swap device to provide more space in primary memory At a later time, the kernel reads the data from swap device back to main memory 3 Data Structures for Process Text Stack Data File Descriptor Table Per Process Region Table Kernel Process Table Kernel Region Table A Process U Area 4 Data Structure for Process (contd.) u area main memory Kernel process table per process region table Kernel region table 5 UNIX Memory Management Policies Swapping Easy to implement Less system overhead Demand Paging Greater flexibility
6 Swapping The swap device is a block device in a configurable section of a disk Kernel allocates contiguous space on the swap device without fragmentation It maintains free space of the swap device in an in- core table, called map The kernel treats each unit of the swap map as group of disk blocks As kernel allocates and frees resources, it updates the map accordingly
7 Allocating Swap Space 1 10000 101 9900 151 9750 251 9850 Allocate 100 unit Allocate 100 unit Allocate 50 unit Map Address Unit 8 Freeing Swap Space 251 9750 50 unit free at 101 Map Address Unit 101 50 251 9750 Case 1: Free resources fill a hole, but not contiguous to any resources in the map 9 Freeing Swap Space 251 9750 50 unit free at 101 Map Address Unit 101 50 251 9750 100 unit free at 1 1 150 251 9750 Case 2: Free resources fill a hole, and immediately precedes an entry in the map 10 Freeing Swap Space 251 9750 50 unit free at 101 Allocate 200 unit Map Address Unit 101 50 251 9750 100 unit free at 1 1 150 251 9750 1 150 451 9550 1 10000 300 unit free at 151 Case 3: Free resources fill a hole, and completely fills the gap between entries in the map 11 Algorithm: Allocate Swap Space malloc( address_of_map, number_of_unit) for (every map entry) if (current map entry can fit requested units) if (requested units == number of units in entry) Delete entry from map else Adjust start address of entry return original address of entry return -1
12 Swapping Process Out Memory Swap device Kernel swap out when it needs memory 1. When fork() called for allocate child process 2. When called for increase the size of process 3. When process become larger by growth of its stack 4. Previously swapped out process want to swap in but not enough memory
13 Swapping Process Out The kernel must gather the page addresses of data at primary memory to be swapped out Kernel copies the physical memory assigned to a process to the allocated space on the swap device The mapping between physical memory and swap device is kept in page table entry 14 Swapping Process Out Mapping process onto the swap device : 128k 401k : 66k 595k 65k 573k : 1k 432k 0 278k Virtual Addresses Swap device 684 690 Text Data Stack Physical Addresses 15 Swapping Process In Swapping a process into memory : 128k 401k : 66k 595k 65k 573k : 1k 432k 0 278k Virtual Addresses Swap device 684 690 Text Data Stack Physical Addresses 16 Fork Swap There may not be enough memory when fork() called
Child process swap out and ready-to-run
Swap in when kernel schedule it
17 Expansion Swap It reserves enough space on the swap device to contain the memory space of the process, including the newly requested space Then it adjust the address translation mapping of the process Finally, it swaps the process out on newly allocated space in swapping device When the process swaps the process into memory, it will allocate physical memory according to new address translation map
18 Demand Paging Not all page of process resides in memory Locality When a process accesses a page that is not part of its working set, it incurs a page fault. The kernel suspends the execution of the process until it reads the page into memory and makes it accessible to the process 19 Data Structure for Demand Paging Page table entry
Disk block descriptors
Page frame data table
Swap use table
20 Page Table Entry and Disk Block Descriptor Disk Block Descriptor Page Table Entry Page address age Cp/wrt mod ref val prot Region Page Table Entry Page Table Type Block num Swap device Disk Block Descriptor 21 Contains the physical address of page and the following bits: Valid: whether the page content legal Reference: whether the page is referenced recently Modify: whether the page content is modified copy on write: kernel must create a new copy when a process modifies its content (required for fork) Age: Age of the page Protection: Read/ write permission Page Table Entry 22 Disk Block Descriptor Swap Device number as there may be several swap devices Block number that contains page