45
โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โโโโโโโโโ โโโโโโโโโ Virtual Memory Structure

6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

Embed Size (px)

Citation preview

Page 1: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

โครงสร�างหน่วยความจำ�าโครงสร�างหน่วยความจำ�าเสม�อน่เสม�อน่

Virtual Memory Structure

Page 2: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 2

Virtual Memory

Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples

Page 3: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 3

Learning Objectives

เพื่ �อศึ�กษาความสาค�ญของหน่�วยความจำาเสม อน่ เพื่ �อเข�าใจำการสลั�บหน่�าตามคาขอทั�น่ทั! (demand paging) ของ

หน่�วยความจำาเสม อน่ เพื่ �อเข�าใจำถึ�งความซั�บซั�อน่แลัะค�าใช้�จำ�ายใน่การใช้�งาน่หน่�วยความจำา

เสม อน่

Page 4: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 4

ความเป#น่มา Background

ช้'ดคาส��งทั!�จำะถึ)กกระทัาการได�น่�+น่จำะต�องอย)�ใน่หน่�วยความจำากายภาพื่เสมอ

เราจำาเป็.น่ต�องใส�พื่ +น่ทั!�เลัขทั!�อย)�ของหน่�วยความจำาแบบตรรกะทั�+งหมดลังใน่หน่�วยความจำาแบบกายภาพื่ (แต�ถึ)กจำาก�ดด�วยขน่าดของพื่ +น่ทั!�หน่�วยความจำาจำร/ง)

กรณี! single program ใช้�ว/ธี!การ overlay ค อการทัาให�โป็รแกรมทั!�ม!ขน่าดใหญ�กว�าพื่ +น่ทั!�ใน่

หน่�วยความจำา ให�สามารถึดาเน่/น่ได� จำ�ดการโดยโป็รแกรมเมอร3 โดยการแบ�งโป็รแกรมออกเป็.น่โป็รแกรมย�อย (sub program)

หลัายๆ ส�วน่ แลัะให�แต�ลัะส�วน่ม!ขน่าดเลั5กกว�าหน่�วยความจำา กรณี! Multiprogram

ใช้�หน่�วยความจำาเสม อน่ (virtual memory) จำ�ดการโดย OS

Page 5: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 5

ความเป#น่มา Background

โป็รแกรมจำะถึ)กแบ�งออกเป็.น่ 2 ส�วน่ main program เป็.น่ส�วน่ของโป็รแกรมทั!�อย)�ใน่หน่�วยความจำาไป็ตลัอดจำน่กระทั��งการทัางาน่ส/+น่ส'ดลัง แลัะ Sub-Program ใน่ส�วน่ทั!�เหลั อ จำะถึ)กแบ�งออกเป็.น่ส�วน่ย�อยๆ แลัะจำะถึ)กโหลัดเข�าส)�หน่�วยความจำาก5ต�อเม �อต�องการร�น่เทั�าน่�+น่

Page 6: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 6

ความเป#น่มา Background

หน่วยความจำ�าเสม�อน่ (Virtual memory) – การแยกส�วน่ของหน่�วยความเช้/งตรรกะ (logical memory ) ของผู้)�ใช้�ออกจำากหน่�วยความจำาเช้/งกายภาพื่ (physical memory) ม!เพื่!ยงส�วน่ของโป็รแกรมทั!�ต�องการอย)�ใน่หน่�วยความจำาเพื่ �อกระทัาการ

(execution ) เทั�าน่�+น่ พื่ +น่ทั!� (Logical address) จำ�งสามารถึใหญ�กว�าขน่าดของพื่ +น่ทั!�หน่�วย

ความจำาเช้/งกายภาพื่ (physical address space ) ได� ย/น่ยอมให�ม!การใช้�พื่ +น่ทั!�หน่�วยความจำาร�วมก�น่ได� จำากหลัายๆ

กระบวน่การ ทัาให�ม!การสร�างกระบวน่การข�+น่มาได�โดยสะดวก

Virtual memory สามารถึใช้�งาน่ผู้�าน่ Demand paging Demand segmentation

Page 7: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 7

Virtual Memory That is Larger Than Physical Memory

Page 8: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 8

Demand Paging

