หน่วยความจำเสมือนในระบบปฏิบัติการ: คืออะไร เพจความต้องการ ข้อดี

หน่วยความจำเสมือนคืออะไร?

หน่วยความจำเสมือน เป็นกลไกการจัดเก็บข้อมูลที่ให้ผู้ใช้รู้สึกเหมือนมีหน่วยความจำหลักขนาดใหญ่มาก ทำได้โดยถือว่าส่วนหนึ่งของหน่วยความจำรองเป็นหน่วยความจำหลัก ในหน่วยความจำเสมือน ผู้ใช้สามารถจัดเก็บกระบวนการที่มีขนาดใหญ่กว่าหน่วยความจำหลักที่มีอยู่ได้

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

ทำไมต้องมีหน่วยความจำเสมือน?

ต่อไปนี้เป็นเหตุผลในการใช้หน่วยความจำเสมือน:

  • เมื่อใดก็ตามที่คอมพิวเตอร์ของคุณไม่มีพื้นที่ในหน่วยความจำกายภาพ คอมพิวเตอร์จะเขียนสิ่งที่จำเป็นต้องจำลงในฮาร์ดดิสก์ในไฟล์สว็อปเป็นหน่วยความจำเสมือน
  • หากคอมพิวเตอร์ทำงาน Windows ต้องการหน่วยความจำ/RAM เพิ่มขึ้น จากนั้นจึงติดตั้งในระบบ โดยจะใช้ส่วนเล็กๆ ของฮาร์ดไดรฟ์เพื่อจุดประสงค์นี้

หน่วยความจำเสมือนทำงานอย่างไร?

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

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

มาทำความเข้าใจกันเถอะ การจัดการหน่วยความจำเสมือน ด้วยความช่วยเหลือของตัวอย่างหนึ่ง

ตัวอย่างเช่น

สมมติว่าระบบปฏิบัติการต้องใช้หน่วยความจำ 300 MB เพื่อจัดเก็บโปรแกรมที่กำลังทำงานอยู่ทั้งหมด อย่างไรก็ตาม ปัจจุบันมีหน่วยความจำกายภาพเหลือเพียง 50 MB ที่จัดเก็บไว้ใน RAM

  • ระบบปฏิบัติการจะตั้งค่าหน่วยความจำเสมือน 250 MB และใช้โปรแกรมที่เรียกว่า Virtual Memory Manager (VMM) เพื่อจัดการ 250 MB นั้น
  • ดังนั้น ในกรณีนี้ VMM จะสร้างไฟล์บนฮาร์ดดิสก์ที่มีขนาด 250 MB เพื่อจัดเก็บหน่วยความจำเพิ่มเติมที่จำเป็น
  • ขณะนี้ระบบปฏิบัติการจะดำเนินการจัดการกับหน่วยความจำเนื่องจากพิจารณาหน่วยความจำจริง 300 MB ที่จัดเก็บไว้ใน RAM แม้ว่าจะมีพื้นที่ว่างเพียง 50 MB ก็ตาม
  • เป็นหน้าที่ของ VMM ในการจัดการหน่วยความจำ 300 MB แม้ว่าจะมีพื้นที่หน่วยความจำจริงเพียง 50 MB ก็ตาม

เพจความต้องการคืออะไร?

เพจความต้องการ

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

ดังนั้น เมื่อมีการสลับบริบท ระบบปฏิบัติการจะไม่คัดลอกหน้าของโปรแกรมเก่าจากดิสก์หรือหน้าของโปรแกรมใหม่ใด ๆ ลงในหน่วยความจำหลัก แต่จะเริ่มรันโปรแกรมใหม่หลังจากโหลดหน้าแรกและดึงข้อมูลเพจของโปรแกรมซึ่งมีการอ้างอิงแทน

ในระหว่างการทำงานของโปรแกรม หากโปรแกรมอ้างอิงเพจที่อาจไม่มีอยู่ในหน่วยความจำหลักเนื่องจากมีการสลับ โปรเซสเซอร์จะพิจารณาว่าเป็นการอ้างอิงหน่วยความจำที่ไม่ถูกต้อง นั่นเป็นเพราะความผิดพลาดของเพจและการถ่ายโอนจะส่งการควบคุมกลับจากโปรแกรมไปยังระบบปฏิบัติการ ซึ่งต้องการจัดเก็บเพจกลับเข้าไปในหน่วยความจำ

