หน่วยความจำเสมือนในระบบปฏิบัติการ: คืออะไร เพจความต้องการ ข้อดี
หน่วยความจำเสมือนคืออะไร?
หน่วยความจำเสมือน เป็นกลไกการจัดเก็บข้อมูลที่ให้ผู้ใช้รู้สึกเหมือนมีหน่วยความจำหลักขนาดใหญ่มาก ทำได้โดยถือว่าส่วนหนึ่งของหน่วยความจำรองเป็นหน่วยความจำหลัก ในหน่วยความจำเสมือน ผู้ใช้สามารถจัดเก็บกระบวนการที่มีขนาดใหญ่กว่าหน่วยความจำหลักที่มีอยู่ได้
ดังนั้น แทนที่จะโหลดกระบวนการที่ยาวนานในหน่วยความจำหลัก ระบบปฏิบัติการจะโหลดส่วนต่างๆ ของกระบวนการมากกว่าหนึ่งกระบวนการในหน่วยความจำหลัก หน่วยความจำเสมือนส่วนใหญ่ถูกนำมาใช้กับเพจความต้องการและการแบ่งส่วนความต้องการ
ทำไมต้องมีหน่วยความจำเสมือน?
ต่อไปนี้เป็นเหตุผลในการใช้หน่วยความจำเสมือน:
- เมื่อใดก็ตามที่คอมพิวเตอร์ของคุณไม่มีพื้นที่ในหน่วยความจำกายภาพ คอมพิวเตอร์จะเขียนสิ่งที่จำเป็นต้องจำลงในฮาร์ดดิสก์ในไฟล์สว็อปเป็นหน่วยความจำเสมือน
- หากคอมพิวเตอร์ทำงาน 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 ค้นหาการใช้งานเพจในช่วงเวลาสั้นๆ
- หน่วยความจำเสมือนช่วยเพิ่มความเร็วเมื่อต้องใช้เพียงส่วนใดส่วนหนึ่งของโปรแกรมในการทำงานของโปรแกรม
- แอพพลิเคชั่นอาจทำงานช้าลงหากระบบใช้หน่วยความจำเสมือน