กลับไปหน้าบทความ

อ่าน 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 " อาจเกิดขึ้นเนื่องจากข้อผิดพลาดในการเข้าถึงหน้าหน่วยความจำซ้ำๆ

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Demand_paging&oldid=1295337130 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเรียกเพจแบบตามความต้องการ

ใน ระบบปฏิบัติการ คอมพิวเตอร์ การ แบ่งหน้าหน่วยความจำตามความต้องการ (demand paging ) (ตรงข้ามกับ การแบ่งหน้าหน่วยความจำล่วงหน้า (anticipatory paging )) เป็นวิธี การจัดการ...

แนวคิดพื้นฐาน

การจัดการหน่วยความจำแบบตามความต้องการ (Demand paging) จะนำหน้าหน่วยความจำเข้ามาในหน่วยความจำหลักก็ต่อเมื่อกระบวนการที่กำลังทำงานอยู่ต้องการใช้งานเท่านั้น วิธีการนี้มักเรียกว่า การโหลดแบบขี้เกียจ (Lazy loading )...

ข้อดี

การแบ่งหน้าตามความต้องการ แทนการโหลดทุกหน้าพร้อมกัน:

ข้อเสีย

โปรแกรมแต่ละโปรแกรมอาจประสบกับความล่าช้าเพิ่มเติมเมื่อเข้าถึงหน้าเว็บเป็นครั้งแรก ระบบฝังตัว ราคาประหยัดและใช้พลังงานต่ำอาจไม่มี หน่วยจัดการหน่วยความจำ ที่รองรับการแทนที่หน้าหน่วย ความจำ การจัดการหน่วยความจำด้วย อัลกอริทึมการแทนที่หน้าหน่วย ความจำ...