Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 8
หน่วยความจำเสมือน - Coggle Diagram
บทที่ 8
หน่วยความจำเสมือน
8.1 แนวคิดหน่วยความจำเสมือน หน่วยความจำเสมือนเป็นวิธีหนึ่งที่สามารถทำให้โพรเซสทำงานได้ ถึงแม้ว่าโพรเซสนั้นจะไม่ได้อยู่
ในหน่วยความจำหลักทั้งหมด โดยระบบปฏิบัติการจะทำหน้าที่เก็บบางส่วนของโปรแกรมที่กำลังทำงานไว้
8.2 การจัดสรรหน้าตามคำร้องขอ เพจจะถูกนำมาไว้ในหน่วยความจำก็ต่อเมื่อต้องการทำให้เพจสามารถทำงานได้แม้ว่าจะเหลือ
พื้นที่หน่วยความจำไม่มาก โดยใช้แนวคิดที่ว่า โปรแกรมหรืองานจะมีการทำงานตามลำดับ
- ลดการใช้หน่วยความจำ (Less memory needed)
- โต้ตอบได้รวดเร็วกว่า (Faster response)
- ลดการใช้ (Less I/O needed)
- รองรับผู้ใช้ได้มากกว่า (More users)
8.2.1 หลักการขั้นพื้นฐาน (Basic Concepts) วิธีการนี้ต้องมีอุปกรณ์ทางฮาร์ดแวร์ คือ เพิ่มบิตสถานะ (Valid-invalid bit) อีกหนึ่งบิตต่อช่อง
ในตารางเลขหน้า ถ้าสถานะมีค่าเป็นใช้ได้ (Valid) แสดงว่าหน้านั้นอยู่ในหน่วยความจำหลักแสดงว่าหน้านั้นอยู่ในจานบันทึก
8.2.2 ประสิทธิภาพของระบบจัดสรรหน้าตามคำร้องขอ (Performance of Demand Paging) ในการจัดสรรหน้าตามคำร้องขอ (Demand paging) มีผลกระทบต่อประสิทธิภาพของระบบเป็นอย่างมาก ในระบบคอมพิวเตอร์ส่วนใหญ่เวลาที่ใช้เวลาเฉลี่ยในการอ้างอิงหน่วยความจำ(Memory)เมื่อเกิดการผิดหน้ามีขั้นตอนในการดำเนินการดังต่อไปนี้
-
-
-
-
-
-
-
-
-
-
-
-
แก้ไขค่าในตารางเลขหน้าและตารางอื่น ๆ ที่เกี่ยวข้อง เพื่อแสดงว่าหน้าที่ที่ต้องการอยู่ใน
หน่วยความจำหลักแล้ว
-
เมื่อถึงคราวบรรจุค่าต่าง ๆ ที่เก็บไว้ลงในรีจิสเตอร์และตารางเลขหน้าของโพรเซสแล้ว เริ่มทำคำสั่งเดิมที่หยุดไว้
8.3 เทคนิคการบันทึกข้อมูลด้วยการคัดลอกข้อมูล ในการเริ่มต้นแบบทางอ้อม
ระบบต้องการวิธีการ Demand Paging โดยใช้วิธีที่เหมือนกับ Page Sharing เทคนิคนี้จัดการสำหรับการสร้างโพรเซสแบบรวดเร็วและเล็ก จำนวนเพจใหม่ซึ่งจำเป็นต้องจัดสรรให้กับโพรเซสที่เพิ่งถูกสร้างขึ้นใหม่การเรียกฟังก์ชั่น fork() กลับมาสร้างโพรเซสลูก (A child process) เหมือนกับของ โพรเซสแม่
8.4 การเชื่อมโยงแฟ้มข้อมูลกับหน่วยความจำการเชื่อมโยงแฟ้มข้อมูลกับหน่วยความจำ ยินยอมให้แฟ้มข้อมูลทั้งอินพุตและเอาท์พุตถูกใช้งานเหมือนรูทีนการเข้าถึงหน่วยความจำได้โดยการเชื่อมโยงดิกส์บล็อก (Mapping a disk block)ไปเป็นเพจในหน่วยความจำแฟ้มข้อมูลจะถูกกำหนดค่าเริ่มต้นของการอ่านโดยใช้ Demand paging
-
8.6 สรุป ตำแหน่งหน่วยความจำที่อ้างอิงถึงจะเป็นตำแหน่ง
หน่วยความจำทางตรรกะ ซึ่งสามารถเปลี่ยนแปลงเป็นตำแหน่งหน่วยความจำจริง เมื่อโพรเซสกำลังทำงานได้ (At run-time) การจัดการดังกล่าวทำให้ซีพียูสามารถใช้ข้อมูลที่อยู่ในหน่วยความจำหลักที่สามารถทำการสลับโพรเซสเหล่านั้นให้เข้ามาทำงานได้