ประเภทของวิธีการเปลี่ยนหน้า

ต่อไปนี้เป็นวิธีการเปลี่ยนหน้าที่สำคัญบางประการ

  • FIFO
  • อัลกอริธึมที่เหมาะสมที่สุด
  • การเปลี่ยนหน้า LRU

การเปลี่ยนหน้า FIFO

FIFO (เข้าก่อน-ออกก่อน) เป็นวิธีการใช้งานที่เรียบง่าย ในวิธีนี้ หน่วยความจำจะเลือกเพจสำหรับการแทนที่ที่อยู่ในที่อยู่เสมือนของหน่วยความจำเป็นเวลานานที่สุด

คุณสมบัติ

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

อัลกอริธึมที่เหมาะสมที่สุด

วิธีการเปลี่ยนหน้าที่เหมาะสมที่สุดจะเลือกหน้านั้นสำหรับการแทนที่ซึ่งเวลาในการอ้างอิงถัดไปนานที่สุด

คุณสมบัติ

  • อัลกอริธึมที่ดีที่สุดส่งผลให้มีข้อบกพร่องของหน้าน้อยที่สุด อัลกอริทึมนี้เป็นเรื่องยากที่จะนำไปใช้
  • วิธีอัลกอริทึมการแทนที่หน้าที่เหมาะสมที่สุดมีอัตราการเกิดข้อผิดพลาดของหน้าต่ำที่สุดในบรรดาอัลกอริทึมทั้งหมด อัลกอริทึมนี้มีอยู่จริงและควรเรียกว่า MIN หรือ OPT
  • แทนที่หน้าที่ไม่ต้องการใช้เป็นระยะเวลานาน ใช้เวลาเฉพาะเมื่อจำเป็นต้องใช้เพจเท่านั้น

การเปลี่ยนหน้า LRU

LRU แบบเต็มคือหน้าใช้ล่าสุด วิธีการนี้ช่วยให้ OS ค้นหาการใช้งานเพจในช่วงเวลาสั้นๆ อัลกอริทึมนี้ควรถูกนำมาใช้โดยการเชื่อมโยงตัวนับกับหน้าคู่

มันทำงานอย่างไร?

  • เพจที่ไม่ได้ใช้งานนานที่สุดในหน่วยความจำหลักจะเป็นเพจที่จะเลือกมาทดแทน
  • ใช้งานง่าย เก็บรายการ แทนที่หน้าด้วยการย้อนเวลากลับไป

คุณสมบัติ

  • วิธีการเปลี่ยน LRU มีจำนวนสูงสุด ตัวนับนี้เรียกอีกอย่างว่าการลงทะเบียนอายุ ซึ่งระบุอายุและจำนวนเพจที่เกี่ยวข้องที่ควรอ้างอิงด้วย
  • หน้าที่ไม่ได้ใช้เป็นเวลานานที่สุดในหน่วยความจำหลักคือหน้าที่ควรเลือกเพื่อทดแทน
  • นอกจากนี้ยังเก็บรายการและแทนที่หน้าต่างๆ ด้วยการย้อนเวลากลับไป

อัตราความผิดพลาด

อัตราความผิดพลาดคือความถี่ที่ระบบหรือส่วนประกอบที่ออกแบบไว้เกิดความล้มเหลว แสดงเป็นความล้มเหลวต่อหน่วยเวลา มีอักษรกรีกกำกับว่า ? (แลมบ์ดา).

ข้อดีของหน่วยความจำเสมือน

