เวอชวลแอดเดรสสเปซ

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

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

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

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

ประโยชน์ แก้

  1. โปรแกรมสามารถเข้าถึงข้อมูลขนาดใหญ่บน virtual address ได้อย่างต่อเนื่องกัน แต่ถ้าเป็น physical memory โปรแกรมจะไม่สามารถเข้าถึงข้อมูลขนาดใหญ่อย่างต่อเนื่องได้
  2. โปรแกรมสามารถใช้ memory buffer ที่ใหญ่กว่า physical memory ที่มีอยู่ได้ โดยเมื่อ physical memory มีขนาดเล็ก ตัวจัดการหน่วยความจำ จะบันทึก page ไปยัง disk แทน
  3. โปรแกรมแต่ละโปรแกรมมี virtual address space แยกออกจากกัน

ไมโครซอฟท์วินโดวส์ แก้

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

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