น่า page ไป็ไว�ใน่หน่�วยความจำาเฉพื่าะเม �อเวลัาทั!�ต�องการเทั�าน่�+น่ ลัดการใช้� (Less I/O needed) ลัดการใช้�หน่�วยความจำา (Less memory needed) โต�ตอบได�รวดเร5วกว�า (Faster response) รองร�บผู้)�ใช้�ได�มากกว�า (More users)

Page ทั!�ต�องการ ต�องการม!การอ�างอ/งถึ�ง invalid reference ยกเลั/ก (abort) not-in-memory น่าเข�าหน่�วยความจำา (bring to memory)

Page 9: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 9

Transfer of a Paged Memory to Contiguous Disk Space

Page 10: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 10

Valid-Invalid Bit จำะม! valid–invalid bit เช้ �อมโยงอย)�ใน่แต�ลัะรายการ page table

(1 in-memory, 0 not-in-memory) ต�องกาหน่ดค�าเร/�มต�น่ valid–invalid เป็.น่ 0 ทั'กรายการ (entries) Example of a page table snapshot.

ระหว�างการแป็ลังเลัขทั!�อย)� ถึ�า valid–invalid bit ใน่ page table entry เป็.น่ 0 page fault

111

1

0

00

Frame # valid-invalid bit

page table

Page 11: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 11

Page Table When Some Pages Are Not in Main Memory

Page 12: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 12

การผิ�ดหน่�าPage Fault

ถึ�าเคยม!การอ�างอ/งบน่ page คร�+งแรกของการอ�างอ/งจำะ trap to OS page fault

OS จำะมองหาตารางอ �น่เพื่ �อต�ดส/น่ใจำว�า Invalid reference abort. ย�งไม�ม!อย)�ใน่หน่�วยความจำา

จำะหา empty frame Swap page ไป็ย�ง frame น่�+น่ Reset tables, validation bit = 1. เร/�มคาส��ง: Least Recently Used

block move

เพื่/�มหร อลัดตาแหน่�งอย�างอ�ตโน่ม�ต/

Page 13: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 13

Steps in Handling a Page Fault

Page 14: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 14

จำะเป#น่อยางไรถ้�าไมม(เฟรมวาง (free frame)?

การแทัน่ทั!� Page (Page replacement) – จำะค�น่หาบาง page ใน่หน่�วยความจำาทั!�ย�งไม�ได�ม!การใช้�งาน่จำร/ง แลั�วสลั�บออกไป็ (swap out) algorithm performance – ต�องใช้� algorithm ทั!�ทัาให�ผู้ลัการค�น่หาจำาน่วน่

การผู้/ดหน่�าเหลั อน่�อยทั!�ส'ด

บางหน่�า (page) อาจำม!การน่าเข�าออกหน่�วยความจำาหลัายคร�+ง

Page 15: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 15

Performance of Demand Paging

Page Fault Rate 0 p 1.0 if p = 0 no page faults if p = 1, every reference is a fault

Effective Access Time (EAT)EAT = (1 – p) x memory access

+ p (page fault overhead+ [swap page out ]+ swap page in+ restart overhead)

Page 16: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 16

Demand Paging Example

Memory access time = 1 microsecond

50% ของเวลัาทั!�ม!การแก�ไข page ทั!�ถึ)กแทัน่ทั!� แลัะต�องถึ)กสลั�บออกไป็

Swap Page Time = 10 msec = 10,000 msecEAT = (1 – p) x 1 + p (15000)

1 + 15000P (in msec)

Page 17: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 17

การสร�างกระบวน่การProcess Creation

Virtual memory ย/น่ยอมให�ใช้�ป็ระโยช้น่3อย�างอ �น่ได�ใน่ขณีะทั!�สร�างกระบวน่การ

- Copy-on-Write

- Memory-Mapped Files

Page 18: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 18

Copy-on-Write

Copy-on-Write (COW) ย/น่ยอมให�ทั�+ง parent and child processes ใน่การกาหน่ดค�า share ใน่ page เด!ยวก�น่ใน่หน่�วยความจำา

ถึ�าแม�ม!การแก�ไข page ทั!�ใช้�ร �วมก�น่ ก5จำะม!เพื่!ยง page น่�+น่ทั!�ถึ)กสาเน่าไป็

COW จำะม!การสร�างกระบวน่การทั!�สะดวกกว�า เช้�น่เด!ยวก�บการสา page ทั!�ม!การแก�ไข

