ระบบปฏิบัติการ - หน่วยความจำเสมือน
คอมพิวเตอร์สามารถจัดการกับหน่วยความจำได้มากกว่าจำนวนที่ติดตั้งบนระบบ หน่วยความจำเสริมนี้มีชื่อเรียกจริงvirtual memory และเป็นส่วนของฮาร์ดดิสก์ที่ตั้งค่าเพื่อเลียนแบบ RAM ของคอมพิวเตอร์
ข้อได้เปรียบหลักที่มองเห็นได้ของโครงร่างนี้คือโปรแกรมสามารถมีขนาดใหญ่กว่าหน่วยความจำกายภาพ หน่วยความจำเสมือนทำหน้าที่สองประการ ขั้นแรกช่วยให้เราสามารถขยายการใช้หน่วยความจำกายภาพโดยใช้ดิสก์ ประการที่สองช่วยให้เรามีการป้องกันหน่วยความจำเนื่องจากที่อยู่เสมือนแต่ละรายการได้รับการแปลเป็นที่อยู่จริง
ต่อไปนี้เป็นสถานการณ์เมื่อไม่จำเป็นต้องโหลดโปรแกรมทั้งหมดในหน่วยความจำหลักจนเต็ม
รูทีนการจัดการข้อผิดพลาดที่ผู้ใช้เขียนขึ้นจะใช้เฉพาะเมื่อเกิดข้อผิดพลาดในข้อมูลหรือการคำนวณ
ตัวเลือกและคุณสมบัติบางอย่างของโปรแกรมอาจใช้ไม่บ่อยนัก
ตารางจำนวนมากได้รับการกำหนดพื้นที่แอดเดรสจำนวนคงที่แม้ว่าจะใช้ตารางเพียงเล็กน้อยก็ตาม
ความสามารถในการรันโปรแกรมที่อยู่ในหน่วยความจำเพียงบางส่วนจะสวนทางกับประโยชน์มากมาย
ต้องใช้จำนวน I / O น้อยลงในการโหลดหรือสลับโปรแกรมผู้ใช้แต่ละโปรแกรมลงในหน่วยความจำ
โปรแกรมจะไม่ถูก จำกัด ด้วยจำนวนหน่วยความจำกายภาพที่มีอยู่อีกต่อไป
โปรแกรมผู้ใช้แต่ละโปรแกรมสามารถใช้หน่วยความจำฟิสิคัลน้อยลงโปรแกรมอื่น ๆ สามารถทำงานได้ในเวลาเดียวกันโดยมีการใช้งาน CPU และปริมาณงานเพิ่มขึ้น
ไมโครโปรเซสเซอร์สมัยใหม่ที่ออกแบบมาเพื่อการใช้งานทั่วไปหน่วยจัดการหน่วยความจำหรือ MMU ถูกติดตั้งไว้ในฮาร์ดแวร์ หน้าที่ของ MMU คือการแปลที่อยู่เสมือนเป็นที่อยู่จริง ตัวอย่างพื้นฐานได้รับด้านล่าง -
โดยทั่วไปหน่วยความจำเสมือนจะนำไปใช้โดยการเพจตามความต้องการ นอกจากนี้ยังสามารถนำไปใช้ในระบบแบ่งส่วน การแบ่งส่วนความต้องการยังสามารถใช้เพื่อจัดเตรียมหน่วยความจำเสมือนได้
ต้องการเพจจิ้ง
ระบบเพจตามความต้องการค่อนข้างคล้ายกับระบบเพจที่มีการสลับที่ซึ่งกระบวนการอยู่ในหน่วยความจำรองและเพจจะโหลดตามความต้องการเท่านั้นไม่ใช่ล่วงหน้า เมื่อเกิดการสลับบริบทระบบปฏิบัติการจะไม่คัดลอกหน้าโปรแกรมเก่าใด ๆ ออกไปยังดิสก์หรือหน้าของโปรแกรมใหม่ลงในหน่วยความจำหลัก แต่จะเริ่มดำเนินการโปรแกรมใหม่หลังจากโหลดหน้าแรกและดึงข้อมูลนั้น หน้าของโปรแกรมตามที่มีการอ้างอิง
ในขณะที่รันโปรแกรมหากโปรแกรมอ้างอิงเพจที่ไม่มีในหน่วยความจำหลักเนื่องจากถูกสลับไปเมื่อไม่นานมานี้โปรเซสเซอร์จะถือว่าการอ้างอิงหน่วยความจำที่ไม่ถูกต้องนี้เป็น page fault และโอนการควบคุมจากโปรแกรมไปยังระบบปฏิบัติการเพื่อเรียกร้องเพจกลับเข้าไปในหน่วยความจำ
ข้อดี
ต่อไปนี้เป็นข้อดีของ Demand Paging -
- หน่วยความจำเสมือนขนาดใหญ่
- การใช้หน่วยความจำอย่างมีประสิทธิภาพมากขึ้น
- ไม่มีการ จำกัด ระดับของการตั้งโปรแกรมหลายโปรแกรม
ข้อเสีย
จำนวนตารางและจำนวนค่าโสหุ้ยของตัวประมวลผลสำหรับการจัดการการขัดจังหวะเพจมีมากกว่าในกรณีของเทคนิคการจัดการเพจแบบง่าย
อัลกอริทึมการเปลี่ยนหน้า
อัลกอริทึมการแทนที่เพจเป็นเทคนิคที่ระบบปฏิบัติการใช้ตัดสินใจว่าจะสลับเพจหน่วยความจำใดเขียนลงดิสก์เมื่อต้องจัดสรรเพจของหน่วยความจำ เพจจะเกิดขึ้นเมื่อใดก็ตามที่เพจฟอลต์เกิดขึ้นและเพจว่างไม่สามารถใช้สำหรับการบัญชีวัตถุประสงค์การจัดสรรเนื่องจากเพจไม่พร้อมใช้งานหรือจำนวนเพจว่างต่ำกว่าเพจที่ต้องการ
เมื่อเพจที่ถูกเลือกสำหรับการแทนที่และถูกเพจเอาต์ถูกอ้างอิงอีกครั้งเพจจะต้องอ่านจากดิสก์และสิ่งนี้จำเป็นสำหรับการทำให้ I / O เสร็จสมบูรณ์ กระบวนการนี้กำหนดคุณภาพของอัลกอริทึมการแทนที่เพจ: ยิ่งเวลารอเพจอินน้อยลงอัลกอริทึมก็ยิ่งดี
อัลกอริทึมการแทนที่เพจจะดูข้อมูลที่ จำกัด เกี่ยวกับการเข้าถึงเพจที่จัดเตรียมโดยฮาร์ดแวร์และพยายามเลือกเพจที่ควรถูกแทนที่เพื่อลดจำนวนเพจทั้งหมดที่พลาดไปในขณะที่สมดุลกับต้นทุนของพื้นที่จัดเก็บหลักและเวลาในการประมวลผลของอัลกอริทึม ตัวเอง มีอัลกอริทึมการเปลี่ยนเพจที่แตกต่างกันมากมาย เราประเมินอัลกอริทึมโดยรันบนสตริงการอ้างอิงหน่วยความจำและคำนวณจำนวนข้อบกพร่องของเพจ
สตริงอ้างอิง
สตริงการอ้างอิงหน่วยความจำเรียกว่าสตริงการอ้างอิง สตริงอ้างอิงถูกสร้างขึ้นโดยเทียมหรือโดยการติดตามระบบที่กำหนดและบันทึกที่อยู่ของการอ้างอิงหน่วยความจำแต่ละรายการ ตัวเลือกหลังสร้างข้อมูลจำนวนมากโดยที่เราสังเกตสองสิ่ง
สำหรับขนาดหน้าเว็บที่กำหนดเราต้องพิจารณาเฉพาะหมายเลขหน้าไม่ใช่ที่อยู่ทั้งหมด
หากเรามีการอ้างอิงถึงเพจ pจากนั้นอ้างอิงไปยังหน้าทันที pจะไม่ทำให้เพจผิดพลาด หน้า p จะอยู่ในหน่วยความจำหลังจากการอ้างอิงครั้งแรก การอ้างอิงต่อไปนี้ทันทีจะไม่ผิดพลาด
ตัวอย่างเช่นพิจารณาลำดับที่อยู่ต่อไปนี้ - 123,215,600,1234,76,96
หากขนาดหน้าคือ 100 สตริงอ้างอิงคือ 1,2,6,12,0,0
อัลกอริทึม First In First Out (FIFO)
หน้าที่เก่าที่สุดในหน่วยความจำหลักคือหน้าที่จะถูกเลือกเพื่อแทนที่
ใช้งานง่ายเก็บรายการแทนที่หน้าจากส่วนท้ายและเพิ่มหน้าใหม่ที่ส่วนหัว
อัลกอริทึมของเพจที่เหมาะสมที่สุด
อัลกอริทึมการแทนที่เพจที่ดีที่สุดมีอัตราความผิดเพจต่ำที่สุดในบรรดาอัลกอริทึมทั้งหมด มีอัลกอริทึมการแทนที่เพจที่เหมาะสมที่สุดและเรียกว่า OPT หรือ MIN
แทนที่เพจที่จะไม่ถูกใช้เป็นระยะเวลานานที่สุด ใช้เวลาที่จะใช้เพจ
อัลกอริทึม (LRU) ที่เพิ่งใช้น้อยที่สุด
หน้าที่ไม่ได้ใช้งานเป็นเวลานานที่สุดในหน่วยความจำหลักคือหน้าที่จะถูกเลือกเพื่อทดแทน
ใช้งานง่ายเก็บรายการแทนที่เพจโดยย้อนกลับไปดูเวลา
อัลกอริทึมการบัฟเฟอร์เพจ
- เพื่อให้กระบวนการเริ่มต้นอย่างรวดเร็วให้เก็บเฟรมที่ว่างไว้
- ในความผิดของเพจให้เลือกเพจที่จะถูกแทนที่
- เขียนหน้าใหม่ในกรอบของพูลว่างทำเครื่องหมายตารางหน้าและเริ่มกระบวนการใหม่
- ตอนนี้เขียนเพจสกปรกออกจากดิสก์และวางเฟรมที่ถูกแทนที่เพจในพูลว่าง
อัลกอริทึมที่ใช้บ่อย (LFU) น้อยที่สุด
หน้าที่มีจำนวนน้อยที่สุดคือหน้าที่จะถูกเลือกเพื่อแทนที่
อัลกอริทึมนี้ทนทุกข์ทรมานจากสถานการณ์ที่เพจถูกใช้อย่างหนักในช่วงเริ่มต้นของกระบวนการ แต่จากนั้นจะไม่ถูกใช้อีกเลย
อัลกอริทึมที่ใช้บ่อยที่สุด (MFU)
อัลกอริทึมนี้อ้างอิงจากข้อโต้แย้งที่ว่าเพจที่มีจำนวนน้อยที่สุดอาจเพิ่งถูกนำเข้ามาและยังไม่ได้ใช้