พื้นที่แอดเดรสเสมือน

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

พิสัยที่เป็นไปได้ของ VAS อยู่ที่ขนาดของตัวชี้ เช่นตัวชี้ขนาด 32 บิตจะมีพิสัยตั้งแต่ 0x000000 ถึง 0xFFFFFFFF รวมทั้งหมด 4 กิกะบิต

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

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

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

 ไมโครซอฟท์ วินโดวส์ 
สำหรับระบบปฏิบัติการไมโครซอฟท์ วินโดวส์แบบ 32 บิต แอดเดรสเสมือนโดยทั่วไปมีขนาด 4 กิกะไบต์ หรือ 2^32 ไบต์ โดยแบ่งเป็นสองส่วน ได้แก่ ช่วง 0x00000000 ถึง 0x7FFFFFF ซึ่งเรียกว่า พื้นที่ผู้ใช้ (user space) และช่วง 0x80000000 ถึง 0xFFFFFFFF ซึ่งเรียกว่า พื้นที่ระบบ (system space) อย่างไรก็ตาม ผู้ใช้สามารถปรับขนาดพื้นที่ผู้ใช้ผ่านตัวเลือกการบูตของระบบได้ โดยสามารถกำหนดให้มีขนาดสูงสุดถึง 3 กิกะไบต์

ส่วนวินโดวส์ 64 บิตจะมีขนาด 16 เอกซะไบต์ หรือ 2^64 ไบต์ โดย 8 เทระไบต์แรกตั้งแต่ 0x000’00000000 ถึง 0x7FF’FFFFFFFF จะถูกใช้สำหรับพื้นที่ผู้ใช้ แต่สำหรับพื้นที่ระบบนั้นจะมีขนาด 248 เทระไบต์เริ่มตั้งแต่ 0xFFFF0800'00000000 ถึง 0xFFFFFFFF'FFFFFFFF โดยพื้นที่ที่เหลือนอกจากนี้จะไม่ถูกใช้งาน

 ลินุกซ์ 
สำหรับซีพียูสถาปัตยกรรมเอกซ์86 เพาเวอร์พีซี และอาร์มแบบ 32 บิต ระบบลินุกซ์อนุญาตให้แบ่งช่วงแอดเดรสระหว่างส่วนผู้ใช้และส่วนเคอร์เนลได้หลายรูปแบบ ได้แก่ 3G/1G ระหว่างผู้ใช้/เคอร์เนล (ค่าเริ่มต้น), 1G/3G ระหว่างผู้ใช้/เคอร์เนล หรือ 2G/2G ระหว่างผู้ใช้/เคอร์เนล

 อ้างอิง 

หมวดหมู่:การจัดการหน่วยความจำ
หมวดหมู่:หน่วยความจำเสมือน