230 likes | 368 Views
Detailed VM Example. โดย นางสาวกนกอร ศิ ริอำนาจ รหัสนิสิต 50036153 กลุ่ม 2. Detailed VM Example. ตัวอย่างการทำงานของ page fault ISR อย่างเป็นลำดับที่สนับสนุนหน่วยความจำเสมือน เราจะเคลื่อนย้าย dirty bit จาก page table Process 3 Process 7. Detailed VM Example.
E N D
Detailed VM Example โดย นางสาวกนกอร ศิริอำนาจ รหัสนิสิต 50036153 กลุ่ม 2
Detailed VM Example ตัวอย่างการทำงานของ page fault ISR อย่างเป็นลำดับที่สนับสนุนหน่วยความจำเสมือน เราจะเคลื่อนย้าย dirty bit จาก page table Process 3Process 7
Detailed VM Example RAMDASDขั้นตอนที่ 1ขั้นตอนที่ 2
Process 7 Address 2100 • 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 • 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 • 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