อ่าน 1 นาที
การเรียกเพจแบบตามความต้องการ
ใน ระบบปฏิบัติการ คอมพิวเตอร์ การ แบ่งหน้าหน่วยความจำตามความต้องการ (demand paging ) (ตรงข้ามกับ การแบ่งหน้าหน่วยความจำล่วงหน้า (anticipatory paging )) เป็นวิธี การจัดการ...
การเรียกเพจแบบตามความต้องการ
ในระบบปฏิบัติการคอมพิวเตอร์ การแบ่งหน้าหน่วยความจำตามความต้องการ (demand paging ) (ตรงข้ามกับการแบ่งหน้าหน่วยความจำล่วงหน้า (anticipatory paging )) เป็นวิธี การจัดการ หน่วยความจำเสมือนในระบบที่ใช้การแบ่งหน้าหน่วยความจำตามความต้องการ ระบบปฏิบัติการจะคัดลอกหน้า ดิสก์ ไปยังหน่วยความจำจริงก็ต่อเมื่อมีการพยายามเข้าถึงหน้านั้น และหน้านั้นยังไม่ได้อยู่ในหน่วยความจำ (เช่น หาก เกิด ข้อผิดพลาดในการเข้าถึงหน้าหน่วยความจำ) ดังนั้นกระบวนการจะเริ่มต้นการทำงานโดยไม่มีหน้าหน่วยความจำใด ๆ อยู่ในหน่วยความจำจริง และจะทำให้เกิดข้อผิดพลาดในการเข้าถึงหน้าหน่วยความจำหลายครั้งจนกว่า หน้า หน่วย ความจำส่วนใหญ่ที่ จำเป็นจะอยู่ในหน่วยความจำจริง นี่เป็นตัวอย่างของเทคนิค การโหลดแบบขี้เกียจ (lazy loading )
แนวคิดพื้นฐาน
การจัดการหน่วยความจำแบบตามความต้องการ (Demand paging) จะนำหน้าหน่วยความจำเข้ามาในหน่วยความจำหลักก็ต่อเมื่อกระบวนการที่กำลังทำงานอยู่ต้องการใช้งานเท่านั้น วิธีการนี้มักเรียกว่าการโหลดแบบขี้เกียจ (Lazy loading ) เนื่องจากเฉพาะหน้าหน่วยความจำที่กระบวนการต้องการใช้งานเท่านั้นที่จะถูกสลับจากหน่วยเก็บข้อมูลสำรองไปยังหน่วยความจำหลักซึ่งแตกต่างจากการสลับหน่วยความจำแบบสมบูรณ์ (Pure swapping) ที่หน่วยความจำทั้งหมดสำหรับกระบวนการจะถูกสลับจากหน่วยเก็บข้อมูลสำรองไปยังหน่วยความจำหลักเมื่อกระบวนการเริ่มต้นหรือกลับมาทำงานต่อ
โดยทั่วไป การดำเนินการนี้ จะใช้ หน่วยจัดการหน่วยความจำ (Memory Management Unit หรือ MCM ) หน่วยจัดการหน่วยความจำจะแปลงหน่วยความจำเชิงตรรกะไปเป็นหน่วยความจำเชิงกายภาพข้อมูลในหน่วยจัดการหน่วยความจำจะมีบิตที่ระบุว่าเพจนั้นถูกต้องหรือไม่ถูกต้อง เพจที่ถูกต้องคือเพจที่อยู่ในหน่วยความจำหลัก ส่วนเพจที่ไม่ถูกต้องคือเพจที่อยู่ในหน่วยความจำรอง เมื่อกระบวนการพยายามเข้าถึงเพจ โดยทั่วไปจะดำเนินการตามขั้นตอนต่อไปนี้:
- พยายามเข้าถึงหน้าดังกล่าว
- หากเพจนั้นถูกต้อง (อยู่ในหน่วยความจำ) ให้ดำเนินการประมวลผลคำสั่งต่อไปตามปกติ
- หากหน้าเว็บไม่ถูกต้อง จะเกิดข้อผิดพลาดใน การเข้าถึง หน้าเว็บ (page-fault trap)ขึ้น
- ตรวจสอบว่าการอ้างอิงหน่วยความจำนั้นเป็นการอ้างอิงที่ถูกต้องไปยังตำแหน่งในหน่วยความจำรองหรือไม่ ถ้าไม่ใช่ กระบวนการจะถูกยุติ ( การเข้าถึงหน่วยความจำที่ไม่ถูกต้อง ) มิฉะนั้น เราจะต้องดึงหน้า หน่วยความ จำที่ต้องการเข้ามา
- กำหนดเวลาการทำงานของดิสก์เพื่ออ่านหน้าข้อมูลที่ต้องการลงในหน่วยความจำหลัก
- เริ่มคำสั่งที่ถูกขัดจังหวะโดยข้อผิดพลาดของระบบปฏิบัติการอีกครั้ง
ข้อดี
การแบ่งหน้าตามความต้องการ แทนการโหลดทุกหน้าพร้อมกัน:
- โหลดเฉพาะหน้าเว็บที่จำเป็นสำหรับกระบวนการที่กำลังทำงานอยู่เท่านั้น
- เนื่องจากมีพื้นที่ในหน่วยความจำหลักมากขึ้น จึงสามารถโหลดกระบวนการต่างๆ ได้มากขึ้น ทำให้ลด เวลา ในการสลับบริบทซึ่งเป็นกระบวนการที่ใช้ทรัพยากรจำนวนมาก
- เวลาในการโหลดโปรแกรมเริ่มต้นจะลดลง เนื่องจากมีการเข้าถึงข้อมูลจากหน่วยเก็บข้อมูลสำรองน้อยลง และมีการนำข้อมูลเข้าสู่หน่วยความจำหลักน้อยลง
- เนื่องจากหน่วยความจำหลักมีราคาแพงกว่าหน่วยความจำรอง เทคนิคนี้จึงช่วยลดต้นทุนรายการวัสดุ (BOM) ในสมาร์ทโฟนได้อย่างมาก ตัวอย่างเช่น ระบบปฏิบัติการ Symbian มีคุณสมบัตินี้
ข้อเสีย
- โปรแกรมแต่ละโปรแกรมอาจประสบกับความล่าช้าเพิ่มเติมเมื่อเข้าถึงหน้าเว็บเป็นครั้งแรก
- ระบบฝังตัวราคาประหยัดและใช้พลังงานต่ำอาจไม่มีหน่วยจัดการหน่วยความจำที่รองรับการแทนที่หน้าหน่วย ความจำ
- การจัดการหน่วยความจำด้วยอัลกอริทึมการแทนที่หน้าหน่วย ความจำ นั้นซับซ้อนขึ้นเล็กน้อย
- ความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น รวมถึงช่องโหว่ต่อการโจมตีแบบจับเวลาดูPercival, Colin (2005-05-13). Cache missing for fun and profit (PDF) . BSDCan 2005.(โดยเฉพาะการโจมตีหน่วยความจำเสมือนในส่วนที่ 2)
- อาการ "Thrashing " อาจเกิดขึ้นเนื่องจากข้อผิดพลาดในการเข้าถึงหน้าหน่วยความจำซ้ำๆ
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเรียกเพจแบบตามความต้องการ
ใน ระบบปฏิบัติการ คอมพิวเตอร์ การ แบ่งหน้าหน่วยความจำตามความต้องการ (demand paging ) (ตรงข้ามกับ การแบ่งหน้าหน่วยความจำล่วงหน้า (anticipatory paging )) เป็นวิธี การจัดการ...
แนวคิดพื้นฐาน
การจัดการหน่วยความจำแบบตามความต้องการ (Demand paging) จะนำหน้าหน่วยความจำเข้ามาในหน่วยความจำหลักก็ต่อเมื่อกระบวนการที่กำลังทำงานอยู่ต้องการใช้งานเท่านั้น วิธีการนี้มักเรียกว่า การโหลดแบบขี้เกียจ (Lazy loading )...
ข้อดี
การแบ่งหน้าตามความต้องการ แทนการโหลดทุกหน้าพร้อมกัน:
ข้อเสีย
โปรแกรมแต่ละโปรแกรมอาจประสบกับความล่าช้าเพิ่มเติมเมื่อเข้าถึงหน้าเว็บเป็นครั้งแรก ระบบฝังตัว ราคาประหยัดและใช้พลังงานต่ำอาจไม่มี หน่วยจัดการหน่วยความจำ ที่รองรับการแทนที่หน้าหน่วย ความจำ การจัดการหน่วยความจำด้วย อัลกอริทึมการแทนที่หน้าหน่วย ความจำ...