Presentation is loading. Please wait.

Presentation is loading. Please wait.

Memory Management Policies: UNIX

Similar presentations


Presentation on theme: "Memory Management Policies: UNIX"— Presentation transcript:

1 Memory Management Policies: UNIX
Chapter 9 Memory Management Policies: UNIX Topics Allocating swap space Freeing swap space Swapping Demand paging THE DESIGN OF THE UNIX OPERATING SYSTEM Maurice J. bach Prentice Hall

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.)
per process region table Kernel region table u area main memory Kernel process 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 Map Address
Allocate 100 unit Allocate 50 unit Map Address Unit

8 Freeing Swap Space Address Unit 101 50 251 9750 251 9750 Map
50 unit free at 101 Map Case 1: Free resources fill a hole, but not contiguous to any resources in the map

9 Freeing Swap Space Address Unit 101 50 251 9750 251 9750 Map 1 150
50 unit free at 101 Map 100 unit free at 1 Case 2: Free resources fill a hole, and immediately precedes an entry in the map

10 Freeing Swap Space Address Unit 101 50 251 9750 251 9750 Map 1 150
50 unit free at 101 Map 100 unit free at 1 Allocate 200 unit 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 When fork() called for allocate child process When called for increase the size of process When process become larger by growth of its stack 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 Text Data
: 128k k 66k k 65k k 1k k k Virtual Addresses Swap device 684 690 Text Data Stack Physical Addresses Mapping process onto the swap device

15 Swapping Process In Swapping a process into memory Text Data Stack
Virtual Addresses Physical Addresses Swap device 684 Text k 1k k : Data 65k k 66k k 690 : Stack 128k k : Swapping a process into memory

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
Region Page Table Page Table Entry Disk Block Descriptor Page Table Entry Page address age Cp/wrt mod ref val prot Disk Block Descriptor Type Block num Swap device

21 Page Table Entry 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

22 Disk Block Descriptor Swap Device number as there may be several swap devices Block number that contains page Type Block num Swap device


Download ppt "Memory Management Policies: UNIX"

Similar presentations


Ads by Google