Memory Management Policies: Unix: The Design of The Unix Operating System Maurice J. Bach Prentice Hall
Memory Management Policies: Unix: The Design of The Unix Operating System Maurice J. Bach Prentice Hall
2
Data Structures for Process
Kernel Process Kernel Region
Table A Process Table
Text
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
7
Freeing Swap Space
Address Unit 101 50
50 unit free at 101
251 9750 251 9750
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
11
Swapping Process Out
• Memory Swap device
• Kernel swap out when it needs memory
1. When fork() called for allocate child process
2. When brk() 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
16
Expansion Swap
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
Demand Paging
• Bring a page into memory only when it is needed
– Less I/O needed
– Less memory needed
– Faster response
– More users
19
Transfer of a Paged Memory to Contiguous Disk Space
20
Data Structure for Demand Paging
21
Page Table Entry and Disk Block
Descriptor
Region Page Table
23
Valid-Invalid Bit
• With each page table entry a valid–invalid bit is associated
(v in-memory, i not-in-memory)
• Initially valid–invalid bit is set to i on all entries
• Example of a page table snapshot:
Frame # valid-invalid bit
v
v
v
v
i
….
i
i
page table
• During address translation, if valid–invalid bit in page table entry
is I page fault
24
Page Table When Some Pages Are Not in Main Memory
25
Demand Paging
• Fork in a paging System
• vfork function
• Creates a new process only to ‘exec’ a new
program
• No copy of parent’s address space for child (not
needed!)
• Before exec, child runs in “address space of
parent”
• Efficient in paged virtual memory
• Child runs first
• Parent waits until child ‘exec’ or ‘exit’
26
Demand Paging
• Exec in a Paging System in a paging
System
27
Demand Paging
• Page Fault
• If there is a reference to a page, first reference to that
page will trap to operating system:
page fault
1. Operating system looks at another table to decide:
– Invalid reference abort
– Just not in memory
2. Get empty frame
3. Swap page into frame
4. Reset tables
5. Set validation bit = v
6. Restart the instruction that caused the page fault
28
Demand Paging
• Validity fault handler
• If a process attempts to access a page
whose valid bit is not set, it incurs a
validity fault and the kernel invokes the
validity fault handler
• Protection fault handler
• Another type of memory fault
• Process access a valid page but the
permission bits associated with the page
does not permit the access.
29
Demand Paging
• Protection fault can also occur when a
process attempts to write a page whose
COW bit is set during fork
30
A Hybrid System with Swapping
and Demand Paging
• Demand paging systems treat memory more
flexibly than swapping systems
• But in some situations the page stealer and
validity fault handler trash because of
shortage of memory
• If the sum of working sets of all processes
is greater than the physical memory on a
machine, the fault handler will sleep as it
cannot allocate pages for a process
31
A Hybrid System with Swapping
and Demand Paging
• The page stealer will not be able to steal
pages fast enough as all the pages are in the
working set
• System V kernel runs swapping and
demand paging algorithms to avoid trashing
problems
• Swapper swaps the process out until
memory becomes free
32