7-os virtual memory

45
วิเชษฐ์ พลายมาศ | ระบบปฏิบัติการ (OS: Operating Systems) | การจัดการหน่วยความจา (Memory Management) | 1 การจัดการหน่วยความจา Memory Management นงลักษณ์ พรมทอง และวิเชษฐ์ พลายมาศ

Upload: prang558

Post on 08-Feb-2016

81 views

Category:

Documents


0 download

DESCRIPTION

os

TRANSCRIPT

Page 1: 7-OS Virtual Memory

วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 1

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

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

Page 2: 7-OS Virtual Memory

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

Virtual Memory

• Background

• Demand Paging

• Process Creation

• Page Replacement

• Allocation of Frames

• Thrashing

• Operating System Examples

Page 3: 7-OS Virtual Memory

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

Learning Objectives

• เพื่อศกึษาความส าคญัของหน่วยความจ าเสมือน

• เพื่อเข้าใจการสลบัหน้าตามค าขอทนัที (demand paging) ของหน่วยความจ าเสมือน

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

Page 4: 7-OS Virtual Memory

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

ความเป็นมา Background

• ชดุค าสัง่ท่ีจะถกูกระท าการได้นัน้จะต้องอยูใ่นหน่วยความจ ากายภาพเสมอ

• เราจ าเป็นต้องใสพ่ืน้ท่ีเลขท่ีอยูข่องหน่วยความจ าแบบตรรกะทัง้หมดลงในหน่วยความจ าแบบกายภาพ (แตถ่กูจ ากดัด้วยขนาดของพืน้ท่ีหน่วยความจ าจริง)

• กรณี single program – ใช้วิธีการ overlay คือการท าให้โปรแกรมท่ีมีขนาดใหญ่กวา่พืน้ท่ีในหน่วยความจ า ให้สามารถด าเนินได้ จดัการโดย

โปรแกรมเมอร์

– โดยการแบง่โปรแกรมออกเป็นโปรแกรมย่อย (sub program) หลายๆ สว่น และให้แตล่ะสว่นมีขนาดเลก็กวา่หนว่ยความจ า

• กรณี Multiprogram – ใช้หน่วยความจ าเสมือน (virtual memory) จดัการโดย OS

Page 5: 7-OS Virtual Memory

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

ความเป็นมา Background

โปรแกรมจะถกูแบง่ออกเป็น 2 สว่น main program เป็นสว่นของโปรแกรมที่อยูใ่นหน่วยความจ าไปตลอดจนกระท่ังการท างานสิน้สดุลง และ Sub-Program ในสว่นทีเ่หลอื จะถกูแบง่ออกเป็นสว่นยอ่ยๆ และจะถกูโหลดเขา้สู่

หน่วยความจ าก็ตอ่เมือ่ตอ้งการรันเทา่นัน้

Page 6: 7-OS Virtual Memory

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

ความเป็นมา Background

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

– พืน้ท่ี (Logical address) จงึสามารถใหญ่กว่าขนาดของพืน้ท่ีหน่วยความจ าเชิงกายภาพ (physical address space) ได้

– ยินยอมให้มีการใช้พืน้ท่ีหน่วยความจ าร่วมกนัได้ จากหลายๆ กระบวนการ

– ท าให้มีการสร้างกระบวนการขึน้มาได้โดยสะดวก

• Virtual memory สามารถใช้งานผ่าน – Demand paging

– Demand segmentation

Page 7: 7-OS Virtual Memory

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

Virtual Memory That is Larger Than Physical Memory

Page 8: 7-OS Virtual Memory

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

Demand Paging

• น า page ไปไว้ในหน่วยความจ าเฉพาะเมื่อเวลาที่ต้องการเท่านัน้ – ลดการใช้ (Less I/O needed)

– ลดการใช้หน่วยความจ า (Less memory needed)

– โต้ตอบได้รวดเร็วกว่า (Faster response)

