ch 5 virtualmemory

49
ระบบหน่วยความจําเสมือน ระบบหน่วยความจําเสมือน ระบบหน่วยความจําเสมือน ระบบหน่วยความจําเสมือน (Virtual Memory) (Virtual Memory) บทที É 5

description

 

Transcript of ch 5 virtualmemory

Page 1: ch 5 virtualmemory

ระบบหนวยความจาเสมอนระบบหนวยความจาเสมอนระบบหนวยความจาเสมอนระบบหนวยความจาเสมอน

(Virtual Memory)(Virtual Memory)

บทท 5

Page 2: ch 5 virtualmemory

ประเภทของการจดการหนวยความจา

Page 3: ch 5 virtualmemory

การจดการหนวยความจา

Page 4: ch 5 virtualmemory

ระบบหนวยความจาเสมอน (Virtual Memory)

• การจดการหนวยความจาสามารถแบงออกเปน 2 ประเภทใหญ ๆ

– ระบบหนวยความจาจรง

ขนาดของโปรแกรมจะตองไมใหญกวาขนาดของ

หนวยความจาทมอย ลบดวยขนาดของหนวยความจาทเปน

สวนของ OS

– ระบบหนวยความจาเสมอน

ขนาดของโปรแกรมจะมขนาดเทาใดกได

Page 5: ch 5 virtualmemory

ระบบหนวยความจาเสมอน (Virtual Memory)

หนวยความจาเสมอนมขนาดใหญกวาหนวยความจาจรง

Page 6: ch 5 virtualmemory

แนวคดของหนวยความจาเสมอน

• ผเขยนโปรแกรมหรอผใชจะไมถกจากดในเรองของขนาดของหนวยความจา

อกตอไป

• OS จะจดการใหผใชสามารถใชหนวยความจาไดมากกวาหนวยความจาจรง

ทมอย

• โปรแกรมทงโปรแกรมโดยสวนใหญไมไดถกใชงานพรอมกนทงหมด ซง

การทางานของโปรแกรมจะเรมทางานจากสวนตนโปรแกรม แลวคอย ๆ

เลอนลงมาจนกระทงถงทายโปรแกรม

• ในขณะทโปรแกรมกาลงทางานอยทสวนตนโปรแกรม ทปลายโปรแกรมก

ยงไมถกใชงาน เมอโปรแกรมทางานมาถงสวนทาย ๆ โปรแกรม สวนตน ๆ

โปรแกรมกไมถกใชงาน

Page 7: ch 5 virtualmemory

แนวคดของหนวยความจาเสมอน … ตอ

• ดงนนในชวงทโปรแกรมทางานอยทสวนตน ๆ กไมมความจาเปนตอง

โหลดเอาสวนทาย ๆ โปรแกรมลงไปในหนวยความจาใหเปลองเนอท

• เมอโปรแกรมทางานมาจนถงสวนทยงไมไดโหลดเขาไปในหนวยความจา

OS จะจดการดงเอาสวนนนมาจากหนวยความจารอง

• โดยทอาจจะโหลดไปทบสวนตน ๆ ของโปรแกรมทอยในหนวยความจา

หรอโหลดลงไปในสวนอน ๆ ของหนวยความจากได

• จากหลกการดงกลาวเราจงสามารถรนโปรแกรมทมขนาดใหญกวา

หนวยความจาทมอยได

Page 8: ch 5 virtualmemory

การแปลงแอดเดรส (Address Mapping)

• เนองจากขนาดของโปรแกรมมขนาดใหญกวาขนาดของหนวยความจา

ดงนนจงตองมการอางองแอดเดรสระหวางแอดเดรสของหนวยความจา

จรงกบแอดเดรสของโปรแกรม

• แอดเดรสจรง (Real Address หรอ Physical Address) หมายถง

แอดเดรสในหนวยความจาจรงเทานน

• แอดเดรสเสมอน (Virtual Address หรอ Logical Address) หมายถง

แอดเดรสทโปรแกรมอางถง

• ดงนนจงตองมกลไกการแปลงแอดเดรสจากแอดเดรสเสมอนใหเปน

แอดเดรสจรง ณ.ตาแหนงทโปรแกรมสวนนนถกวางลงไป ซงเราเรยกวา

การแปลงสงแอดเดรส (Address Mapping)

Page 9: ch 5 virtualmemory

การแปลงแอดเดรส (Address Mapping) … ตอ

หนวยความจาเสมอน

ตาแหนงท

ตอเนองกน

หนวยความจาจรง

การแปลงแอดเดรส

Page 10: ch 5 virtualmemory

