การจัดการหน่วยความจำ Memory Management

45
กกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกก กกก กกก Memory Management กกกกกกกก กกกกกก กกกกกกกกกก กกกกกกก

description

การจัดการหน่วยความจำ Memory Management. นงลักษณ์ พรมทอง และวิเชษฐ์ พลายมาศ. Virtual Memory. Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples. Learning Objectives. เพื่อศึกษาความสำคัญของหน่วยความจำเสมือน - PowerPoint PPT Presentation

Transcript of การจัดการหน่วยความจำ Memory Management

Page 1: การจัดการหน่วยความจำ Memory  Management

การจั�ดการหน่วยความจั�าการจั�ดการหน่วยความจั�าMemory Management

น่งลั�กษณ์� พรมทอง แลัะว�เชษฐ์� พลัายมาศ

Page 2: การจัดการหน่วยความจำ Memory  Management

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

Virtual Memory

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

Page 3: การจัดการหน่วยความจำ Memory  Management

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

Learning Objectives

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

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

เสม อน่

Page 4: การจัดการหน่วยความจำ Memory  Management

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

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

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

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

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

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

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

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

Page 5: การจัดการหน่วยความจำ Memory  Management

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

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

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

Page 6: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Virtual Memory That is Larger Than Physical Memory

Page 8: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Transfer of a Paged Memory to Contiguous Disk Space

Page 10: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Page Table When Some Pages Are Not in Main Memory

Page 12: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Steps in Handling a Page Fault

Page 14: การจัดการหน่วยความจำ Memory  Management

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

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

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

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

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

Page 15: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

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

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

- Copy-on-Write

- Memory-Mapped Files

Page 18: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Memory Mapped Files

Page 21: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Need For Page Replacement

Page 23: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Page Replacement

Page 25: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Graph of Page Faults Versus The Number of Frames

Page 27: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

FIFO Page Replacement

Page 29: การจัดการหน่วยความจำ Memory  Management

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

FIFO Illustrating Belady’s Anamoly

Page 30: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Optimal Page Replacement

Page 32: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

LRU Page Replacement

Page 34: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Use Of A Stack to Record The Most Recent Page References

Page 36: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Second-Chance (clock) Page-Replacement Algorithm

Page 38: การจัดการหน่วยความจำ Memory  Management

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

Counting Algorithms

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

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

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

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

Page 39: การจัดการหน่วยความจำ Memory  Management

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

Page-Buffering Algorithm

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

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

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

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

Page 40: การจัดการหน่วยความจำ Memory  Management

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

Operating System Examples

Windows NT

Solaris 2

Page 41: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Paging System ของ Windows NT

Page 43: การจัดการหน่วยความจำ Memory  Management

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

Address translation ของ Windows

Page 44: การจัดการหน่วยความจำ Memory  Management

ว�เชษฐ์� พลัายมาศ | ระบบปฏิ�บ�ติ�การ (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: การจัดการหน่วยความจำ Memory  Management

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

Solar Page Scanner