– รองรับผู้ใช้ได้มากกว่า (More users)

• Page ท่ีต้องการ ต้องการมีการอ้างอิงถึง – invalid reference ยกเลิก (abort)

– not-in-memory น าเข้าหน่วยความจ า (bring to memory)

Page 9: 7-OS Virtual Memory

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

Transfer of a Paged Memory to Contiguous Disk Space

Page 10: 7-OS Virtual Memory

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

1

1

1

1

0

0

0

Frame # valid-invalid bit

page table

Page 11: 7-OS Virtual Memory

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

Page Table When Some Pages Are Not in Main Memory

Page 12: 7-OS Virtual Memory

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

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

Steps in Handling a Page Fault

Page 14: 7-OS Virtual Memory

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

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

• การแทนท่ี Page (Page replacement) – จะค้นหาบาง page ในหน่วยความจ าท่ียงัไมไ่ด้มีการใช้งานจริง แล้วสลบัออกไป (swap out) – algorithm

– performance – ต้องใช้ algorithm ท่ีท าให้ผลการค้นหาจ านวนการผิดหน้าเหลือน้อยท่ีสดุ

• บางหน้า (page) อาจมีการน าเข้าออกหน่วยความจ าหลายครัง้

Page 15: 7-OS Virtual Memory

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

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

Demand Paging Example

• Memory access time = 1 microsecond

• 50% ของเวลาท่ีมีการแก้ไข page ท่ีถกูแทนท่ี และต้องถกูสลบัออกไป

• Swap Page Time = 10 msec = 10,000 msec

EAT = (1 – p) x 1 + p (15000)

1 + 15000P (in msec)

Page 17: 7-OS Virtual Memory

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

การสร้างกระบวนการ Process Creation

• Virtual memory ยินยอมให้ใช้ประโยชน์อยา่งอ่ืนได้ในขณะท่ีสร้างกระบวนการ

- Copy-on-Write

- Memory-Mapped Files

Page 18: 7-OS Virtual Memory

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

Copy-on-Write

• Copy-on-Write (COW) ยินยอมให้ทัง้ parent and child processes ในการก าหนดคา่ share ใน page เดียวกนัในหน่วยความจ า

• ถ้าแม้มีการแก้ไข page ท่ีใช้ร่วมกนั ก็จะมีเพียง page นัน้ท่ีถกูส าเนาไป

• COW จะมีการสร้างกระบวนการท่ีสะดวกกวา่ เช่นเดียวกบัการส า page

ท่ีมีการแก้ไข

• Free pages จะถกูจดัสรรจาก pool ของ zeroed-out pages.

Page 19: 7-OS Virtual Memory

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

Memory-Mapped Files

• Memory-mapped file I/O ยินยอมให้ file I/O ถกูใช้งานเหมือนรูทีนการเข้าถึงหน่วยความจ าได้โดยการ mapping a disk block ไปเป็น page ในหน่วยความจ า

• ไฟล์จะถกูก าหนดค่าเร่ิมต้นของการอ่านโดยใช้ demand paging สดัส่วนของ page-sized ของไฟล์ท่ีอ่านจากระบบไฟล์ไปยงั physical page. ล าดบัย่อยของ reads/writes ไฟล์จะด าเนินการเช่นเดียวกบัการเข้าถึงหน่วยความจ า

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

calls.

• อนญุาตให้หลายกระบวนการท าการ map ไฟล์เดียวกนัให้ใช้ pages ร่วมกนัในหน่วยความจ าได้อีกด้วย

Page 20: 7-OS Virtual Memory

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

Memory Mapped Files

Page 21: 7-OS Virtual Memory

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

การแทนท่ีหนา้ Page Replacement

• การป้องกนัการจดัสรรเกินหน่วยความจ าได้โดยการแก้ไข page-fault service routine เพิ่มเข้าไปใน page replacement

