virtual memory why? the need of memory more than the available physical memory. process 1 process 3...

Post on 31-Mar-2015

232 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Virtual Memory

Why?The need of memory more than the available physical memory.

Process 1

Process 3

Process 4Process 2

PhysicalMemory

Memory Limits for Windows Releaseshttp://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 objectmax 2GB (.NET) ไม่�ว่�าจะเป็น 32-bit หรื�อ 64-bit version

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

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)

codedataheap

stack

Virtual Memory

pp. 359

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

Virtual Memorykernel

Virtual memory(a process)

page 1page 2page 3

Physical memory ม่�จ�ากิ�ด้ RAM แพง

Storage (HD)

page 4page 5

page 1page 2

page 3page 4page 5

SummaryVirtual memory = mapping + paging + swapping

pp. 362

ม logical ก$บ physical

แบ�งเป&น page ไม�ใช่�

contiguous

swap ก$บด้�ส่ก(

valid/invalid bit ในร)ปน ใช่�บอกว�าpage น$ น อย)�บน memory หร�อไม�

Demand PagingDemand paging = lazy swapping

pp. 361

The OS only swaps a page into memorywhen 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. 368Make another copy of page C when a process writes.

After forking. Parent and child share the same copy.

Demand paging requires1) frame-allocation algorithm2) 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 anomaly2) 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 TOS4) 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 processMax. #frames = 3

Pool offree frames

HD

frame

frame

frame

frameframe

frame

frameframe

Step 1

Step 2

Delay writing out ordo it when CPU is idle.

Increase response time.

not recently 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 stackmove n to TOS

elsepush 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)

มองไปในอด้ ติได้�ไกลุมาก เที่�าไรก"ได้� ( ปร$บ 100ms ให�มากขี* น) แติ�ใช่�ที่ � 8 บ�ที่เส่มอ

เหม�อนการใช่� counter แติ�เป&นการประมาณ ค่�า เช่�น page A 10000000 → 10000000 …. → 01000000 page B 00000000 → 10000000 …. → 01000000Page A is older but as time passed no difference between A and B.

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

Example1000 0000100ms0100 0000100ms0010 0000access1010 0000 100ms0101 0000

Counting is more expensive then shifting

access A access B

FIFO + Second ChanceReferenced Set ref. bit to 11 Give the second chance, clear0 Replace

Step1. ใช�หล�กิ FIFO เรื�&ม่จากิห�ว่ค�ว่2. ถ้�า ref bit = 0, ได้� victim แล�ว่ ถ้�า ref bit = 1, clear ไป็ต็�ว่ถ้�ด้ไป็3. อาจจะต็�องว่นม่าเรื�&ม่ใหม่� ( ได้� second chance กิ�นหม่ด้)4. ถ้�าได้� victim แล�ว่ ให�โหลด้new page ม่าทำ�บ victim และให�ไป็ ต็�อทำ�ายค�ว่ ต็าม่หล�กิกิารื FIFOIf a page is used often enough to keep its reference bit set, it will never been replaced.

Adva

nce

poin

ter a

ndcl

ear r

efer

ence

bits

Current pointer

Victim

Clear

Clear

Load new page,set ref bit to 1move 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. isthe preference to reduce I/O traffic.

Allocation of Frames1) Minimum number of frames- Instruction set architecture:

add a1 a2 a3 min = 3ld r1 a4 min = 1

2) Allocation algorithms- Equal allocation ให�ทำ*กิ process เทำ�า ๆ กิ�น- Proportional allocation เกิล�&ยให�ต็าม่คว่าม่ต็�องกิารืใช�

memory ข้องแต็�ละ process

Global vs. Local allocation1) 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 tosome other process.

ThrashingDefinition: 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

เช่�น P1 ใช่� WSS = 8, P2 ใช่� 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 แล�ว่

พฟื0transition จาก 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

HomeworkPage faults / sec

time

1. Thrashing or2. Moving from a working set to another working set ?

Hint: ติ�องด้)ขี�อม)ลุอะไรเพ��มบ�าง? assume ว�าเรา ไม่�รื0� page fault rate ที่ �เวลุา < t1 แลุะ > t2

t1 t2

อ�ต็รืากิารืเกิ�ด้ page fault

เพ�&ม่ข้#(นอย�างรืว่ด้เรื�ว่

top related