PPTX

hesitantdoubtfulΤεχνίτη Νοημοσύνη και Ρομποτική

29 Οκτ 2013 (πριν από 3 χρόνια και 7 μήνες)

87 εμφανίσεις

Virtual Memory

Why?

The need of memory more than the available physical memory.

Process 1

Process 3

Process 4

Process 2

Physical

Memory

Memory Limits for Windows Releases

http://msdn.microsoft.com/en
-
us/library/windows/desktop/aa366778(v=vs.85).aspx

Max. memory per a process

http://msdn.microsoft.com/en
-
us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits

Max. memory per a VM (.NET or Java)


Max. memory per a single object


max
2
GB (.NET)
ไม่ว่าจะเป็น

32
-
bit
หรือ
64
-
bit version


สร้าง
object Array
เกิน
2
GB
ไม่ได้



With
.NET
4.5
,
10
years memory limit of
2
GB is
over

ส่วนใหญ่การเขียนโปรแกรมด้วย
Java
หรือ
.NET
จะติด
memory limit
ที่
virtual machine
ก่อน

ถ้าจะทะลุ
limit
นี้ไปก็ต้องเขียน
C/C++
หรือเรียก
system call

No
corresponding

physical
memory

Virtual memory

(a process)

code

data

heap

stack

Virtual Memory

pp.
359

As stack and heap grow, more pages will be
allocated and mapped to physical memory.

Virtual Memory

kernel

Virtual memory

(a process)

page 1

page 2

page 3

Physical memory

มีจ ากัด
RAM
แพง

Storage (HD)

page 4

page
5

page
1

page 2

page 3

page 4

page
5

Summary

Virtual memory = mapping + paging + swapping

pp.
362

มี
logical

กับ
physical

แบ่งเป็น
page

ไม่ใช่
contiguous

swap
กับดิสก์

valid/invalid bit
ในรูปนี้ ใช้บอกว่า

page
นั้น อยู่บน

memory
หรือไม่

Demand Paging

Demand paging = lazy swapping

pp.
361

The OS only swaps a page into memory

when it is required by a process

Swap
-
in algorithm

ถ้า
swap
-
in
ไม่ได้
(memory
เต็ม
)

ก็ต้องท า
swap
-
out
ก่อน



แบบ
lazy
จะตรงข้ามกับแบบ
intelligent
หรือ
speculative

Page Fault

pp.
363

Locality of Reference

เพราะธรรมชาติของ
memory access
ไม่
random

ถึงใช้
page
และ
virtual memory
ได้

Copy
-
on
-
Write

pp.
368

Make another copy of page C when a process writes.

After forking. Parent and
child share the same copy.

Demand paging requires


1
) frame
-
allocation algorithm


2
) page
-
replacement algorithm

Reference string

To know the number of page faults,

you need to know the number of max frames.

จะให้กี่
max. frame per process

page
ไหนจะเป็น
victim

จะเกิด
page fault
กี่ครั้ง

มี
maximum frame
เท่าใด

max =
2
เกิด
page fault, max =
3
ไม่เกิด

ช่อง
load M
คือ
executable code

2
frame
แรกส าหรับจอภาพ

เต็มหมดทุก
frame

ไม่มีที่ว่างส าหรับ
M

ช่องนี้ก่อน

หน้าคงเป็น
f

Max. frame per process

Frequency
ของ

การเกิด
page fault

Page Replacement
Algo
. (summary)

1
)

FIFO page replacement

-

Belady’s

anomaly

2
)

Optimal page replacement

-

Replace the page that will not be used


for the longest period of time.

-

Similar to SJF, requiring future knowledge.

3
)

Least
-
recently
-
used (LRU) page replacement

-

Counter,
equip a counter for each entry in page table

-

Stack,
move the referenced page to TOS

4)
LRU
-
approximation page replacement

-

Additional
-
reference
-
bits algorithm

-

Second
-
chance algorithm

-

Enhanced second
-
chance algorithm

5
)

Counting
-
based page replacement

-

Least
frequently

used (LFU)
page
-
replacement algorithm

-

Most
frequently
used (MFU)
page
-
replacement algorithm

6)
Page
-
buffering algorithms (
เป็นเทคนิคเสริม
)

Page Replacement (cont.)

A process

Max. #frames =
3

Pool of

free frames

HD

frame

frame

frame

frame

frame

frame

frame

frame

Step
1

Step
2

Delay writing out or

do it when CPU is idle.


Increase response time.

not r
ecently
as the previous

Page fault, not choose a
victim, borrow a frame

Belady’s

anomaly

(undesired characteristics)

Using frame number “
n



if
n

is in stack


move
n

to TOS

else


push
n

LSB

Additional
-
reference
-
bits algorithm

MSB

0



Each page has a corresponding
8
-
bit register.



If the page is accessed, MSB is set to
1
.



Every
100
ms, shift
-
right (
÷
2
) all registers.



The page with the lowest number is the LRU page.

Shift right (less registers than counter)