การแปลงแอดเดรส (Address Mapping) … ตอ

• เทคนคการแปลงแอดเดรสมอยหลายวธ แตวธทนยมใชกนอยางแพรหลาย

คอ dynamic address translation (DAT)

• วธการทจะจดการหนวยความจาจรงใหสามารถทางานโปรแกรมทมขนาด

ใหญ จะใชหลกการแบงโปรแกรมออกเปนสวนยอย ๆ หลาย ๆ สวน

เรยกวาบลอก (Block)

• ขนาดของบลอกแบงออกเปน 2 แบบคอทกบลอกมขนาดเทากน หรอ

บลอกมขนาดไมเทากน ดงนนระบบหนวยความจาเสมอนจงแบงไดเปน 2 แบบ

– หนวยความจาเสมอนระบบหนา (Paging system)

– หนวยความจาเสมอนระบบเซกเมนต (Segment system)

Page 11: ch 5 virtualmemory

การแปลงแอดเดรส (Address Mapping) … ตอ

• ระบบหนวยความจาเสมอนจงแบงไดเปน 2 แบบ

– หนวยความจาเสมอนระบบหนา (Paging system)

– หนวยความจาเสมอนระบบเซกเมนต (Segment system)

Page 12: ch 5 virtualmemory

การแปลงสงแอดเดรส

1. การแปลงสงแบบตรง (direct mapping)

2. การแปลงสงแบบสาระ(associative mapping)

3. การแปลงสงแบบผสมระหวางสาระและแบบตรง combined associative/direct mapping

Page 13: ch 5 virtualmemory