Free pages จำะถึ)กจำ�ดสรรจำาก pool ของ zeroed-out pages.

Page 19: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 19

Memory-Mapped Files

Memory-mapped file I/O ย/น่ยอมให� file I/O ถึ)กใช้�งาน่เหม อน่ร)ทั!น่การเข�าถึ�งหน่�วยความจำาได�โดยการ mapping a disk block ไป็เป็.น่ page ใน่หน่�วยความจำา

ไฟลั3จำะถึ)กกาหน่ดค�าเร/�มต�น่ของการอ�าน่โดยใช้� demand paging ส�ดส�วน่ของ page-sized ของไฟลั3ทั!�อ�าน่จำากระบบไฟลั3ไป็ย�ง physical page. ลัาด�บย�อยของ reads/writes ไฟลั3จำะดาเน่/น่การเช้�น่เด!ยวก�บการเข�าถึ�งหน่�วยความจำา

การเข�าถึ�งไฟลั3อย�างง�ายโดย treating file I/O ผู้�าน่หน่�วยความจำามากกว�าการใช้� read() write() system calls.

อน่'ญาตให�หลัายกระบวน่การทัาการ map ไฟลั3เด!ยวก�น่ให�ใช้� pages ร�วมก�น่ใน่หน่�วยความจำาได�อ!กด�วย

Page 20: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 20

Memory Mapped Files

Page 21: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 21

การแทน่ท(,หน่�าPage Replacement

การป็9องก�น่การจำ�ดสรรเก/น่หน่�วยความจำาได�โดยการแก�ไข page-fault service routine เพื่/�มเข�าไป็ใน่ page replacement

ใช้� modify (dirty) bit ใน่การลัด overhead ของการถึ�ายหน่�า โดยการแก�ไขเฉพื่าะหน่�าทั!�ถึ)กเข!ยน่ลังบน่ด/สก3เทั�าน่�+น่

Page replacement จำะแยกจำากก�น่อย�างอ/สระระหว�าง logical memory แลัะ physical memory – virtual memory ขน่าดใหญ�สามารถึสร�างบน่ physical memory ทั!�ม!ขน่าดเลั5กกว�าได�

Page 22: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 22

Need For Page Replacement

Page 23: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 23

Basic Page Replacement

1 .หาตาแหน่�งของ page ทั!�ต�องการบน่ด/สก3

2. หา free frame:- ถึ�าม! free frame ก5ใช้�- ถึ�าไม�ม! free frame ให�ใช้� page replacement

algorithm ใน่การเลั อก victim frame

3. อ�าน่ page ทั!�ต�องการไป็ไว�บน่ free frame ใหม� แลั�ว Update ตาราง page แลัะ frame

4. เร/�มดาเน่/น่การกระบวน่การ

Page 24: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 24

Page Replacement

Page 25: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 25

Page Replacement Algorithms

ต�องการให�ม!อ�ตราการผู้/ดหน่�าต�าทั!�ส'ด (lowest page-fault rate)

ป็ระเม/น่ algorithm โดยร�น่ reference string บน่หน่�วยความจำาแลัะคาน่วณีจำาน่วน่ page faults ของ string น่�+น่

In all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

Page 26: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 26

Graph of Page Faults Versus The Number of Frames

Page 27: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 27

First-In-First-Out (FIFO) Algorithm

Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (3 pages สามารถึอย)�ใน่หน่�วยความจำา ณี เวลัาใดเวลัาหน่��ง ต�อหน่��ง

กระบวน่การ)

4 frames

FIFO Replacement – Belady’s Anomaly frames ย/�งมาก page faults ย/�งลัดลัง

1

2

3

1

2

3

4

1

2

5

3

4

9 page faults

1

2

3

1

2

3

5

1

2

4

5 10 page faults

44 3

Page 28: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 28

FIFO Page Replacement

Page 29: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 29

FIFO Illustrating Belady’s Anamoly

Page 30: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 30

Optimal Algorithm

แทัน่ทั!� page ทั!�จำะไม�ถึ)กเร!ยกใช้�อ!กใน่เวลัาอ�น่ใกลั�น่!+ 4 frames example

1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