มองไปในอดีตได้ไกลมาก เท่าไรก็ได้
(
ปรับ
100
ms
ให้มากขึ้น
)
แต่ใช้ที่
8

บิทเสมอ

เหมือนการใช้
counter
แต่เป็นการ
ประมาณ
ค่า เช่น


page A

10000000


10000000
…. →
01000000


page B

00000000

10000000

…. →
01000000

Page A is older but as time passed no difference between A and B.

เพราะ
access A
กับ
access B
มันเกิดใกล้กันมาก การประมาณค่าท าให้แยกไม่ได้ แต่ผิดไม่เกิน
100
ms

Example

1000 0000

100
ms

0100 0000

100
ms

0010 0000

access

1010 0000

100
ms

0101 0000

Counting is more expensive
then shifting

access A

access B

FIFO + Second Chance

Referenced

Set ref. bit to
1

1
Give the second chance, clear

0

Replace

Step

1
.
ใช้หลัก
FIFO
เริ่มจากหัวคิว

2
.
ถ้า
ref bit =
0
,
ได้
victim
แล้ว


ถ้า
ref bit =
1
, clear
ไปตัวถัดไป

3
.
อาจจะต้องวนมาเริ่มใหม่


(
ได้

second chance
กันหมด
)

4
.
ถ้าได้
victim
แล้ว ให้โหลด
new


page
มาทับ
victim
และให้ไป


ต่อท้ายคิว ตามหลักการ
FIFO

If

a

page

is

used

often

enough

to

keep

its

reference

bit

set,

it

will

never

been

replaced
.

Advance pointer and

clear reference bits

Current pointer

Victim

Clear

Clear

Load new page,

set ref bit to
1

move to the end of Q

Enhanced second
-
chance algorithm (modify bit)

modify bit
0
= not modified
1
= modified

(
0
,
0
)

neither recently used nor modified


best page to replace

(
0
,
1
)

not recently used but modified


not quite as good and need writing disk

(
1
,
0
)

recently used but clean


probably will be used again soon

(
1
,
1
)

recently used and modified


used again soon and need writing disk

last choice

first choice

We may have to scan the circular queue several times.


The major diff. with second chance
algo
. is


the preference to reduce I/O traffic.

Allocation of Frames

1
)

Minimum number of frames

-

Instruction set architecture:


add
a
1

a
2

a
3


min =
3


ld r
1
a
4



min =
1



2
)

Allocation algorithms

-

Equal allocation
ให้ทุก
process
เท่า ๆ กัน

-

Proportional allocation
เกลี่ยให้ตามความต้องการใช้



memory
ของแต่ละ
process

Global vs. Local allocation

1)
Local allocation

-

a process uses
max

frames.

-

when requesting a free frame, choose a victim


from its own set of allocated frame.

2
)

Global allocation


-

choose a victim from the set of all frames,


even if that frame is currently allocated to


some other process.

Thrashing

Definition: high paging activity.

#process
ใน
ready queue

มี
1
process CPU
จะ
idle
เพราะรอ
I/O

และไม่มี
process
อื่น

ให้
execute

มีหลาย
process
เกินไป
แย่ง
frame
กัน

OS
ต้อง
predict
ได้ว่าจะเกิด
thrashing

ให้ลด
degree of multiprogramming

การ
predict
ต้องใช้
working set model

Working
-
Set Model

Working

set

=

set

of

pages

in

the

most



recent



page

references
.

Demand

เช่น
P
1
ใช้
WSS =
8
, P
2
ใช้
WSS =
6

=
8
+
6
=
14

ถ้า
demand > supply (allocated frames)
ก็เพิ่ม
frame
ให้แต่ละ
process

(equal or
proportional
)

แต่ถ้าไม่มี
frame
เหลือแล้ว ให้ลด
degree of multiprogramming
หรือลดจ านวน
process
ใน
ready queue

Page
-
Fault Frequency

Working sets and page fault rates

ถ้าวัดในช่วงเวลานี้ จะได้
working set

นี้เสมอ หรือ เกือบๆ

เริ่มเกิด
page fault
เนื่องจาก

process
ย้ายไป
working set
ใหม่

page fault
ตก โหลด
working
set
เข้ามาทุก
frame
แล้ว

พฟื
transition
จาก
working set
นึงไปยังอีก
working
นึง

ธรรมชาติ
ของ
process
จะเป็นแบบนี้

1 1 2 1 3 1 2 3 1 2 3 2 1 2 3 2 1

4 5 4 6 5 5 6 6 4 5 4 4 4

Homework

Page faults / sec

time

1.
Thrashing or

2.
Moving from a working set to another working set ?

Hint:
ต้องดูข้อมูลอะไรเพิ่มบ้าง
?


assume
ว่าเรา
ไม่รู้
page fault rate
ที่เวลา
< t
1

และ
> t
2

t
1

t
2

อัตราการเกิด
page fault

เพิ่มขึ้นอย่างรวดเร็ว