0% found this document useful (0 votes)
76 views22 pages

Memory Management Policies: Unix: The Design of The Unix Operating System Maurice J. Bach Prentice Hall

The document discusses memory management policies in UNIX, including allocating and freeing swap space, swapping processes in and out of memory, and demand paging. Key data structures include the page table, disk block descriptors, and tables for tracking free swap space and page frames. Swapping involves writing processes to and reading from the swap device when memory is full.

Uploaded by

sgrigoriev
Copyright
© Attribution Non-Commercial (BY-NC)
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% found this document useful (0 votes)
76 views22 pages

Memory Management Policies: Unix: The Design of The Unix Operating System Maurice J. Bach Prentice Hall

The document discusses memory management policies in UNIX, including allocating and freeing swap space, swapping processes in and out of memory, and demand paging. Key data structures include the page table, disk block descriptors, and tables for tracking free swap space and page frames. Swapping involves writing processes to and reading from the swap device when memory is full.

Uploaded by

sgrigoriev
Copyright
© Attribution Non-Commercial (BY-NC)
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

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
1
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

2
Data Structures for Process
Kernel Process Kernel Region
Table A Process Table

Per Process Region Table

Text

File Descriptor Table Data

Stack
U Area
3
Data Structure for Process (contd.)

per process
region table Kernel region table
u area

main memory
Kernel
process table

4
UNIX Memory Management
Policies

• Swapping
– Easy to implement
– Less system overhead

• Demand Paging
– Greater flexibility

5
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

6
Allocating Swap Space

Address Unit
Allocate 100 unit
1 10000 101 9900
Map

Allocate 50 unit

Allocate 100 unit


251 9850 151 9750

7
Freeing Swap Space
Address Unit 101 50
50 unit free at 101
251 9750 251 9750
Map

Case 1: Free resources fill a hole,


but not contiguous to any resources in the map

8
Freeing Swap Space
Address Unit 101 50
50 unit free at 101
251 9750 251 9750
Map
100 unit free at 1

1 150

251 9750

Case 2: Free resources fill a hole,


and immediately precedes an entry in the map
9
Freeing Swap Space
Address Unit 101 50
50 unit free at 101
251 9750 251 9750
Map
100 unit free at 1

1 150 Allocate 200 unit 1 150

451 9550 251 9750

300 unit free at 151 Case 3: Free resources fill


a hole, and completely
1 10000 fills the gap between
entries in the map 10
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

11
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

12
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

13
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


14
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


15
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

16
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

17
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

18
Data Structure for Demand Paging

• Page table entry

• Disk block descriptors

• Page frame data table

• Swap use table


19
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

Swap device Block num Type


20
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

21
Disk Block Descriptor

• Swap Device number as there may be


several swap devices
• Block number that contains page

Swap device Block num Type

22

You might also like