0% 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.

Uploaded by

Shivani Gujral
Copyright
© © All Rights Reserved
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)
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.

Uploaded by

Shivani Gujral
Copyright
© © All Rights Reserved
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


Type Block num Swap device

You might also like