Upload
krissapat
View
324
Download
3
Embed Size (px)
Citation preview
โครงสร�างหน่วยความจำ�าโครงสร�างหน่วยความจำ�าเสม�อน่เสม�อน่
Virtual Memory Structure
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 2
Virtual Memory
Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 3
Learning Objectives
เพื่ �อศึ�กษาความสาค�ญของหน่�วยความจำาเสม อน่ เพื่ �อเข�าใจำการสลั�บหน่�าตามคาขอทั�น่ทั! (demand paging) ของ
หน่�วยความจำาเสม อน่ เพื่ �อเข�าใจำถึ�งความซั�บซั�อน่แลัะค�าใช้�จำ�ายใน่การใช้�งาน่หน่�วยความจำา
เสม อน่
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 4
ความเป#น่มา Background
ช้'ดคาส��งทั!�จำะถึ)กกระทัาการได�น่�+น่จำะต�องอย)�ใน่หน่�วยความจำากายภาพื่เสมอ
เราจำาเป็.น่ต�องใส�พื่ +น่ทั!�เลัขทั!�อย)�ของหน่�วยความจำาแบบตรรกะทั�+งหมดลังใน่หน่�วยความจำาแบบกายภาพื่ (แต�ถึ)กจำาก�ดด�วยขน่าดของพื่ +น่ทั!�หน่�วยความจำาจำร/ง)
กรณี! single program ใช้�ว/ธี!การ overlay ค อการทัาให�โป็รแกรมทั!�ม!ขน่าดใหญ�กว�าพื่ +น่ทั!�ใน่
หน่�วยความจำา ให�สามารถึดาเน่/น่ได� จำ�ดการโดยโป็รแกรมเมอร3 โดยการแบ�งโป็รแกรมออกเป็.น่โป็รแกรมย�อย (sub program)
หลัายๆ ส�วน่ แลัะให�แต�ลัะส�วน่ม!ขน่าดเลั5กกว�าหน่�วยความจำา กรณี! Multiprogram
ใช้�หน่�วยความจำาเสม อน่ (virtual memory) จำ�ดการโดย OS
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 5
ความเป#น่มา Background
โป็รแกรมจำะถึ)กแบ�งออกเป็.น่ 2 ส�วน่ main program เป็.น่ส�วน่ของโป็รแกรมทั!�อย)�ใน่หน่�วยความจำาไป็ตลัอดจำน่กระทั��งการทัางาน่ส/+น่ส'ดลัง แลัะ Sub-Program ใน่ส�วน่ทั!�เหลั อ จำะถึ)กแบ�งออกเป็.น่ส�วน่ย�อยๆ แลัะจำะถึ)กโหลัดเข�าส)�หน่�วยความจำาก5ต�อเม �อต�องการร�น่เทั�าน่�+น่
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 7
Virtual Memory That is Larger Than Physical Memory
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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)
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 9
Transfer of a Paged Memory to Contiguous Disk Space
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 11
Page Table When Some Pages Are Not in Main Memory
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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
เพื่/�มหร อลัดตาแหน่�งอย�างอ�ตโน่ม�ต/
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 13
Steps in Handling a Page Fault
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 14
จำะเป#น่อยางไรถ้�าไมม(เฟรมวาง (free frame)?
การแทัน่ทั!� Page (Page replacement) – จำะค�น่หาบาง page ใน่หน่�วยความจำาทั!�ย�งไม�ได�ม!การใช้�งาน่จำร/ง แลั�วสลั�บออกไป็ (swap out) algorithm performance – ต�องใช้� algorithm ทั!�ทัาให�ผู้ลัการค�น่หาจำาน่วน่
การผู้/ดหน่�าเหลั อน่�อยทั!�ส'ด
บางหน่�า (page) อาจำม!การน่าเข�าออกหน่�วยความจำาหลัายคร�+ง
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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)
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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)
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 17
การสร�างกระบวน่การProcess Creation
Virtual memory ย/น่ยอมให�ใช้�ป็ระโยช้น่3อย�างอ �น่ได�ใน่ขณีะทั!�สร�างกระบวน่การ
- Copy-on-Write
- Memory-Mapped Files
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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.
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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 ร�วมก�น่ใน่หน่�วยความจำาได�อ!กด�วย
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 20
Memory Mapped Files
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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กกว�าได�
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 22
Need For Page Replacement
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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. เร/�มดาเน่/น่การกระบวน่การ
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 24
Page Replacement
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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.
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 26
Graph of Page Faults Versus The Number of Frames
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 28
FIFO Page Replacement
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 29
FIFO Illustrating Belady’s Anamoly
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 31
Optimal Page Replacement
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 33
LRU Page Replacement
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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 เอง
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 35
Use Of A Stack to Record The Most Recent Page References
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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 เป็ลั!�ยน่เวลัาทั!�เข�ามาใน่หน่�วยความจำาให�เหม อน่เพื่/�งเข�ามา ทัาการตรวจำสอบหน่�าอ �น่ๆ ตามหลั�กการเช้�น่เด!ยวก�น่
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 37
Second-Chance (clock) Page-Replacement Algorithm
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 38
Counting Algorithms
การใช้�ต�วน่�บการอ�างอ/งของแต�ลัะหน่�าไว�
LFU (least frequently used) Algorithm: การเก5บจำาน่วน่คร�+งทั!�หน่�าถึ)กอ�างอ/ง แลัะเลั อกทั!�ถึ)กอ�างอ/งน่�อยทั!�ส'ดออกก�อน่
MFU (most frequently used) Algorithm: อย)�บน่สมม'ต/ฐาน่ทั!�ว�า หน่�าทั!�ถึ)กอ�างอ/งน่�อยน่�+น่ม!โอกาสทั!�จำะถึ)กมากใน่เวลัาต�อไป็เพื่ราะอาจำเป็.น่หน่�าทั!�เพื่/�งถึ)กย�ายเข�ามาใน่หน่�วยความจำา
อย�างไรก5ตาม ว/ธี!การแทัน่ทั!�หน่�าทั�+งแบบใช้�น่�อยออกก�อน่แลัะแบบใช้�มากออกก�อน่น่�+น่เป็.น่แน่วค/ดทั!�ไม�แตกต�างก�น่เทั�าใดน่�ก ป็ระส/ทัธี/ภาพื่จำ�งข�+น่อย)�ก�บการคาดการณี3ลั�วงหน่�าได�ถึ)กต�องมากน่�อยแค�ไหน่ การใช้�งาน่ม!ค�าใช้�จำ�ายส)ง แลัะส)�ว/ธี!การแบบเหมาะทั!�ส'ด (OPT) ไม�ได�
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 39
Page-Buffering Algorithm
ระบบทั!�ม�กเก5บหน่�าว�างๆ ไว�เป็.น่กลั'�มๆ เม �อเก/ด page fault หน่�าว�างๆ หน่�าหน่��งก5จำะถึ)กเลั อกมาใช้� แต�ย�ง
ไม�ย�ายออกไป็ทั�น่ทั! ระบบจำะอ�าน่หน่�าทั!�ต�องการเข�ามาใน่เน่ +อทั!�ว�างได�เลัยโดยไม�ต�องรอให�
ม!การย�ายหน่�าเด/มออกไป็ก�อน่ ทัาให�ลัดเวลัาใน่การย�ายหน่�าลังมาก เม �อม!เวลัาว�าง ระบบค�อยทัาการ
ย�ายหน่�าทั!�เลั อกออกไป็ใน่ภายหลั�ง จำากน่�+น่ รวมพื่ +น่ทั!�ว�างเข�าไว�ใน่กลั'�ม (clustering)
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 40
Operating System Examples
Windows NT
Solaris 2
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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 ของกระบวน่การเหลั�าน่�+น่
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 42
Paging System ของ Windows NT
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 43
Address translation ของ Windows
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (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 ถึ)กเร!ยกใช้�บ�อยหร อไม�ข�+น่ก�บจำาน่วน่หน่�วยความจำาทั!�ว�างเหลั อมากน่�อยเพื่!ยงใด
ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ ติ�การ (OS: Operating Systems) | หน่�วยความจำาเสม อน่ (Virtual Memory) | 45
Solar Page Scanner