ch 5 virtualmemory
-
Upload
patsarit-maneekaew -
Category
Documents
-
view
214 -
download
0
description
Transcript of ch 5 virtualmemory
![Page 1: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/1.jpg)
ระบบหนวยความจาเสมอนระบบหนวยความจาเสมอนระบบหนวยความจาเสมอนระบบหนวยความจาเสมอน
(Virtual Memory)(Virtual Memory)
บทท 5
![Page 2: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/2.jpg)
ประเภทของการจดการหนวยความจา
![Page 3: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/3.jpg)
การจดการหนวยความจา
![Page 4: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/4.jpg)
ระบบหนวยความจาเสมอน (Virtual Memory)
• การจดการหนวยความจาสามารถแบงออกเปน 2 ประเภทใหญ ๆ
– ระบบหนวยความจาจรง
ขนาดของโปรแกรมจะตองไมใหญกวาขนาดของ
หนวยความจาทมอย ลบดวยขนาดของหนวยความจาทเปน
สวนของ OS
– ระบบหนวยความจาเสมอน
ขนาดของโปรแกรมจะมขนาดเทาใดกได
![Page 5: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/5.jpg)
ระบบหนวยความจาเสมอน (Virtual Memory)
หนวยความจาเสมอนมขนาดใหญกวาหนวยความจาจรง
![Page 6: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/6.jpg)
แนวคดของหนวยความจาเสมอน
• ผเขยนโปรแกรมหรอผใชจะไมถกจากดในเรองของขนาดของหนวยความจา
อกตอไป
• OS จะจดการใหผใชสามารถใชหนวยความจาไดมากกวาหนวยความจาจรง
ทมอย
• โปรแกรมทงโปรแกรมโดยสวนใหญไมไดถกใชงานพรอมกนทงหมด ซง
การทางานของโปรแกรมจะเรมทางานจากสวนตนโปรแกรม แลวคอย ๆ
เลอนลงมาจนกระทงถงทายโปรแกรม
• ในขณะทโปรแกรมกาลงทางานอยทสวนตนโปรแกรม ทปลายโปรแกรมก
ยงไมถกใชงาน เมอโปรแกรมทางานมาถงสวนทาย ๆ โปรแกรม สวนตน ๆ
โปรแกรมกไมถกใชงาน
![Page 7: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/7.jpg)
แนวคดของหนวยความจาเสมอน … ตอ
• ดงนนในชวงทโปรแกรมทางานอยทสวนตน ๆ กไมมความจาเปนตอง
โหลดเอาสวนทาย ๆ โปรแกรมลงไปในหนวยความจาใหเปลองเนอท
• เมอโปรแกรมทางานมาจนถงสวนทยงไมไดโหลดเขาไปในหนวยความจา
OS จะจดการดงเอาสวนนนมาจากหนวยความจารอง
• โดยทอาจจะโหลดไปทบสวนตน ๆ ของโปรแกรมทอยในหนวยความจา
หรอโหลดลงไปในสวนอน ๆ ของหนวยความจากได
• จากหลกการดงกลาวเราจงสามารถรนโปรแกรมทมขนาดใหญกวา
หนวยความจาทมอยได
![Page 8: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/8.jpg)
การแปลงแอดเดรส (Address Mapping)
• เนองจากขนาดของโปรแกรมมขนาดใหญกวาขนาดของหนวยความจา
ดงนนจงตองมการอางองแอดเดรสระหวางแอดเดรสของหนวยความจา
จรงกบแอดเดรสของโปรแกรม
• แอดเดรสจรง (Real Address หรอ Physical Address) หมายถง
แอดเดรสในหนวยความจาจรงเทานน
• แอดเดรสเสมอน (Virtual Address หรอ Logical Address) หมายถง
แอดเดรสทโปรแกรมอางถง
• ดงนนจงตองมกลไกการแปลงแอดเดรสจากแอดเดรสเสมอนใหเปน
แอดเดรสจรง ณ.ตาแหนงทโปรแกรมสวนนนถกวางลงไป ซงเราเรยกวา
การแปลงสงแอดเดรส (Address Mapping)
![Page 9: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/9.jpg)
การแปลงแอดเดรส (Address Mapping) … ตอ
หนวยความจาเสมอน
ตาแหนงท
ตอเนองกน
หนวยความจาจรง
การแปลงแอดเดรส
![Page 10: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/10.jpg)
การแปลงแอดเดรส (Address Mapping) … ตอ
• เทคนคการแปลงแอดเดรสมอยหลายวธ แตวธทนยมใชกนอยางแพรหลาย
คอ dynamic address translation (DAT)
• วธการทจะจดการหนวยความจาจรงใหสามารถทางานโปรแกรมทมขนาด
ใหญ จะใชหลกการแบงโปรแกรมออกเปนสวนยอย ๆ หลาย ๆ สวน
เรยกวาบลอก (Block)
• ขนาดของบลอกแบงออกเปน 2 แบบคอทกบลอกมขนาดเทากน หรอ
บลอกมขนาดไมเทากน ดงนนระบบหนวยความจาเสมอนจงแบงไดเปน 2 แบบ
– หนวยความจาเสมอนระบบหนา (Paging system)
– หนวยความจาเสมอนระบบเซกเมนต (Segment system)
![Page 11: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/11.jpg)
การแปลงแอดเดรส (Address Mapping) … ตอ
• ระบบหนวยความจาเสมอนจงแบงไดเปน 2 แบบ
– หนวยความจาเสมอนระบบหนา (Paging system)
– หนวยความจาเสมอนระบบเซกเมนต (Segment system)
![Page 12: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/12.jpg)
การแปลงสงแอดเดรส
1. การแปลงสงแบบตรง (direct mapping)
2. การแปลงสงแบบสาระ(associative mapping)
3. การแปลงสงแบบผสมระหวางสาระและแบบตรง combined associative/direct mapping
![Page 13: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/13.jpg)
หนวยความจาเสมอนระบบหนา (Paging system)
• เปนการจดแบงโปรแกรมออกเปนบลอกทมขนาดเทา ๆ กนทกบลอก โดย
จะเรยกบลอกแตละบลอกวาหนา (Page)
• ตวอยางการทางานในระบบหนา
– ระบบมหนวยความจาขนาด 100 Kbyte = 100,000 Byte = 105 Byte
– ตองการรนโปรแกรมทมขนาด 1000 Kbyte = 1,000,000 Byte = 106 Byte
โปรแกรมขนาด
1000 KByteหนวยความจาขนาด
100 Kbyte
![Page 14: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/14.jpg)
หนวยความจาเสมอนระบบหนา (Paging system) … ตอ
• สมมต OS แบงโปรแกรมออกเปนหนายอย โดยทแตละหน า (Page) ม
ขนาด 1 Kbyte = 1,000 Byte = 103 Byte
• ตองการรนโปรแกรม 1000 Kbyte ดงนนโปรแกรมจะถกแบงออกเปน 1000 หนา
(1000 Page) ดงรป
แอดเดรสภายในหนา
Displacementเลขหนา
Page Number
แอดเดรสเรมตนของหนา
แอดเดรสสดทายของหนา
หนาท 000หนาท 001หนาท 002
หนาท 998หนาท 999
0 0 0 0 0 00 0 0 9 9 90 0 1 0 0 00 0 1 9 9 90 0 2 0 0 00 0 2 9 9 9
9 9 8 0 0 09 9 8 9 9 99 9 9 0 0 09 9 9 9 9 9
แอดเดรสเสมอน
แอดเดรสเสมอน
![Page 15: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/15.jpg)
หนวยความจาเสมอนระบบหนา (Paging system) … ตอ
• จากรปเราสามารถแบงแอดเดรสเสมอนออกเปน 2 สวน
– สวนท 1 จะเปนคาทบงบอกหมายเลขหนา
– สวนท 2 จะเปนคาทบงบอกคาแอดเดรสภายในหนานน ๆ ซงมชอ
เรยกวาดสเพลซเมนต (Displacement)
• ตวอยางเชน แอดเดรสเสมอนท 243765 มความหมายวาอยใน
หนาท 243 และมดสเพลสเมนตเปน 765
หมายเลขหนา ด◌สเพลซเมนต
แอดเดรสเสมอน
![Page 16: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/16.jpg)
หนวยความจาเสมอนระบบหนา (Paging system) … ตอ
• สาหรบในหนวยความจาจรง OS จะแบงออกเปนหนายอยเหมอนกน โดยทแตละหนา (Page) มขนาดเทากบหนาของหนวยความจาเสมอนคอ 1 Kbyte = 1,000 Byte = 103 Byte
• ดงนนหนวยความจาจรงจะถกแบงออกเปน 100 หนา (100 Page) ดงรป
แอดเดรสภายในหนา
Displacementเลขหนา
Page Number
แอดเดรสเรมตนของหนา
แอดเดรสสดทายของหนา
หนาท 00หนาท 01หนาท 02
หนาท 98หนาท 99
0 0 0 0 00 0 9 9 90 1 0 0 00 1 9 9 90 2 0 0 00 2 9 9 9
9 8 0 0 09 8 9 9 99 9 0 0 09 9 9 9 9
แอดเดรสเสมอน
![Page 17: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/17.jpg)
หนวยความจาเสมอนระบบหนา(Paging system)… ตอ
• โปรแกรมของผใชไมวาจะมขนาดใหญเทาใด จะตองถกเกบอยใน
หนวยความจารอง ซงโดยสวนมากไดแก ดสก เนองจากมความจสง
• เมอผใชส งรนโปรแกรม OS จะโหลดเอาโปรแกรมจากดสกเขาไปใน
หนวยความจาครงละ 1 หนา นนคอ 1 หนาในโปรแกรมกจะเขาไป
ใชเนอทในหนวยความจา 1 หนาเชนกน
• เมอโปรแกรมหนงครอบครองหนาใดในหนวยความจาแลว โปรแกรมอน
จะใชหนานนอกไมได
• โปรแกรมจะครอบครองหนวยความจาจรงเปนจานวนเตมของหนา
• ดงนนตองมวธการแปลงแอดเดรสจากแอดเดรสเสมอนเปนแอดเดรสจรง
![Page 18: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/18.jpg)
การแปลงแอดเดรสในระบบหนา
• OS จะสรางตารางไว สาหรบโปรเซส คอ ตารางหน า (Page table)
• สมมตวาหน วยความจาเสมอนมขนาด 1000 หน า และหน วยความจาจรงมขนาด 100 หน า
• ตารางหน ากจะมขนาด 1000 ช อง ไดแกช องท 000-999 – ช องท 000 สาหรบหน าท 000– ช องท001 สาหรบหน าท001
• ในตารางหน าจะม3 คอลมภ
![Page 19: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/19.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
หมายเลขหนา
Page Table
001002003
998999
แอดเดรสในดสก 0/1 แอดเดรสในหนวยความจาจรง
![Page 20: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/20.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
• คอลมภท 1 จะบอกแอดเดรสของหน านน ๆ ทอยในดสกเพอทจะไดรวาหน าตาง ๆ ของโปรแกรมเกบไว ทหน าใดของดสก
• คอลมภท 2 จะบอกวาหน านน ๆ อยในหน วยความจาจรงหรอไม– ถาคาเปน 0 หมายถง หน านนไมไดอยใน
หน วยความจาจรง (อยในหน วยความจาสารอง)
– ถาคาเปน 1 หมายถง หน านนอยในหน วยความจาจรง
• คอลมภท 3 จะบอกถงแอดเดรสเรมต น
![Page 21: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/21.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
ถ าต องการทราบวาแอดเดรสเสมอน 123983 ไปอย ณ. ตาแหน งใดในหน วยความจาจรง
1. OS จะนาเอาแอดเดรสเสมอนมาหาคาหมายเลขหน าและดสเพลซเมนต ในกรณน หมายเลขหน าคอ 123 และดสเพลซเมนตคอ 983
2. OS จะตรวจสอบทตารางหน าในช องท 123
3. อานคาคอลมภท 2 ในตารางหน าช องท 123 วามคา 1 หรอ 0 ในกรณนมคาเปน
![Page 22: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/22.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
ถ าตองการทราบวาแอดเดรสเสมอน 123983 ไปอย ณ. ตาแหน งใดในหน วยความจาจรง
4. OS จะอานคาในคอลมภท 3 ของตารางหน าเพอหาแอดเดรสเรมตนของหน าในหน วยความจาจรง ซงคาคอลมภ 3 คอ 54000
5. นาเอาคาในคอลมภท 3 มารวมกบดสเพรสเมนต จะไดแอดเดรสในหน วยความจาจรงทตรงกบแอดเดรสเสมอน (ซงคาคอลมภท 3 คอ 54000 คาดสเพรสเมนตคอ 983 คาทไดคอ 54000+983=54983
6. ดงนน แอดเดรสเสมอน 123983 จะอยท หน า 54 ของหน วยความจาจรง และม
![Page 23: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/23.jpg)
![Page 24: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/24.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
กรณข อมลไมไดอยในหน วยความจาจรง (อยในหน วยความจาสารอง)
1. OS จะนาเอาแอดเดรสเสมอนมาหาคาหมายเลขหน าและดสเพลซเมนต ในกรณน หมายเลขหน าคอ 123 และดสเพลซเมนตคอ 983 OS จะตรวจสอบทตารางหน าในช องท 123
2. อานคาคอลมภท 2 ในตารางหน าช องท 123 วามคา 1 หรอ 0 ในกรณนมคาเปน 0 (แสดงวาเกบอยในหน วยความจาสารอง)
3. OS จะอานคาคอลมภท 1 ซงเปนแอดเดรสในดสก ในดสกเปนจานวน 1 หน า (1 Kbyte ) (คาแอดเดรสในดสกคอ 5146789)
4. OS จะไปหาหน าทวางในหน วยความจาจรง (หน าทวางคอหน าท 03000)
![Page 25: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/25.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
กรณขอมลไมไดอยในหนวยความจาจรง (อยในหนวยความจาสารอง)
5. นาขอมลทอานมาจากดสกไปวางไวในหนวยความจาจรง
6. OS จะทาการแกไขขอมลในตารางหนาชองท 123 โดยเปลยนคาคอลมภท
2 เปน 1 7. ใสคาหนาทหามาไดของหนวยความจาจรงบวกกบตาแหนงเรมตน (000) ของ
ด◌สเพรสเมนตลงในคอลมภท 3 ของตารางหนา (คาแอดเดรสจรง 03983 (03000+983) ซงตรงกบแอดเดรสเสมอน 123983
![Page 26: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/26.jpg)
แอดเดรสเสมอน
123 983
ตารางหนา
000001
123 5146789 0
หนวยความจาจรงตารางหนา
000001
123 5146789 1
ไปอานขอมลในแอดเดรส
5146789 ในดสก
โหลดลง
หนวยความจาจรง
000102
0300003000
คาแอดเดรสจรง 03983 (03000+983) ซงตรงกบแอดเดรสเสมอน 123983
![Page 27: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/27.jpg)
การแปลงแอดเดรสในระบบหนา … ตอ
• กรณถาไมมหนาวางในหนวยความจาจรง OS ตองเลอกเอาหนา
หนงออกจากหนวยความจาจรง
• หนาใดจะถกเลอกออก OS จะมวธการทเรยกวา การสบเปลยน
หนา (Page Replacement)
• หนาทถกเลอกออก OS จะทาการบนทกขอมลและสถานะปจจบน
ของหนานนกลบลงในดสก ณ.ตาแหนงแอดเดรสของดสกตาม
ตารางหนา จากนนจงโหลดหนาใหมทบลงไป
• แกไขขอมลในตารางหนาของทงของหนาทถกเขยนทบและหนาท
โหลดเขาไปใหม
![Page 28: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/28.jpg)
การสบเปลยนหน า (Page Replacement)
เมอเกดความผดพรองของหน าในระบบหน า และหน วยความจาไมมหน าใดวางอยเลยกอนท OS จะโหลดเอาหน าใหมเขามา
ในหน วยความจานน OS ต องตดสนใจกอนวาควรจะเลอกหน าใดเพอทจะวางหน าใหมทบลงไป สงท OS ใช ในการตดสนใจเลอกหน า
เรยกวา การสบเปลยนหน า Page Replacement หรอยทธวธการแทนท(replacement strategy)
![Page 29: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/29.jpg)
การสบเปลยนหนา (Page Replacement)
• การสบเปลยนหนามวธการ 5 วธดงน
– การสบเปลยนหนาแบบสม (Random) ทกหนามโอกาสถกเลอกเทากน
หมด
– การสบเปลยนหนาแบบมากอนออกกอน (First in First out :FIFO)
– การสบเปลยนหนาแบบหนาทถกใชนอยทสดออกกอน (Not frequently
used :NFU)
– การสบเปลยนหนาแบบหนาใดทไมถกใชนานทสดออกกอน (Least
recently used :LRU)
– การสบเปลยนหนาแบบหนาใดไมไดถกใชงานออกกอน (Not recently
used :NUR)
![Page 30: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/30.jpg)
การแปลงแอดเดรสในระบบ Segment
หมายเลขหน าจากแอดเดรสเสมอนถกส งเขาไปตรวจสอบในตารางทเรยกวา ตารางหน าแบบสาระ(associative page table)พรอมกนทกช อง จะไดคาแอดเดรสเรมต นของหน าใน
หน วยความจาจรงทเกบหน านเอาไวออกมาทนท แอดเดรสทไดนกจะนาไปบวกดสเพลซ
เมนตผลลพธทไดกคอแอดเดรสจรงในหน วยความจา
![Page 31: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/31.jpg)
ตารางหน าแบบสาระ(associative page table)
![Page 32: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/32.jpg)
การแปลงส งแบบผสมระหวางแบบสาระและแบบตรง (combined
associative/direct mapping)
![Page 33: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/33.jpg)
หนวยความจาเสมอนระบบเซกเมนต(Segment System)
• มลกษณะการทางานคลายกบระบบหนา (Page System) ตางกน
ตรงทขนาดของบลอกไมจาเปนตองเทากน
• ตารางเซกเมนต (Segment table) จะมคอลมนมากกวาตารางหนา
อย 1 คอลมนใชเกบขนาดของเซกเมนตนนไว เพอให OS ทราบวา
แตละเซกเมนตมขนาดเทาใด
• การอานหรอเขยนขอมลจากหนวยความจารองและการหาเนอทใน
หนวยความจาจรงจะกระทาตามขนาดของเซกเมนต เชนถาเซกเมนต
มขนาด 5 Kbytes การโหลดจากดสกตองโหลดขอมลขนมา 5 Kbytes ในขณะเดยวกนกตองหาเนอทวางในหนวยความจาทมขนาด
5 Kbytes ดวยเชนกน
![Page 34: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/34.jpg)
หนวยความจาเสมอนระบบเซกเมนต(Segment System)…ตอ
หมายเลขหนา
Segment Table
001002003
998999
แอดเดรสในดสก 0/1 แอดเดรสในหนวยความจาจรงขนาดเซกเมนต
![Page 35: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/35.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
• ระบบจะแบงหนวยความจาออกเปนหนาทมขนาดเทากน
• ในโปรแกรมของผใช จะถกแบงออกเปนเซกเมนต
• ภายในเซกเมนตจะถกแบงออกเปนหลายๆหนา
• ดงนนขนาดของเซกเมนตจะเปนจานวนเทาของหนา
• แตละเซกเมนตของโปรแกรมไมจาเปนตองอยเรยงกนในหนวยความจา
• แตละหนาในเซกเมนตเดยวกนกไมจาเปนตองอยเรยงตดกนใน
หนวยความจาจรง
![Page 36: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/36.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
• การผสมเอาระบบหนาและเซกเมนตเขาดวยกนทาใหประสทธภาพ
การทางานของระบบดขน
• ระบบผสมน แอดเดรสเสมอนจะแบงออกเปน 3 สวน คอ หมายเลข
หนาเซกเมนต หมายเลขหนา และดสเพลซเมนต
หมายเลขเซกเมนต หมายเลขหนา ดสเพลซเมนต
![Page 37: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/37.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
นาหมายเลขเซกเมนต (S)ของแอดเดรสเสมอนไปหาแอดเดรสของตารางหน าทเกบอยในตารางเซกเมนต เมอทราบวาตารางหน าอยทใดใน
หน วยความจาแลวใช หมายเลขหน า P เพอหาแอดเดรสของ
หน าP’ในหน วยความจา นาคาแอดเดรสนบวกกบดสเพลซเมนตก
จะไดแอดเดรสจรงในหน วยความจา
![Page 38: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/38.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
![Page 39: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/39.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
1. สมมตวาโปรเซสหนงม 3 เซกเมนต (0-2)2. เซกเมนต 0 และ 1 ม 5 หน า และเซกเมนต 2
ม 10 หน า แตละหน ามขนาด 100 ไบต (00-99) ดงนนดสเพลซเมนตเปนเลข 2 หลก
3. สมมตวาต องการแปลงแอดเดรสเสมอน 1490 เปนแอดเดรสจรง
4. หมายเลขเซกเมนตคอ 1 หมายเลขหน าคอ 4 ดสเพลซเมนตคอ 90
![Page 40: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/40.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
5. ขนแรกอานคาทเกบไว ในช อง 1 ของตารางเซกเมนต ไดคา 900 หมายความวาตารางหน าของเซกเมนต 1 อยทแอดเดรส 900
6. ตอมาตรวจสอบคาในช องท 4 ของตารางหน าทแอดเดรส 900 เพอหาดวาหน า 4 ของเซกเมนต 1 เกบอยทใดในหน วยความจา
7. เมอไดคาแอดเดรสหน าในหน วยความจาแลว (500)กนาไปบวกกบดสเพลซเมนตกจะไดคาแอดเดรสจรงในหน วยความจา คอ 590
![Page 41: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/41.jpg)
หนวยความจาเสมอนระบบผสมหนาและเซกเมนต
![Page 42: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/42.jpg)
ยทธวธการเฟตซ
ยทธวธการเฟตซ (Fetch Strategy) หมายถงการโหลดหนาหรอ
เซกเมนตจากดสกเขาไปในหนวยความจา แบงออกไดเปน 2 วธ คอ
การเฟตซแบบตองการ (demand fetch) OS จะ
โหลดเฉพาะหนาหรอเซกเมนต ทตองการใชเทานนเขาไปใน
หนวยความจา
การเฟตซแบบคาดเดา (anticipate fetch) จะมการคาดเดาวาหนาหรอ เซกเมนตไหนจะถกใชเปนหนาหรอเซกเมนตตอไป
และจะโหลดหนาหรอเซกเมนตนนเขาไปไวในหนวยความจา
ลวงหนา (กอนเกดการใชงานจรง)ทาใหโปรแกรมทางานไดเรวขน
![Page 43: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/43.jpg)
ลาดบชนของหนวยความจา
ระบบหนวยความจาเสมอน สามารถทาให ผ ใช ใช หน วยความจาขนาดใหญกวาหนวยความจาจรงได กเพราะอาศยการเกบขอมล(หรอโปรแกรม)ไว
ในหนวยความจารอง ลกษณะการเคลอนยายขอมลจะมการสงไปมาระหวาง
หนวยความจารอง กบหนวยความจาหลก ลกษณะเชนนเรยกวาหนวยความจา 2 ระดบ หมายถงวาข อมลมการขนยายจากหน วยความจาประเภทหนงไปยงหนวยความจาอกประเภทหนง
CPU RAM STORAGE DEVICE
ระดบ 1 ระดบ 2
![Page 44: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/44.jpg)
ลาดบชนของหนวยความจา
มการพฒนาหน วยความจาให เปนลาดบขนมากกวา 1 หรอ 2 ระดบ หน วยความจาแคช(cache memory) จงไดถก
พฒนาขนมาใช งาน แคชมความเรวกวาหน วยความจาแรมหลายเทา แคชจะอยระหวางซพยกบหน วยความจาหลก เมอซพยต องการขอมล ซพยกาหนดตาแหน งของข อมลทต องการดวยแอดเดรส
คาแอดเดรสนจะถกนาไปตรวจสอบในแคชดวยความเรวสง ถ าในแคชมข อมลในตาแหน งทบงโดยแอดเดรสซพยกจะ
ไดรบข อมลในแอดเดรสนนจากแคชทนท แตถ าไมมข อมลนนจะถกส งมาจากหน วยความจาหลกมา
เกบลงในแคชกอนแลวคอยส งไปให ซพย
![Page 45: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/45.jpg)
ลาดบชนของหนวยความจา
การขนย ายข อมลระหวางแคชกบแรม มลกษณะการทางานเหมอนกบการขนยาย
ขอมลระหวางดสกกบแรมในระบบหน วยความจาเสมอน
ความแตกตางกนระหวางแคชกบแรม ในการขนยายข อมลเปนไปโดยวงจรทาง
ฮารดแวร ไมมส วนเกยวของกบโปรแกรมใดๆทงสน(รวมทง OS เองดวย )ซพยบางตวถกสรางขนโดยมแคชตดมาดวย ทาใหการทางานของซพยมความเรวสงขน
![Page 46: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/46.jpg)
ลาดบชนของหนวยความจา
ระบบหน วยความจา 3 ระดบ โดยใช Cache
CPU
Cache
Main memory
Secondary memory
![Page 47: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/47.jpg)
QuizQuiz1. การจดการหน วยความจาเสมอนกบ
หน วยความจาหลกแตกตางกนอยางไร
2. จงเปรยบเทยบการทาหน วยความจาเสมอนระบบหน าและหน วยความจาเสมอนระบบเซกเมนต
3. นกศกษาคดวาทาไมจงต องทาหน วยความจาเสมอน
4. หน วยความจาcache มประโยชน
![Page 48: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/48.jpg)
Quiz5. ระบบการแบงหนวยความจาเสมอนระบบ page กบ
ระบบ Segment แตกตางกนอยางไร
6. การแปลงสงแอดเดรส address Mapping คออะไร
7. การสบเปลยนหนามกแบบอะไรบาง
8. ระบบหนวยความจาแบบ 2 ระดบกบ 3 ระดบแตกตาง
กนอยางไร
9. แอดเดรสเสมอนท 123456 มความหมายอยางไร
10. จงอธบายภาพตอไปน
![Page 49: ch 5 virtualmemory](https://reader031.fdocument.pub/reader031/viewer/2022020502/568c48c01a28ab4916917077/html5/thumbnails/49.jpg)
แอดเดรสเสมอน
333 678
ตารางหนา
000001
333 1234567 0
หนวยความจาจรงตารางหนา
000001
123 1234567 1
โหลดลง
หนวยความจาจรง
000102
9900099000