ข้ามไปเนื้อหา

หน่วยความจำเสมือน

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

ในคอมพิวเตอร์ หน่วยความจำเสมือน (อังกฤษ: virtual memory) หรือ หน่วยเก็บข้อมูลเสมือน (อังกฤษ: virtual storage) คือเทคนิคการจัดการหน่วยความจำในระบบปฏิบัติการซึ่งให้ "ภาวะนามธรรมในอุดมคติของทรัพยากรการเก็บข้อมูลที่มีอยู่จริงบนเครื่องแต่ละเครื่อง"[1] และ "สร้างภาพลวงตาให้ผู้ใช้เห็นว่ามีหน่วยความจำ (หลัก) ขนาดใหญ่มาก"[2]

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

ประโยชน์หลัก ๆ ของหน่วยความจำเสมือนได้แก่การช่วยให้โปรแกรมประยุกต์ไม่ต้องจัดการพื้นที่หน่วยความจำที่ใช้ร่วมกัน ความสามารถในการแบ่งปันหน่วยความจำที่ใช้โดยไลบรารีระหว่างกระบวนการ ความมั่นคงที่เพิ่มขึ้นเนื่องจากการแยกหน่วยความจำออกจากกัน (memory isolation) และความสามารถในการใช้หน่วยความจำได้มากกว่าที่มีอยู่จริงทางกายภาพในเชิงแนวคิด โดยใช้เทคนิคการสลับหน้าหรือการแบ่งส่วน

หมายเหตุ

[แก้]
  1. ↑ ระบบยุคแรกใช้ดรัม ระบบยุคปัจจุบันใช้ดิสก์หรือหน่วยความจำซอลิดสเตต

อ้างอิง

[แก้]
  1. ↑ Bhattacharjee, Abhishek; Lustig, Daniel (2017). Architectural and Operating System Support for Virtual Memory. Morgan & Claypool Publishers. น. 1. ISBN 9781627056021. สืบค้นเมื่อ 16 ตุลาคม 2017.{{cite book}}: CS1 maint: date auto-translated (ลิงก์)
  2. ↑ Haldar, Sibsankar; Aravind, Alex Alagarsamy (2010). Operating Systems. Pearson Education India. น. 269. ISBN 978-8131730225. สืบค้นเมื่อ 16 ตุลาคม 2017.{{cite book}}: CS1 maint: date auto-translated (ลิงก์)
  3. ↑ Zhou, Xiangrong; Petrov, Peter (1 ธันวาคม 2008). "Direct address translation for virtual memory in energy-efficient embedded systems". ACM Transactions on Embedded Computing Systems (ภาษาอังกฤษ). 8 (1): 1–31. doi:10.1145/1457246.1457251. ISSN 1539-9087. S2CID 18156695.{{cite journal}}: CS1 maint: date auto-translated (ลิงก์)