• ใช้ modify (dirty) bit ในการลด overhead ของการถ่ายหน้า โดยการแก้ไขเฉพาะหน้าท่ีถกูเขียนลงบนดิสก์เท่านัน้

• Page replacement จะแยกจากกนัอยา่งอิสระระหวา่ง logical memory และ physical memory – virtual memory ขนาดใหญ่สามารถสร้างบน physical memory ท่ีมีขนาดเล็กกวา่ได้

Page 22: 7-OS Virtual Memory

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

Need For Page Replacement

Page 23: 7-OS Virtual Memory

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

Basic Page Replacement

1. หาต าแหน่งของ page ท่ีต้องการบนดิสก์

2. หา free frame: - ถ้ามี free frame ก็ใช้ - ถ้าไม่มี free frame ให้ใช้ page replacement algorithm ในการเลือก victim frame

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

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

Page 24: 7-OS Virtual Memory

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

Page Replacement

Page 25: 7-OS Virtual Memory

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

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

Graph of Page Faults Versus The Number of Frames

Page 27: 7-OS Virtual Memory

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

4 4 3

Page 28: 7-OS Virtual Memory

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

FIFO Page Replacement

Page 29: 7-OS Virtual Memory

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

FIFO Illustrating Belady’s Anamoly

Page 30: 7-OS Virtual Memory

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

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

Optimal Page Replacement

Page 32: 7-OS Virtual Memory

วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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 ก็ให้มองหา counter เพ่ือจะใช้เปลี่ยนหน้า

1

2

3

5

4

4 3

5

Page 33: 7-OS Virtual Memory

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

LRU Page Replacement

Page 34: 7-OS Virtual Memory

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

LRU Algorithm (Cont.)

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

• ย้ายเพ็จนัน้ไปยงัด้านบน

• ใช้ 6 pointers ในการเปลี่ยน

– ไม่จ าเป็นต้องค้นหาเพ่ือแทนท่ี

• การใช้ stack algorithm ช่วยแก้ปัญหา Belady’s Anomaly • แตต้่องใช้อปุกรณ์ช่วยแทนการใช้เขียนโปรแกรมควบคมุการเรียก

interrupt เอง

Page 35: 7-OS Virtual Memory

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

Use Of A Stack to Record The Most Recent Page References

Page 36: 7-OS Virtual Memory

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

LRU Approximation Algorithms • การเพิ่มบิตอ้างอิง (Additional-Reference-bits

algorithm) – ใช้บนระบบท่ีไม่มีอปุกรณ์ช่วย – จบัคูแ่ตล่ะหน้าด้วย bit, คา่เร่ิมต้นเป็น = 0 (ยงัไม่ใช้) – เมื่อหน้าถกูอ้างอิง บิตอ้างอิงกะจะถกูเปลี่ยนเป็น 1 (ใช้แล้ว) – การแทนท่ีในระบบนีส้ามารถตรวจสอบได้วา่มีหน้าใดถกูใช้แล้วหรือยงั

• การให้โอกาสครัง้ท่ีสอง (Second chance) – ใช้บิตอ้างอิง (reference bit) ใช้การแทนท่ีแบบนาฬิกา (Clock replacement) เพ่ือป้องกนั

การสบัเปลี่ยนหน้าท่ีถกูเรียกใช้บอ่ยออกไป – ถ้าหน้าถกูแทนท่ี (ตามล าดบันาฬิกา) บิตอ้างอิงจะ = 1 จากนัน้:

• เปลี่ยนบิตกลบัไปเป็น 0 • เปลี่ยนเวลาท่ีเข้ามาในหน่วยความจ าให้เหมือนเพ่ิงเข้ามา • ท าการตรวจสอบหน้าอื่นๆ ตามหลกัการเช่นเดียวกนั

Page 37: 7-OS Virtual Memory

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

Second-Chance (clock) Page-Replacement Algorithm

Page 38: 7-OS Virtual Memory

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

Counting Algorithms

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