จำะแทัน่ทั!�โดยว/ธี!ใด จำะว�ดป็ระส/ทัธี/ภาพื่ของอ�ลักอร/ธี�มได�อย�างไร

1

2

3

4

6 page faults

4 5

Page 31: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 31

Optimal Page Replacement

Page 32: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 32

Least Recently Used (LRU) Algorithm

Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

ใช้�ต�วน่�บ (Counter implementation) น่�บรายการ (entry) ทั'ก page ทั!�เข�ามา , ทั'กคร�+งทั!� page ถึ)กอ�างอ/ง

ผู้�าน่รายการ , แลั�วสาเน่าค�าน่าฬิ/กาไป็ย�ง counter เม �อต�องการเป็ลั!�ยน่ page ก5ให�มองหา counter เพื่ �อจำะใช้�เป็ลั!�ยน่

หน่�า

1

2

3

5

4

4 3

5

Page 33: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 33

LRU Page Replacement

Page 34: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 34

LRU Algorithm (Cont.)

ใช้�แบบสแต5ก (Stack implementation) – เก5บสแต5กของหมายเลัขหน่�า (page numbers ) ใน่ร)ป็การเช้ �อมโยงแบบค)� (double link form): Page referenced:

ย�ายเพื่5จำน่�+น่ไป็ย�งด�าน่บน่ ใช้� 6 pointers ใน่การเป็ลั!�ยน่

ไม�จำาเป็.น่ต�องค�น่หาเพื่ �อแทัน่ทั!�

การใช้� stack algorithm ช้�วยแก�ป็;ญหา Belady’s Anomaly แต�ต�องใช้�อ'ป็กรณี3ช้�วยแทัน่การใช้�เข!ยน่โป็รแกรมควบค'มการเร!ยก

interrupt เอง

Page 35: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 35

Use Of A Stack to Record The Most Recent Page References

Page 36: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 36

LRU Approximation Algorithms

การเพื่/�มบ/ตอ�างอ/ง (Additional-Reference-bits algorithm) ใช้�บน่ระบบทั!�ไม�ม!อ'ป็กรณี3ช้�วย จำ�บค)�แต�ลัะหน่�าด�วย bit, ค�าเร/�มต�น่เป็.น่ = 0 (ย�งไม�ใช้�) เม �อหน่�าถึ)กอ�างอ/ง บ/ตอ�างอ/งกะจำะถึ)กเป็ลั!�ยน่เป็.น่ 1 (ใช้�แลั�ว) การแทัน่ทั!�ใน่ระบบน่!+สามารถึตรวจำสอบได�ว�าม!หน่�าใดถึ)กใช้�แลั�วหร อย�ง

การให�โอกาสคร�+งทั!�สอง (Second chance) ใช้�บ/ตอ�างอ/ง (reference bit ) ใช้�การแทัน่ทั!�แบบน่าฬิ/กา (Clock

replacement ) เพื่ �อป็9องก�น่การส�บเป็ลั!�ยน่หน่�าทั!�ถึ)กเร!ยกใช้�บ�อยออกไป็

ถึ�าหน่�าถึ)กแทัน่ทั!� (ตามลัาด�บน่าฬิ/กา ) บ/ตอ�างอ/งจำะ = 1 จำากน่�+น่: เป็ลั!�ยน่บ/ตกลั�บไป็เป็.น่ 0 เป็ลั!�ยน่เวลัาทั!�เข�ามาใน่หน่�วยความจำาให�เหม อน่เพื่/�งเข�ามา ทัาการตรวจำสอบหน่�าอ �น่ๆ ตามหลั�กการเช้�น่เด!ยวก�น่

Page 37: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 37

Second-Chance (clock) Page-Replacement Algorithm

Page 38: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 38

Counting Algorithms

การใช้�ต�วน่�บการอ�างอ/งของแต�ลัะหน่�าไว�

LFU (least frequently used) Algorithm: การเก5บจำาน่วน่คร�+งทั!�หน่�าถึ)กอ�างอ/ง แลัะเลั อกทั!�ถึ)กอ�างอ/งน่�อยทั!�ส'ดออกก�อน่

MFU (most frequently used) Algorithm: อย)�บน่สมม'ต/ฐาน่ทั!�ว�า หน่�าทั!�ถึ)กอ�างอ/งน่�อยน่�+น่ม!โอกาสทั!�จำะถึ)กมากใน่เวลัาต�อไป็เพื่ราะอาจำเป็.น่หน่�าทั!�เพื่/�งถึ)กย�ายเข�ามาใน่หน่�วยความจำา

