(คำตอบต่อไปนี้ถือว่าเป็นเดสก์ท็อป "ทันสมัย" เซิร์ฟเวอร์หรือแพลตฟอร์มฝังตัวระดับบน (เช่นสมาร์ทโฟนและระบบที่เล็กลงเรื่อย ๆ เช่นกัน) สำหรับระบบ x86 สมัยใหม่หมายความว่า 386 ขึ้นไปคำตอบต่อไปนี้ก็ถือว่า ระบบปฏิบัติการ“ ทันสมัย” เช่นเกือบทุกยูนิกซ์หรือ Windows ตั้งแต่ 95)
นี้ไม่ได้เกิดขึ้นในระบบปฏิบัติการมันเกิดขึ้นในการประมวลผลโดยเฉพาะในMMU ( หน่วยจัดการหน่วยความจำ ) MMU รองรับการกำหนดแอดเดรสเสมือนโดยบิตที่ประกอบเป็นตัวชี้ไม่ได้ระบุตำแหน่งทางกายภาพของบิตในหน่วยความจำโดยตรง
ใน MMU ทั่วไปเมื่อตัวชี้ถูกยกเลิกการลงทะเบียน MMU จะแบ่งบิตออกเป็นสองกลุ่ม: บิตลำดับสูงประกอบด้วยหมายเลขหน้าและบิตลำดับต่ำจะสร้างที่อยู่ภายในหน้า เครื่องเดสก์ท็อปและเซิร์ฟเวอร์ส่วนใหญ่ใช้หน้าเว็บขนาด 4kB MMU ค้นหาหมายเลขหน้าเสมือนในตารางชื่อTLB (นั่นคือสิ่งที่คุณเรียกว่า "แผนที่หน่วยความจำกระบวนการ") TLB ระบุจำนวนหน้าฟิสิคัลที่สอดคล้องกับเพจเสมือนนี้ MMU จะดึงข้อมูลจากหน้าฟิสิคัลในหน่วยความจำ
หาก TLB ไม่มีรายการสำหรับหมายเลขหน้าเสมือนนี้ MMU จะแจ้งให้หน่วยประมวลผลทราบว่าเกิดการเข้าถึงที่ไม่ถูกต้อง โดยทั่วไปจะเรียกว่าข้อยกเว้น
โปรดทราบว่าฉันยังไม่ได้กล่าวถึงระบบปฏิบัติการ นั่นเป็นเพราะการดำเนินการทั้งหมดนี้เป็นอิสระจากระบบปฏิบัติการ ระบบปฏิบัติการเข้าสู่การเล่นเพราะมันกำหนดค่าสิ่งต่าง ๆ ได้สองวิธี:
ระบบปฏิบัติการมีหน้าที่ในการสลับงาน เมื่อเป็นเช่นนั้นอย่างที่คุณสงสัยมันจะบันทึก TLB ปัจจุบันและแทนที่ด้วย TLB ที่บันทึกไว้สำหรับงานที่กำหนดเวลาไว้ถัดไป ด้วยวิธีนี้แต่ละกระบวนการมี TLB ดังนั้นที่อยู่0x123456
ในกระบวนการ X อาจไม่ได้ชี้ไปที่สถานที่จริงเดียวกันใน RAM เหมือนกับที่อยู่เดียวกันในกระบวนการ Y หรืออาจไม่ถูกต้อง หากกระบวนการพยายามยกเลิกการอ้างอิงตัวชี้นอกพื้นที่ที่อยู่ของกระบวนการนั้นจะไม่เข้าถึงในพื้นที่ของกระบวนการอื่น แต่จะไปถึงที่ใดก็ได้
ระบบปฏิบัติการจะตัดสินใจว่าจะเกิดอะไรขึ้นเมื่อมีการยกข้อยกเว้น มันสามารถยุติกระบวนการในการเข้าถึงหน่วยความจำที่ไม่ถูกต้อง นี่เป็นวิธีที่ใช้ในการแลกเปลี่ยน: ตัวจัดการข้อยกเว้นอาจตัดสินใจดึงข้อมูลบางอย่างจากพื้นที่สว็อปอัปเดต TLB ตามนั้นและทำการเข้าถึงอีกครั้ง
โปรดทราบว่า MMU ให้ความปลอดภัยเนื่องจากกระบวนการไม่สามารถเปลี่ยน TLB ของตัวเองได้ เคอร์เนลระบบปฏิบัติการเท่านั้นที่สามารถเปลี่ยน TLB ได้ TLB เปลี่ยนสิทธิ์ทำงานอย่างไรนั้นเกินขอบเขตของคำตอบนี้