หนวยความจาเสมอนระบบหนา (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

หนวยความจาเสมอนระบบหนา (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

หนวยความจาเสมอนระบบหนา (Paging system) … ตอ

• จากรปเราสามารถแบงแอดเดรสเสมอนออกเปน 2 สวน

– สวนท 1 จะเปนคาทบงบอกหมายเลขหนา

– สวนท 2 จะเปนคาทบงบอกคาแอดเดรสภายในหนานน ๆ ซงมชอ

เรยกวาดสเพลซเมนต (Displacement)

• ตวอยางเชน แอดเดรสเสมอนท 243765 มความหมายวาอยใน

หนาท 243 และมดสเพลสเมนตเปน 765

หมายเลขหนา ด◌สเพลซเมนต

แอดเดรสเสมอน

Page 16: ch 5 virtualmemory

หนวยความจาเสมอนระบบหนา (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

หนวยความจาเสมอนระบบหนา(Paging system)… ตอ

• โปรแกรมของผใชไมวาจะมขนาดใหญเทาใด จะตองถกเกบอยใน

หนวยความจารอง ซงโดยสวนมากไดแก ดสก เนองจากมความจสง

• เมอผใชส งรนโปรแกรม OS จะโหลดเอาโปรแกรมจากดสกเขาไปใน

หนวยความจาครงละ 1 หนา นนคอ 1 หนาในโปรแกรมกจะเขาไป

ใชเนอทในหนวยความจา 1 หนาเชนกน

• เมอโปรแกรมหนงครอบครองหนาใดในหนวยความจาแลว โปรแกรมอน

จะใชหนานนอกไมได

• โปรแกรมจะครอบครองหนวยความจาจรงเปนจานวนเตมของหนา

• ดงนนตองมวธการแปลงแอดเดรสจากแอดเดรสเสมอนเปนแอดเดรสจรง

Page 18: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา

• OS จะสรางตารางไว สาหรบโปรเซส คอ ตารางหน า (Page table)

• สมมตวาหน วยความจาเสมอนมขนาด 1000 หน า และหน วยความจาจรงมขนาด 100 หน า

• ตารางหน ากจะมขนาด 1000 ช อง ไดแกช องท 000-999 – ช องท 000 สาหรบหน าท 000– ช องท001 สาหรบหน าท001

• ในตารางหน าจะม3 คอลมภ

Page 19: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา … ตอ

หมายเลขหนา

Page Table

001002003

998999

แอดเดรสในดสก 0/1 แอดเดรสในหนวยความจาจรง

Page 20: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา … ตอ

• คอลมภท 1 จะบอกแอดเดรสของหน านน ๆ ทอยในดสกเพอทจะไดรวาหน าตาง ๆ ของโปรแกรมเกบไว ทหน าใดของดสก

• คอลมภท 2 จะบอกวาหน านน ๆ อยในหน วยความจาจรงหรอไม– ถาคาเปน 0 หมายถง หน านนไมไดอยใน

หน วยความจาจรง (อยในหน วยความจาสารอง)

– ถาคาเปน 1 หมายถง หน านนอยในหน วยความจาจรง

• คอลมภท 3 จะบอกถงแอดเดรสเรมต น

Page 21: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา … ตอ

ถ าต องการทราบวาแอดเดรสเสมอน 123983 ไปอย ณ. ตาแหน งใดในหน วยความจาจรง

1. OS จะนาเอาแอดเดรสเสมอนมาหาคาหมายเลขหน าและดสเพลซเมนต ในกรณน หมายเลขหน าคอ 123 และดสเพลซเมนตคอ 983

2. OS จะตรวจสอบทตารางหน าในช องท 123

3. อานคาคอลมภท 2 ในตารางหน าช องท 123 วามคา 1 หรอ 0 ในกรณนมคาเปน

Page 22: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา … ตอ

ถ าตองการทราบวาแอดเดรสเสมอน 123983 ไปอย ณ. ตาแหน งใดในหน วยความจาจรง

4. OS จะอานคาในคอลมภท 3 ของตารางหน าเพอหาแอดเดรสเรมตนของหน าในหน วยความจาจรง ซงคาคอลมภ 3 คอ 54000

5. นาเอาคาในคอลมภท 3 มารวมกบดสเพรสเมนต จะไดแอดเดรสในหน วยความจาจรงทตรงกบแอดเดรสเสมอน (ซงคาคอลมภท 3 คอ 54000 คาดสเพรสเมนตคอ 983 คาทไดคอ 54000+983=54983

6. ดงนน แอดเดรสเสมอน 123983 จะอยท หน า 54 ของหน วยความจาจรง และม

Page 23: ch 5 virtualmemory
Page 24: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา … ตอ

กรณข อมลไมไดอยในหน วยความจาจรง (อยในหน วยความจาสารอง)

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

การแปลงแอดเดรสในระบบหนา … ตอ

กรณขอมลไมไดอยในหนวยความจาจรง (อยในหนวยความจาสารอง)

5. นาขอมลทอานมาจากดสกไปวางไวในหนวยความจาจรง

6. OS จะทาการแกไขขอมลในตารางหนาชองท 123 โดยเปลยนคาคอลมภท

2 เปน 1 7. ใสคาหนาทหามาไดของหนวยความจาจรงบวกกบตาแหนงเรมตน (000) ของ

ด◌สเพรสเมนตลงในคอลมภท 3 ของตารางหนา (คาแอดเดรสจรง 03983 (03000+983) ซงตรงกบแอดเดรสเสมอน 123983

Page 26: ch 5 virtualmemory

แอดเดรสเสมอน

123 983

ตารางหนา

000001

123 5146789 0

หนวยความจาจรงตารางหนา

000001

123 5146789 1

ไปอานขอมลในแอดเดรส

5146789 ในดสก

โหลดลง

หนวยความจาจรง

000102

0300003000

คาแอดเดรสจรง 03983 (03000+983) ซงตรงกบแอดเดรสเสมอน 123983

Page 27: ch 5 virtualmemory

การแปลงแอดเดรสในระบบหนา … ตอ

• กรณถาไมมหนาวางในหนวยความจาจรง OS ตองเลอกเอาหนา

หนงออกจากหนวยความจาจรง

• หนาใดจะถกเลอกออก OS จะมวธการทเรยกวา การสบเปลยน

หนา (Page Replacement)

• หนาทถกเลอกออก OS จะทาการบนทกขอมลและสถานะปจจบน

ของหนานนกลบลงในดสก ณ.ตาแหนงแอดเดรสของดสกตาม

ตารางหนา จากนนจงโหลดหนาใหมทบลงไป

• แกไขขอมลในตารางหนาของทงของหนาทถกเขยนทบและหนาท

โหลดเขาไปใหม

Page 28: ch 5 virtualmemory

การสบเปลยนหน า (Page Replacement)

เมอเกดความผดพรองของหน าในระบบหน า และหน วยความจาไมมหน าใดวางอยเลยกอนท OS จะโหลดเอาหน าใหมเขามา

ในหน วยความจานน OS ต องตดสนใจกอนวาควรจะเลอกหน าใดเพอทจะวางหน าใหมทบลงไป สงท OS ใช ในการตดสนใจเลอกหน า

เรยกวา การสบเปลยนหน า Page Replacement หรอยทธวธการแทนท(replacement strategy)

Page 29: ch 5 virtualmemory

การสบเปลยนหนา (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

การแปลงแอดเดรสในระบบ Segment

หมายเลขหน าจากแอดเดรสเสมอนถกส งเขาไปตรวจสอบในตารางทเรยกวา ตารางหน าแบบสาระ(associative page table)พรอมกนทกช อง จะไดคาแอดเดรสเรมต นของหน าใน

หน วยความจาจรงทเกบหน านเอาไวออกมาทนท แอดเดรสทไดนกจะนาไปบวกดสเพลซ

เมนตผลลพธทไดกคอแอดเดรสจรงในหน วยความจา

Page 31: ch 5 virtualmemory

ตารางหน าแบบสาระ(associative page table)

Page 32: ch 5 virtualmemory

การแปลงส งแบบผสมระหวางแบบสาระและแบบตรง (combined

associative/direct mapping)

Page 33: ch 5 virtualmemory

หนวยความจาเสมอนระบบเซกเมนต(Segment System)

• มลกษณะการทางานคลายกบระบบหนา (Page System) ตางกน

ตรงทขนาดของบลอกไมจาเปนตองเทากน

• ตารางเซกเมนต (Segment table) จะมคอลมนมากกวาตารางหนา

อย 1 คอลมนใชเกบขนาดของเซกเมนตนนไว เพอให OS ทราบวา

แตละเซกเมนตมขนาดเทาใด

• การอานหรอเขยนขอมลจากหนวยความจารองและการหาเนอทใน

หนวยความจาจรงจะกระทาตามขนาดของเซกเมนต เชนถาเซกเมนต

มขนาด 5 Kbytes การโหลดจากดสกตองโหลดขอมลขนมา 5 Kbytes ในขณะเดยวกนกตองหาเนอทวางในหนวยความจาทมขนาด

5 Kbytes ดวยเชนกน

Page 34: ch 5 virtualmemory

หนวยความจาเสมอนระบบเซกเมนต(Segment System)…ตอ

หมายเลขหนา

Segment Table

001002003

998999

แอดเดรสในดสก 0/1 แอดเดรสในหนวยความจาจรงขนาดเซกเมนต

Page 35: ch 5 virtualmemory

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

• ระบบจะแบงหนวยความจาออกเปนหนาทมขนาดเทากน

• ในโปรแกรมของผใช จะถกแบงออกเปนเซกเมนต

• ภายในเซกเมนตจะถกแบงออกเปนหลายๆหนา

• ดงนนขนาดของเซกเมนตจะเปนจานวนเทาของหนา

• แตละเซกเมนตของโปรแกรมไมจาเปนตองอยเรยงกนในหนวยความจา

• แตละหนาในเซกเมนตเดยวกนกไมจาเปนตองอยเรยงตดกนใน

หนวยความจาจรง

Page 36: ch 5 virtualmemory

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

• การผสมเอาระบบหนาและเซกเมนตเขาดวยกนทาใหประสทธภาพ

การทางานของระบบดขน

• ระบบผสมน แอดเดรสเสมอนจะแบงออกเปน 3 สวน คอ หมายเลข

หนาเซกเมนต หมายเลขหนา และดสเพลซเมนต

หมายเลขเซกเมนต หมายเลขหนา ดสเพลซเมนต

Page 37: ch 5 virtualmemory

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

นาหมายเลขเซกเมนต (S)ของแอดเดรสเสมอนไปหาแอดเดรสของตารางหน าทเกบอยในตารางเซกเมนต เมอทราบวาตารางหน าอยทใดใน

หน วยความจาแลวใช หมายเลขหน า P เพอหาแอดเดรสของ

หน าP’ในหน วยความจา นาคาแอดเดรสนบวกกบดสเพลซเมนตก

จะไดแอดเดรสจรงในหน วยความจา

Page 38: ch 5 virtualmemory

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

Page 39: ch 5 virtualmemory

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

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

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

5. ขนแรกอานคาทเกบไว ในช อง 1 ของตารางเซกเมนต ไดคา 900 หมายความวาตารางหน าของเซกเมนต 1 อยทแอดเดรส 900

6. ตอมาตรวจสอบคาในช องท 4 ของตารางหน าทแอดเดรส 900 เพอหาดวาหน า 4 ของเซกเมนต 1 เกบอยทใดในหน วยความจา

7. เมอไดคาแอดเดรสหน าในหน วยความจาแลว (500)กนาไปบวกกบดสเพลซเมนตกจะไดคาแอดเดรสจรงในหน วยความจา คอ 590

Page 41: ch 5 virtualmemory

หนวยความจาเสมอนระบบผสมหนาและเซกเมนต

Page 42: ch 5 virtualmemory

ยทธวธการเฟตซ

ยทธวธการเฟตซ (Fetch Strategy) หมายถงการโหลดหนาหรอ

เซกเมนตจากดสกเขาไปในหนวยความจา แบงออกไดเปน 2 วธ คอ

การเฟตซแบบตองการ (demand fetch) OS จะ

โหลดเฉพาะหนาหรอเซกเมนต ทตองการใชเทานนเขาไปใน

หนวยความจา

การเฟตซแบบคาดเดา (anticipate fetch) จะมการคาดเดาวาหนาหรอ เซกเมนตไหนจะถกใชเปนหนาหรอเซกเมนตตอไป

และจะโหลดหนาหรอเซกเมนตนนเขาไปไวในหนวยความจา

ลวงหนา (กอนเกดการใชงานจรง)ทาใหโปรแกรมทางานไดเรวขน

Page 43: ch 5 virtualmemory

ลาดบชนของหนวยความจา

ระบบหนวยความจาเสมอน สามารถทาให ผ ใช ใช หน วยความจาขนาดใหญกวาหนวยความจาจรงได กเพราะอาศยการเกบขอมล(หรอโปรแกรม)ไว

ในหนวยความจารอง ลกษณะการเคลอนยายขอมลจะมการสงไปมาระหวาง

หนวยความจารอง กบหนวยความจาหลก ลกษณะเชนนเรยกวาหนวยความจา 2 ระดบ หมายถงวาข อมลมการขนยายจากหน วยความจาประเภทหนงไปยงหนวยความจาอกประเภทหนง

CPU RAM STORAGE DEVICE

ระดบ 1 ระดบ 2

Page 44: ch 5 virtualmemory

ลาดบชนของหนวยความจา

มการพฒนาหน วยความจาให เปนลาดบขนมากกวา 1 หรอ 2 ระดบ หน วยความจาแคช(cache memory) จงไดถก

พฒนาขนมาใช งาน แคชมความเรวกวาหน วยความจาแรมหลายเทา แคชจะอยระหวางซพยกบหน วยความจาหลก เมอซพยต องการขอมล ซพยกาหนดตาแหน งของข อมลทต องการดวยแอดเดรส

คาแอดเดรสนจะถกนาไปตรวจสอบในแคชดวยความเรวสง ถ าในแคชมข อมลในตาแหน งทบงโดยแอดเดรสซพยกจะ

ไดรบข อมลในแอดเดรสนนจากแคชทนท แตถ าไมมข อมลนนจะถกส งมาจากหน วยความจาหลกมา

เกบลงในแคชกอนแลวคอยส งไปให ซพย

Page 45: ch 5 virtualmemory

ลาดบชนของหนวยความจา

การขนย ายข อมลระหวางแคชกบแรม มลกษณะการทางานเหมอนกบการขนยาย

ขอมลระหวางดสกกบแรมในระบบหน วยความจาเสมอน

ความแตกตางกนระหวางแคชกบแรม ในการขนยายข อมลเปนไปโดยวงจรทาง

ฮารดแวร ไมมส วนเกยวของกบโปรแกรมใดๆทงสน(รวมทง OS เองดวย )ซพยบางตวถกสรางขนโดยมแคชตดมาดวย ทาใหการทางานของซพยมความเรวสงขน

Page 46: ch 5 virtualmemory

ลาดบชนของหนวยความจา

ระบบหน วยความจา 3 ระดบ โดยใช Cache

CPU

Cache

Main memory

Secondary memory

Page 47: ch 5 virtualmemory

QuizQuiz1. การจดการหน วยความจาเสมอนกบ

หน วยความจาหลกแตกตางกนอยางไร

2. จงเปรยบเทยบการทาหน วยความจาเสมอนระบบหน าและหน วยความจาเสมอนระบบเซกเมนต

3. นกศกษาคดวาทาไมจงต องทาหน วยความจาเสมอน

4. หน วยความจาcache มประโยชน

Page 48: ch 5 virtualmemory

Quiz5. ระบบการแบงหนวยความจาเสมอนระบบ page กบ

ระบบ Segment แตกตางกนอยางไร

6. การแปลงสงแอดเดรส address Mapping คออะไร

7. การสบเปลยนหนามกแบบอะไรบาง

8. ระบบหนวยความจาแบบ 2 ระดบกบ 3 ระดบแตกตาง

กนอยางไร

9. แอดเดรสเสมอนท 123456 มความหมายอยางไร

10. จงอธบายภาพตอไปน

Page 49: ch 5 virtualmemory

แอดเดรสเสมอน

333 678

ตารางหนา

000001

333 1234567 0

หนวยความจาจรงตารางหนา

000001

123 1234567 1

โหลดลง

หนวยความจาจรง

000102

9900099000