อย�างไรก5ตาม ว/ธี!การแทัน่ทั!�หน่�าทั�+งแบบใช้�น่�อยออกก�อน่แลัะแบบใช้�มากออกก�อน่น่�+น่เป็.น่แน่วค/ดทั!�ไม�แตกต�างก�น่เทั�าใดน่�ก ป็ระส/ทัธี/ภาพื่จำ�งข�+น่อย)�ก�บการคาดการณี3ลั�วงหน่�าได�ถึ)กต�องมากน่�อยแค�ไหน่ การใช้�งาน่ม!ค�าใช้�จำ�ายส)ง แลัะส)�ว/ธี!การแบบเหมาะทั!�ส'ด (OPT) ไม�ได�

Page 39: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 39

Page-Buffering Algorithm

ระบบทั!�ม�กเก5บหน่�าว�างๆ ไว�เป็.น่กลั'�มๆ เม �อเก/ด page fault หน่�าว�างๆ หน่�าหน่��งก5จำะถึ)กเลั อกมาใช้� แต�ย�ง

ไม�ย�ายออกไป็ทั�น่ทั! ระบบจำะอ�าน่หน่�าทั!�ต�องการเข�ามาใน่เน่ +อทั!�ว�างได�เลัยโดยไม�ต�องรอให�

ม!การย�ายหน่�าเด/มออกไป็ก�อน่ ทัาให�ลัดเวลัาใน่การย�ายหน่�าลังมาก เม �อม!เวลัาว�าง ระบบค�อยทัาการ

ย�ายหน่�าทั!�เลั อกออกไป็ใน่ภายหลั�ง จำากน่�+น่ รวมพื่ +น่ทั!�ว�างเข�าไว�ใน่กลั'�ม (clustering)

Page 40: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 40

Operating System Examples

Windows NT

Solaris 2

Page 41: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 41

Windows NT

ใช้� demand paging ร�วมก�บ clustering โดยใส�ใน่ page รอบๆบร/เวณีทั!�เก/ดการผู้/ดหน่�า

กระบวน่การทั�+งหมดจำะถึ)กกาหน่ด working set minimum แลัะ working set maximum

Working set minimum ค อจำาน่วน่ต�าส'ดของหน่�าอย)�ใน่หน่�วยความจำา

กระบวน่การหน่��งอาจำถึ)กกาหน่ด working set maximum ม!อย)�หลัายๆ หน่�า

เม �อพื่ +น่ทั!�ว�างใน่หน่�วยความจำาเหลั อกว�าค�าเป็9าหมายทั!�กาหน่ดไว� (threshold ) การต�ดแต�ง working set อย�างอ�ตโน่ม�ต/ (automatic working set trimming) ก5จำะเร/�มทัางาน่ เพื่ �อค น่พื่ +น่ทั!�ว�างของหน่�วยความจำา

Working set trimming จำะย�ายหน่�าออกจำากกระบวน่การทั!�ม!การใช้�งาน่หน่�า working set minimum ของกระบวน่การเหลั�าน่�+น่

Page 42: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 42

Paging System ของ Windows NT

Page 43: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 43

Address translation ของ Windows

Page 44: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 44

Solaris 2

บาร'งร�กษารายการของหน่�าว�าง (free pages) เพื่ �อกาหน่ดให�ก�บกระบวน่การทั!�เก/ดการผู้/ดหน่�า

Lotsfree – threshold parameter จำ'ดเร/�มต�น่ของการค�น่หาหน่�า

การค�น่หาหน่�าจำะทัาโดยกระบวน่การสลั�บหน่�าออก (pageout process)

Pageout scans pages using modified clock algorithm.

Scanrate ค อ อ�ตราทั!�หน่�าจำะถึ)กสแกน่ ม!ขอบเขตต�+งแต� slowscan ถึ�ง fastscan

Pageout ถึ)กเร!ยกใช้�บ�อยหร อไม�ข�+น่ก�บจำาน่วน่หน่�วยความจำาทั!�ว�างเหลั อมากน่�อยเพื่!ยงใด

Page 45: 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 45

Solar Page Scanner