Slide 06
Slide 06
Slide 06
1
Question
What is incorrect about overlays?
A. overlays allows a large program to run in a
smaller MEM
B. Overlays only loads codes on demand (when
they are used)
C. Programmers need to split the program into
modules
D. Overlays is supported in all high level
programming languages
2
Question
What is incorrect about swapping?
A. swapping is the same as overlays
B. swapping uses hard disk as the backing store
C. swapping allows many processes whose size
is even larger than MEM to run
D. a lower priority process is rolled out for a
higher priority one to run (when needed)
3
Review
Which is incorrect about non-contiguous
MEM allocation?
A. split logical memory into parts
B. utilize MEM more effectively in comparison
with contiguous allocation method
C. need a Memory Management Unit
D. only suitable for some types of processes
4
Review
Which is correct about MMU of paging and
segmentation allocation methods?
A. they are the same
B. MMU of paging needs more information than
that of segmentation
C. they use different resolution methods
D. MMU of segmentation is faster than that of
paging
5
Question
Suppose a process in contiguous allocation:
the base address is 10400
the limit register is 1200
the reference is 246;
Which of the following is the correct physical
address of the reference ?
A. 10154
B. 10646
C. 1446
D. 954
6
Question
A system uses paging
the frame size of 2KB;
the address register is 32 bits
Which of the following is correct about register
segmentation?
A. (page:offset) = (19:13)
B. (page:offset) = (21:11)
C. (page:offset) = (22:10)
D. (page:offset) = (20:12)
7
Question
Frame
A system uses paging 56
the frame size of 4KB; 120
8
Virtual Memory
Paging on demand
Page replacement
Frame allocation
Thrashing
9
Objectives
Introduce paging method
Introduce segmentation method
10
Reference
Chapter 9 of Operating System Concepts
11
Virtual memory
12
Virtual memory
Separation of user logical memory from
physical memory.
Only a part of the program needs to be in memory
for execution
Logical address space can therefore be much
larger than physical address space
Allows address spaces to be shared by several
processes
Allows for more efficient process creation
Virtual memory can be implemented via
Paging on demand
13
Segmentation on demand
Virtual memory
Linux is, of course, a virtual memory system, meaning that
the addresses seen by user programs do not directly
correspond to the physical addresses used by the
hardware. Virtual memory introduces a layer of indirection that
allows a number of nice things. With virtual memory,
programs running on the system can allocate far more
memory than is physically available; indeed, even a single
process can have a virtual address space larger than the
system's physical memory. Virtual memory also allows the
program to play a number of tricks with the
process's address space, including mapping the program's
memory to device memory.
http://www.makelinux.net/ldd3/chp-15-sect-1
14
Virtual-address Space
15
Virtual-address Space
16
Virtual Memory That is Larger Than
Physical Memory
17
Shared Library Using Virtual
Memory
18
Process Creation
Virtual memory allows other benefits
Copy-on-Write during process creation
Memory-Mapped Files
19
Copy-on-Write
Copy-on-Write (COW) allows both parent and
child processes to initially share the same
pages in memory
If either process modifies a shared page, only
then is the page copied
refer to Sect. 2, Chapter 3 of “Lập trình C/C++ …”
COW allows more efficient process creation
as only modified pages are copied
20
Memory Mapped Files
A file is considered as a memory segment
Read/write operations are performed via memory
not read/write file system calls
Allow multiple processes shared a file
refer to Sect. 5, Chapter 4 of “Lập trình /C++ trên
Linux”
21
Memory Mapped Files
22
Question
What is the correct advantage of memory
mapped file?
A. reduces the task of the system’s OS
B. treats as the buffer for manipulating the file
C. allows programmers to organize the file
D. uses as shared resource among processes
23
Question
Which of the following is incorrect about virtual
memory?
A. it is separated from physical memory
B. it is mapped into physical memory during process
execution
C. it gives additional benefits, e.g., COW, file mapping
D. an address in virtual memory is preserved when
mapped into physical memory
24
Dynamic loading
25
Dynamic linking and shared library
27
Food order
28
Food order
29
Food order
30
Food order
In a minute
39
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
During address translation, if v
v
valid–invalid bit in page table
v
entry is I page fault i
….
i
i
page table 40
Page Table When Some Pages
Are Not in Main Memory
41
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. Update the page table
5. Set validation bit = v
6. Restart the instruction that caused the page fault
42
Page Fault (Cont.)
Restart instruction MEM
block move
NEW
NEW
OLD OLD
43
Steps in Handling a Page Fault
44
Process
information
45
Page fault in Windows
46
Question
Which of the following is incorrect about a
page fault?
A. it happens in paging on demand
B. it happens when a reference to a page that is not
in MEM
C. when a page fault occurs the corresponding
process will be terminated
D. a page fault handler is called whenever it occurs
47
Question
Which of the following is incorrect order of
steps in handling a page fault?
A. check if the valid bit is invalid raise a page
fault
B. a page fault is raised find the page in
backing store
C. a page fault is raised find a free frame
D. load the page into memory restart the
instruction
48
If no free frame available
Call page replacement procedure
swap out an unused page from MEM
Algorithms
Optimal, FIFO, LRU, LRU-approximation, counting
Performance of the algorithm
page-fault rate
which algorithm is better?
49
Performance of paging on
demand
Page Fault Rate 0 p 1.0
if p = 0 no page faults
if p = 1, every reference is a page fault
Effective Access Time (EAT)
EAT = (1 – p) * memory access
+ p (page fault overhead
+ swap page out
+ swap page in
+ restart overhead)
50
Paging on Demand Example
Memory access time = 200 nanoseconds
Average page-fault service time = 8
milliseconds
EAT = (1 – p) x 200 + p (8 milliseconds)
= (1 – p) x 200 + p x 8,000,000
= 200 + p x 7,999,800
If one access out of 1,000 causes a page
fault
EAT = 8.2 microseconds.
slowdown by a factor of 41!!
51
Page Replacement
Prevent over-allocation of memory
include page replacement in page-fault service
routine
Use modify (dirty) bit to reduce overhead of
page transfers
only modified pages are written to disk
Page replacement completes separation
between logical memory and physical memory
large virtual memory can be provided on a smaller
physical memory
52
Page Replacement
53
Need For Page Replacement
54
Basic Page Replacement
1. Find the location of the desired page on disk
2. Find a free frame
If there is a free frame, use it
Else use a page replacement algorithm to select a
victim frame (and swap it out)
3. Bring the desired page into the (newly) free
frame; update the page table
4. Resume the process
55
Page Replacement
56
Question
Which of the following is incorrect about page
replacement?
A. a victim frame is selected to be swapped out
B. the page table which is the victim will be updated
C. the victim frame is always written into the backing
store
D. the victim frame is only written into the backing
store if it is dirty
57
Page Replacement Algorithms
Want lowest page-fault rate
Evaluate algorithm
run it on a particular string of memory references
(reference string)
compute the number of page faults on that string
In all our examples, the reference string is
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
58
Graph of Page Faults Versus The
Number of Frames
59
Optimal Algorithm
Replace page that will not be used for longest
period of time
4 frames example
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1
How do you know this? 4
2 6 page faults
Used for measuring
3
how well the algorithm
4 5
performs
60
Question
A reference string 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
1 7 0 1, Optimal algorithm is used with 3 frames.
Which of the following is the correct order of
swapped out pages?
A. 710342
B. 701432
C. 710432
D. 714132
61
Question
A reference string 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
1 7 0 1, Optimal algorithm is used with 3 frames.
Which of the following is the correct number of
page faults?
A. 8
B. 9
C. 10
D. 11
62
First-In-First-Out (FIFO)
Algorithm
Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2,
3, 4, 5
1 1 4 5
2 2 1 3 9 page faults
3 frames
3 3 2 4
1 1 5 4
2 2 1 5 10 page faults
4 frames 3 3 2
4 4 3 Belady’s anomaly
Belady’s Anomaly: more frames more page faults 63
FIFO Illustrating Belady’s
Anomaly
64
FIFO Page Replacement
65
Question
A reference string 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
1 7 0 1, FIFO is used with 3 frames. Which of
the following is the correct order of swapped out
pages?
A. 701230423012
B. 701230432012
C. 701320423012
D. 701230423102
66
Question
A reference string 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
1 7 0 1, FIFO is used with 3 frames. Which of
the following is the correct number of page
faults?
A. 13
B. 14
C. 15
D. 16
67
Least Recently Used (LRU)
Algorithm
Least recently used page is swapped out first
Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
4 frames
1 1 1 1 5
2 2 2 2 2
3 5 5 4 4
4 4 3 3 3
68
Question
A reference string 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
1 7 0 1, LRU is used with 3 frames.
Which of the following is the correct order of
swapped out pages?
A. 712314132
B. 721304232
C. 712304123
D. 712304032
69
Question
A reference string 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
1 7 0 1, LRU is used with 3 frames.
Which of the following is the correct number of
page faults?
A. 13
B. 12
C. 11
D. 10
70
Least Recently Used Algorithm
Counter implementation
Every page entry has a counter;
every time page is referenced, copy the clock
into the counter
When a page needs to be swapped
look at the counters to determine
71
LRU Algorithm (Cont.)
Stack implementation
keep a stack of page numbers in a double link
form
Page referenced:
move it to the top
requires 6 pointers to be changed
No search for replacement
72
Use Of A Stack to Record The Most
Recent Page References
73
LRU Approximation Algorithms
Reference bit
With each page associate a bit, initially = 0
When page is referenced bit set to 1
Replace the one which is 0 (if one exists)
We do not know the order
75
Question
Suppose the second chance is used;
the reference bits of frames are: 1 1 0 1 1 0
the head is at second frame
Which of the following are the reference bits
after a page replacement is done
A. 000110
B. 101110
C. 100110
D. 101010
76
Question
Suppose the LRU counter implementation
without additional support, which of the
following is incorrect?
A. Timestamp is used to mark the referred time
B. The smallest timestamp is selected for
replacement
C. Searching is need to find the smallest timestamp
D. No need to search to find the smallest timestamp
77
Question
Suppose the LRU counter implementation
without additional support, which of the
following is incorrect?
A. Timestamp is used to mark the referred time
B. The smallest timestamp is selected for
replacement
C. Searching is need to find the smallest timestamp
D. No need to search to find the smallest timestamp
78
Counting Algorithms
Keep a counter of the number of references
that have been made to each page
Least Frequently Used (LFU) Algorithm
replaces page with smallest count
Most Frequently Used (MFU) Algorithm
based on the argument that the page with the
smallest count was probably just brought in and
has yet to be used
79
Allocation of Frames
Each process needs minimum number of
pages
Example: IBM 370 – 6 pages to handle SS
MOVE instruction:
instruction is 6 bytes, might span 2 pages
2 pages to handle from
2 pages to handle to
Two major allocation schemes
fixed allocation
priority allocation
80
Fixed Allocation
Equal allocation
For example, if there are 100 frames and 5
processes, give each process 20 frames.
Proportional allocation
Allocate according to the size of process
si size of process pi m 64
S si s1 10
s2 127
m total number of frames
10
s a1 64 5
ai allocation for ai i m 137
S 127
a2 64 59
137 81
Question
A system uses proportional allocation and
has
90 frames x 2KB
3 processes with size of (138KB, 96KB, 164KB)
Which of the following is the correct number
of allocated frames of (P1, P2, P3)
A. 32, 21, 37
B. 31, 22, 37
C. 30, 22, 38
D. 33, 22, 35
82
Priority Allocation
Use a proportional allocation scheme using
priorities rather than size
83
Global vs. Local Allocation
Global replacement
process selects a replacement frame from the set
of all frames;
one process can take a frame from another
Local replacement
each process selects from only its own set of
allocated frames
84
Thrashing
If a process does not have “enough” frames,
the page-fault rate is very high.
Thrashing
a process is busy swapping pages in and out
This caused by:
low CPU utilization
operating system thinks that it needs to increase
the degree of multiprogramming
another process added to the system
85
Thrashing (Cont.)
86
Solutions to Thrashing
Use local allocation
Use priority allocation
not good solution
Working set model
A suitable solution
87
Question
Which of the following is incorrect about
priority allocation?
A. higher priority process is allocated first
B. it prevents thrashing from happening
C. frames are allocated globally
D. it does not prevent thrashing from
happening
88
Working-Set Model
working-set window
a number of page references, e.g. 10,000
Working set of Process Pi
WSSi =total number of pages referenced in the most
recent (varies in time)
if too small will not encompass entire locality
if too large will encompass several localities
if = will encompass entire program
D = WSSi total demand frames
if D > m (total of frames) Thrashing
Policy if D > m, then suspend one process
89
Working-set model
90
Keep Track of the WSet
Approximate with interval timer + a reference bit
Example: = 10,000
Timer interrupts after every 5000 time units
Keep in memory 2 bits for each page in last 10000
and 15000
15000--..bit1..-- 10000 ---..bit2..--- 5000 ---..ref.. --- now
Whenever a timer interrupts copy and sets the values
of all reference bits to 0
If one of the bits in memory = 1 page in working set
Why is this not completely accurate?
Improvement = 10 bits and interrupt every 1000
time units
91
Question
Suppose a delta =10; reference string
2615777751623444344413234443
444…
Which of the following is the correct WSS at
20th reference?
A. {2 3 4 6}
B. {2 3 4 5 6}
C. {1 2 3 4 6}
D. {7 1 2 3 4 6}
92
Question?
93