นี่คือข้อดี/ประโยชน์ของการใช้หน่วยความจำเสมือน:

  • หน่วยความจำเสมือนช่วยเพิ่มความเร็วเมื่อต้องใช้เพียงส่วนใดส่วนหนึ่งของโปรแกรมในการทำงานของโปรแกรม
  • มีประโยชน์มากในการปรับใช้สภาพแวดล้อมแบบหลายโปรแกรม
  • ช่วยให้คุณสามารถเรียกใช้แอปพลิเคชันได้มากขึ้นในคราวเดียว
  • ช่วยให้คุณสามารถใส่โปรแกรมขนาดใหญ่จำนวนมากลงในโปรแกรมขนาดเล็กได้
  • ข้อมูลหรือรหัสทั่วไปอาจถูกแชร์ระหว่างหน่วยความจำ
  • กระบวนการอาจมีขนาดใหญ่กว่าหน่วยความจำกายภาพทั้งหมดด้วยซ้ำ
  • ควรอ่านข้อมูล / รหัสจากดิสก์เมื่อจำเป็น
  • รหัสสามารถวางได้ทุกที่ในหน่วยความจำกายภาพโดยไม่ต้องย้ายตำแหน่ง
  • ควรรักษากระบวนการเพิ่มเติมไว้ในหน่วยความจำหลัก ซึ่งจะเพิ่มการใช้งาน CPU อย่างมีประสิทธิภาพ
  • แต่ละหน้าจะถูกจัดเก็บไว้ในดิสก์จนกว่าจะจำเป็น หลังจากนั้นจึงจะถูกลบออก
  • ช่วยให้สามารถเรียกใช้แอปพลิเคชันได้มากขึ้นในเวลาเดียวกัน
  • ไม่มีข้อจำกัดเฉพาะเกี่ยวกับระดับของการเขียนโปรแกรมหลายโปรแกรม
  • ควรเขียนโปรแกรมขนาดใหญ่ เนื่องจากพื้นที่ที่อยู่เสมือนที่มีอยู่นั้นมากกว่าเมื่อเปรียบเทียบกับหน่วยความจำกายภาพ

ข้อเสียของหน่วยความจำเสมือน

นี่คือข้อเสีย/ข้อเสียของการใช้หน่วยความจำเสมือน:

  • แอพพลิเคชั่นอาจทำงานช้าลงหากระบบใช้หน่วยความจำเสมือน
  • อาจต้องใช้เวลามากขึ้นในการสลับระหว่างแอปพลิเคชันต่างๆ
  • เสนอพื้นที่ฮาร์ดไดรฟ์น้อยกว่าสำหรับการใช้งานของคุณ
  • มันลดความเสถียรของระบบ
  • ช่วยให้แอปพลิเคชันขนาดใหญ่ทำงานในระบบที่ไม่มี RAM จริงเพียงพอที่จะเรียกใช้งานได้
  • มันไม่ได้ให้ประสิทธิภาพเช่นเดียวกับ RAM
  • มันส่งผลเสียต่อประสิทธิภาพโดยรวมของระบบ
  • ใช้พื้นที่เก็บข้อมูลซึ่งอาจนำมาใช้จัดเก็บข้อมูลในระยะยาวได้

สรุป

  • หน่วยความจำเสมือนเป็นกลไกการจัดเก็บข้อมูลที่ให้ผู้ใช้รู้สึกเหมือนมีหน่วยความจำหลักที่มีขนาดใหญ่มาก
  • จำเป็นต้องใช้หน่วยความจำเสมือนเมื่อใดก็ตามที่คอมพิวเตอร์ของคุณไม่มีพื้นที่ในหน่วยความจำกายภาพ
  • กลไกการเพจความต้องการนั้นคล้ายคลึงกับระบบเพจที่มีการสลับโดยที่กระบวนการที่จัดเก็บไว้ในหน่วยความจำรองและเพจจะถูกโหลดตามความต้องการเท่านั้น ไม่ใช่ล่วงหน้า
  • วิธีการเปลี่ยนหน้าที่สำคัญคือ 1) FIFO 2) อัลกอริธึมที่เหมาะสมที่สุด 3) การแทนที่หน้า LRU
  • ในวิธี FIFO (เข้าก่อน-ออกก่อน) หน่วยความจำจะเลือกหน้าสำหรับการแทนที่ที่อยู่ในที่อยู่เสมือนของหน่วยความจำเป็นเวลานานที่สุด
  • วิธีการเปลี่ยนหน้าที่เหมาะสมที่สุดจะเลือกหน้านั้นสำหรับการแทนที่ซึ่งเวลาในการอ้างอิงถัดไปนานที่สุด
  • วิธี LRU ช่วยให้ OS ค้นหาการใช้งานเพจในช่วงเวลาสั้นๆ
  • หน่วยความจำเสมือนช่วยเพิ่มความเร็วเมื่อต้องใช้เพียงส่วนใดส่วนหนึ่งของโปรแกรมในการทำงานของโปรแกรม
  • แอพพลิเคชั่นอาจทำงานช้าลงหากระบบใช้หน่วยความจำเสมือน