ระบบปฏิบัติการ - หน่วยความจำเสมือน

คอมพิวเตอร์สามารถจัดการกับหน่วยความจำได้มากกว่าจำนวนที่ติดตั้งบนระบบ หน่วยความจำเสริมนี้มีชื่อเรียกจริง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)

  • อัลกอริทึมนี้อ้างอิงจากข้อโต้แย้งที่ว่าเพจที่มีจำนวนน้อยที่สุดอาจเพิ่งถูกนำเข้ามาและยังไม่ได้ใช้