โดย นางสาวกนกอร ศิริอำนาจ รหัสนิสิต กลุ่ม 2 Detailed VM Example
ตัวอย่างการทำงานของ page fault ISR อย่างเป็น ลำดับที่สนับสนุนหน่วยความจำเสมือน เราจะเคลื่อนย้าย dirty bit จาก page table Process 3 Process 7
Detailed VM Example RAM DASD ขั้นตอนที่ 1 ขั้นตอนที่ 2
Process 7 Address 2100 logical page คือ 2100/1024=2 slot 2 ของ process 7 ที่ตาราง page table มี -1 สำหรับ page number ดังนั้นแสดงว่ามันยังไม่ได้ถูกโหลด เราต้องการ physical RAM page free RAM Page table ไม่มีที่ว่าง ดังนั้นเราต้องกำจัดโปรเซสที่ อยู่นานที่สุดออกไป นั่นคือ page 2 ที่เวลา 10:09 และเราต้องการ DASD page จากหน่วยความจำสำรอง Free DASD Page table มีพื้นที่ที่ว่างในลำดับแรก คือ DASD page 0 ดังนั้นเราจะใส่ค่าลงไป เราต้องใส่ 7 ใน Free DASD Page table ที่ slot 0
Process 7 Address 2100 ขณะนี้เราได้ทำการ page out ที่ physical RAM page 2 ไปยัง DASD page 0 เราต้องทำการ update โปรเซส 7 page table ที่ slot 1 และ location เป็น D เราทำการ update โปรเซส 7 page table ที่ slot 2 ที่ RAM page 2 และ location เป็น R สุดท้ายเรา update ที่ slot 2 ของ Free RAM page table คือ update timestamp ตั้งแต่เราได้ทำการเข้าถึงเพจนี้ นั่น คือ timestamp จะเป็น 10:18
รูปที่ได้คือ
Process 3 Address 100 logical page คือ 100/1024=0 Slot 0 ของ process 3 page table แสดงให้เห็นถึง location เป็น D คืออยู่ใน DASD ดังนั้นเราต้องทำ page in เราต้องการ physical RAM page free RAM page table ไม่มีที่ว่าง ดังนั้นเราต้องกำจัดโปรเซสที่ อยู่นานที่สุดออกไป นั่นคือ page 5 ที่เวลา 10:12 และเราต้องการ DASD page จากหน่วยความจำสำรอง Free DASD page table มี DASD page 2 ที่สามารถใช้ได้ เรา ต้องใส่ 3 ใน Free DASD page table ที่ slot 2
Process 3 Address 100 ขณะนี้เรา page out physical RAM page 5 ไปยัง DASD page 2 เราทำการ update โปรเซส 3 page table ที่ slot 10 ที่ page 2 และ location เป็น D เราทำการ update โปรเซส 3 page table ที่ slot 0 ที่ RAM page 5 และ location เป็น R เราทำการ update ที่ Free DASD page table ที่ slot 3 เป็น -1 สุดท้ายเรา update ที่ slot 5 ของ Free RAM page table คือ update timestamp ตั้งแต่เราได้ทำการเข้าถึงเพจนี้ นั่น คือ timestamp จะเป็น 10:19
รูปที่ได้คือ
Process 7 Address 4097 logical page คือ 4097/1024=4 slot 4 ของ process 7 ที่ตาราง page table มี -1 สำหรับ page number ดังนั้นแสดงว่ามันยังไม่ได้ถูกโหลด เราต้องการ physical RAM page free RAM page table ไม่มีที่ว่าง ดังนั้นเราต้องกำจัดโปรเซสที่ อยู่นานที่สุดออกไป นั่นคือ page 3 ที่เวลา 10:14 และเราต้องการ DASD page จากหน่วยความจำสำรอง Free DASD page table มี DASD page 3 ที่สามารถใช้ได้ เรา ต้องใส่ 3 ใน Free DASD page table ที่ slot 3
Process 7 Address 4097 ขณะนี้เรา page out physical RAM page 3 ไปยัง DASD page 3 เราทำการ update โปรเซส 3 page table ที่ slot 4 ที่ page 3 และ location เป็น D เราทำการ update โปรเซส 7 page table ที่ slot 4 ที่ RAM page 3 และ location เป็น R สุดท้ายเรา update ที่ slot 3 ของ Free RAM page table คือ update timestamp ตั้งแต่เราได้ทำการเข้าถึงเพจนี้ นั่น คือ timestamp จะเป็น 10:20 และเปลี่ยน PID เป็น 7
รูปที่ได้คือ
Process 3 Address 4100 Process 3 address 4100 logical page คือ 4100/1024=4 Slot 4 ของ process 3 page table แสดงให้เห็นถึงว่าอยู่ ใน DASD ดังนั้นเราต้องการ physical RAM page free RAM page table ไม่มีที่ว่าง ดังนั้นเราต้องกำจัด โปรเซสที่อยู่นานที่สุดออกไป นั่นคือ page 0 ที่เวลา 10:15 และเราต้องการ DASD page จากหน่วยความจำสำรอง Free DASD page table มี DASD page 5 ที่สามารถ ใช้ได้ เราต้องใส่ 7 ใน Free DASD page table ที่ slot 5
Process 3 Address 4100 ขณะนี้เรา page out physical RAM page 0 ไปยัง DASD page 5 เราทำการ update โปรเซส 7 page table ที่ slot 0 ที่ page 5 และ location เป็น D เราทำการ update โปรเซส 3 page table ที่ slot 4 ที่ page 0 และ location เป็น R เราจะทำการอ่านข้อมูลจาก DASD page 3 ไปยัง physical RAM page 0 เราทำการ update Free DASD ที่ slot 3 เป็น -1(free) สุดท้ายเรา update ที่ slot 0 ของ Free RAM page table คือ update timestamp ตั้งแต่เราได้ทำการเข้าถึงเพจนี้ นั่นคือ timestamp จะเป็น 10:21 และเปลี่ยน PID เป็น 3
รูปที่ได้คือ
Process 7 Address 200 Process 7 address 200 logical page คือ 200/1024=0 Slot 0 ของ process 7 page table แสดงให้เห็นถึงว่าอยู่ ใน DASD ดังนั้นเราต้องการ physical RAM page free RAM page table ไม่มีที่ว่าง ดังนั้นเราต้องกำจัด โปรเซสที่อยู่นานที่สุดออกไป นั่นคือ page 4 ที่เวลา 10:16 และเราต้องการ DASD page จากหน่วยความจำสำรอง Free DASD page table มี DASD page 3 ที่สามารถ ใช้ได้ เราต้องใส่ 7 ใน Free DASD page table ที่ slot 3
Process 7 Address 200 ขณะนี้เรา page out physical RAM page 4 ไปยัง DASD page 3 เราทำการ update โปรเซส 7 page table ที่ slot 9 ที่ page 3 และ location เป็น D เราทำการ update โปรเซส 7 page table ที่ slot 0 ที่ RAM page 4 และ location เป็น R เราจะทำการอ่านข้อมูลจาก DASD page 5 ไปยัง physical RAM page 4 เราทำการ update Free DASD ที่ slot 5 เป็น -1(free) สุดท้ายเรา update ที่ slot 4 ของ Free RAM page table คือ update timestamp ตั้งแต่เราได้ทำการเข้าถึงเพจนี้ นั่นคือ timestamp จะเป็น 10:22
รูปที่ได้คือ