1 / 22

Memory Management Policies: UNIX

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

jerrod
Télécharger la présentation

Memory Management Policies: UNIX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Memory Management Policies: UNIX Topics Allocating swap space Freeing swap space Swapping Demand paging Chapter 9 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 Kernel Region Table Kernel Process Table A Process Per Process Region Table Text File Descriptor Table Data Stack 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 Address Unit Allocate 100 unit 110000 1019900 Map Allocate 50 unit Allocate 100 unit 2519850 1519750

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

  9. Freeing Swap Space 101 50 1 150 2519750 2519750 Address Unit 50 unit free at 101 2519750 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 1 150 1 150 101 50 4519550 2519750 2519750 Address Unit 50 unit free at 101 2519750 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 110000

  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 Virtual Addresses Physical Addresses Swap device 684 Text 0 278k 1k 432k : Data 65k 573k 66k 595k 690 : Stack 128k 401k : Mapping process onto the swap device

  15. Swapping Process In Virtual Addresses Physical Addresses Swap device 684 Text 0 278k 1k 432k : Data 65k 573k 66k 595k 690 : Stack 128k 401k : 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 Swap device Block num Type Page Table Region Page Table Entry Disk Block Descriptor Page Table Entry Disk Block Descriptor

  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 Block num Type • Swap Device number as there may be several swap devices • Block number that contains page

More Related