• LFU (least frequently used) Algorithm: การเก็บจ านวนครัง้ท่ีหน้าถกูอ้างอิง และเลือกท่ีถกูอ้างอิงน้อยท่ีสดุออกก่อน

• MFU (most frequently used) Algorithm: อยูบ่นสมมตุิฐานท่ีวา่ หน้าท่ีถกูอ้างอิงน้อยนัน้มีโอกาสท่ีจะถกูมากในเวลาตอ่ไปเพราะอาจเป็นหน้าท่ีเพิ่งถกูย้ายเข้ามาในหน่วยความจ า

• อยา่งไรก็ตาม วิธีการแทนท่ีหน้าทัง้แบบใช้น้อยออกก่อนและแบบใช้มากออกก่อนนัน้เป็นแนวคิดท่ีไมแ่ตกตา่งกนัเท่าใดนกั ประสทิธิภาพจงึขึน้อยูก่บัการคาดการณ์ลว่งหน้าได้ถกูต้องมากน้อยแคไ่หน การใช้งานมีคา่ใช้จ่ายสงู และสู้วิธีการแบบเหมาะท่ีสดุ (OPT) ไมไ่ด้

Page 39: 7-OS Virtual Memory

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

Page-Buffering Algorithm

• ระบบท่ีมกัเก็บหน้าวา่งๆ ไว้เป็นกลุม่ๆ

• เม่ือเกิด page fault หน้าวา่งๆ หน้าหนึง่ก็จะถกูเลือกมาใช้ แตย่งัไม่ย้ายออกไปทนัที

• ระบบจะอา่นหน้าท่ีต้องการเข้ามาในเนือ้ท่ีวา่งได้เลยโดยไม่ต้องรอให้มีการย้ายหน้าเดมิออกไปก่อน

• ท าให้ลดเวลาในการย้ายหน้าลงมาก เม่ือมีเวลาวา่ง ระบบคอ่ยท าการย้ายหน้าท่ีเลือกออกไปในภายหลงั จากนัน้ รวมพืน้ท่ีวา่งเข้าไว้ในกลุม่ (clustering)

Page 40: 7-OS Virtual Memory

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

Operating System Examples

• Windows NT

• Solaris 2

Page 41: 7-OS Virtual Memory

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

Windows NT

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

• กระบวนการทัง้หมดจะถกูก าหนด working set minimum และ working set maximum

• Working set minimum คือจ านวนต ่าสดุของหน้าอยูใ่นหน่วยความจ า • กระบวนการหนึง่อาจถกูก าหนด working set maximum มีอยูห่ลายๆ หน้า • เม่ือพืน้ที่วา่งในหน่วยความจ าเหลือกวา่คา่เป้าหมายที่ก าหนดไว้ (threshold)

การตดัแตง่ working set อยา่งอตัโนมตัิ (automatic working set trimming) ก็จะเร่ิมท างาน เพ่ือคืนพืน้ที่วา่งของหน่วยความจ า

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

Page 42: 7-OS Virtual Memory

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

Paging System ของ Windows NT

Page 43: 7-OS Virtual Memory

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

Address translation ของ Windows

Page 44: 7-OS Virtual Memory

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

Solaris 2

• บ ารุงรักษารายการของหน้าวา่ง (free pages) เพ่ือก าหนดให้กบักระบวนการท่ีเกิดการผิดหน้า

• Lotsfree – threshold parameter จดุเร่ิมต้นของการค้นหาหน้า

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

• Pageout scans pages using modified clock algorithm.

• Scanrate คือ อตัราท่ีหน้าจะถกูสแกน มีขอบเขตตัง้แต ่slowscan ถงึ fastscan

• Pageout ถกูเรียกใช้บอ่ยหรือไมข่ึน้กบัจ านวนหน่วยความจ าท่ีวา่งเหลือมากน้อยเพียงใด

Page 45: 7-OS Virtual Memory

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

Solar Page Scanner