77
By Juthawut Chantharamalee Operating System 2 Suan Dusit Rajabhat University (Computer Science)

Operating System 2

Embed Size (px)

DESCRIPTION

Operating System 2. By Juthawut Chantharamalee. Suan Dusit Rajabhat University (Computer Science). บทที่ 2 การจัดการหน่วยความจำ (Memory Management). บทที่ 2. Suan Dusit Rajabhat University (Computer Science). การจัดการหน่วยความจำ ( Memory Management ). - PowerPoint PPT Presentation

Citation preview

Page 1: Operating System 2

By Juthawut Chantharamalee

Operating System 2

Suan Dusit Rajabhat University (Computer Science)

Page 2: Operating System 2

บทท 2 การจดการหนวยความจำา 

(Memory Management)

บทท 2

Suan Dusit Rajabhat University (Computer Science)

Page 3: Operating System 2

การจดการหนวยความจำา (Memory Management )หนวยความจำาเปนสวนทสำาคญทสดในระบบคอมพวเตอร ถอ

เปนศนยกลางใหการดำาเนนการดานตางๆ ในระบบคอมพวเตอรเปนไปอยางราบรนและมประสทธภาพสงสด โดยภายในหนวยความจำาจะมการทำางานหลายสวน เชน การทำางานของโปรแกรมจำานวนมาก ซงตองมการแบงพนทการใชงานและวธการจดการดานตางๆ ซงหนวยความจำาทใชในการจดเกบแบงออกเปน 2 สวน ไดแก 1.หนวยความจำาหลก (Main Memory ) 2.หนวยความจำาเสมอน (Virtual Memory) โดยแตละวธในการจดเกบขอมลทงสองสวนมขอดและขอเสยตางกนขนอยกบซอฟตแวรและฮารดแวรทเลอกใชวาสอดคลองและสนบสนนการทำางานและวธการทจดเกบในหนวยความจำาทเลอกใชมากนอยเพยงใด ดงรปท 2.1

3 Suan Dusit Rajabhat University (Computer Science)

Page 4: Operating System 2

หนวยความจำาหลก (Main Memory) ประกอบไปดวยอารเรยขนาดใหญ (large array )

ซงภายในประกอบไปเวรด (words ) และไบต (bytes ) ซงแตละทจะมเลขตำาแหนง (address )เปนของตวเอง นอกจากนหนวยความจำาหลกยงทำาหนาทเกบชนดกระบวนการในการประมวลผลคำาสง (a typical instruction-execution cycle )เพอใหหนวยประมวลผลกลาง (Central Processing Unit: CPU) นำาไปใชในการประมวลแลวจงสงผลลพธของคำาสงนนๆ กลบมาจดเกบกลบไวในหนวยความจำาหลกอกท

4 Suan Dusit Rajabhat University (Computer Science)

Page 5: Operating System 2

รปท 2.1.แสดงกระบวนการทำางานของหนวยความจำาหลก (Main Memory)

5 Suan Dusit Rajabhat University (Computer Science)

Page 6: Operating System 2

หนวยความจำาเสมอน (Virtual Memory) เปนเทคนคทอนญาตใหโปรเซส (Process )

สามารถประมวลผลไดนอกหนวยความจำาหลกโดยไมตองคำานงถงขนาดพนทใชในการประมวลผลวาเพยงพอกบขนาดของโปรแกรมหรอไม นอกจากนยงงายตอการแชรไฟล (Share files ) พนทวาง (Address Space ) และเพมประสทธภาพใหโปรเซสทำางานไดเรวขน เพราะไมตองคอยตรวจสอบขนาดของหนวยความจำาทางกายภาพ (Physical Memory)

6 Suan Dusit Rajabhat University (Computer Science)

Page 7: Operating System 2

รปท 22. แสดงความสมพนธระหวางหนวยความเสมอน (Virtual Memory ) และหนวยความจำาทางกายภาพ (Physical Memory)

7 Suan Dusit Rajabhat University (Computer Science)

Page 8: Operating System 2

การเชอมโยงตำาแหนง (Address Binding )โดยทวไปโปรเซสทจะถกนำาไปประมวลผลจะขนอยกบการ

จดการหนวยความจำาทเลอกใช โปรเซสอาจจะถกเคลอนยายกลบไปกลบมาระหวางดสกและหนวยความจำากอนทมนจะถกประมวลผล โดยระบบปฏบตการจะมการเกบโปรเซสทรอประมวลผลตามลำาดบคว (input queue ) ของโปรเซสทจะนำาเขามาประมวลผลในหนวยความจำารวมทงยงเชอมโยงกบคาเรมตนของตำาแหนง ระบบคอมพวเตอรมกเรมตนคาตำาแหนงเชอมโยงทคา 00000 อกยงแบงคาทเชอมโยงตำาแหนง ไดเปน คาจรง (Absolute address ) ของโปรเซสทอยในหนวยความจำา และคาตำาแหนงทสมพนธ (Relative address ) หรอชดคำาสงตางๆ ทไดรบหลงจากการคอมไฟล

8 Suan Dusit Rajabhat University (Computer Science)

Page 9: Operating System 2

การจำาแนกการเชอมโยงของคำาสงและตำาแหนงของขอมลในหนวยความจำาสามารถแบงแตละขนตอนตามชวงเวลาไดดงน 1.ชวงเวลาคอมไฟล (Compile time ) คอ ชวง

เวลาทคำาสงหรอขอมลถกแปลคำาสงโดยการคอมไฟลโดยตวคอมไฟเลอร (Compiler ) โดยตวคอมไฟเลอรจะคนหาตำาแหนงจรง (Absolute Code )ในหนวยความจำาเมอพบแลวจะสรางโคดทำาใหระบบปฏบตการสามารถประมวลผลคำาสงหรอขอมลนนไดทนท แตหากตำาแหนงจรงถกเปลยนแปลง ตวคอมไฟเลอรกจะทำาการรคอมไฟล (Recompile ) โคดคำาสงหรอขอมลนนใหมทกครง

9 Suan Dusit Rajabhat University (Computer Science)

Page 10: Operating System 2

การจำาแนกการเชอมโยงของคำาสงและตำาแหนงของขอมลในหนวยความจำา สามารถแบงแตละขนตอนตามชวงเวลาไดดงน 2.ชวงเวลาโหลด (Load time ) ชวงเวลาทคำาสงหรอ

ขอมลถกโหลดเขาสหนวยความจำาโดยลำาดบแรกตวคอมไฟเลอรจะสรางโคดทสามารถประมวลผลไดทนท (Relocation code)ขนมากอน หลงจากคำาสงหรอขอมลถกโหลดเขาสหนวยความจำาแลวตวคอมไฟเลอรจะทำาการแปลตำาแหนงทโหลดเขามาใหเปนตำาแหนงจรง (Absolute Code ) เพอใหระบบปฏบตการสามารถประมวลผลคำาสงหรอขอมลนนไดโดยไมตองเสยเวลาในการคอมไฟลใหมทกครง แตจะเสยเวลาเฉพาะตอนโหลดคำาสงหรอขอมลนนเขามาในหนวยความจำา

10 Suan Dusit Rajabhat University (Computer Science)

Page 11: Operating System 2

การจำาแนกการเชอมโยงของคำาสงและตำาแหนงของขอมลในหนวยความจำา สามารถแบงแตละขนตอนตามชวงเวลาไดดงน 3.ชวงเวลาประมวลผล (Execution time ) ชวง

เวลาทคำาสงหรอขอมลถกประมวลผล โดยตวคอมไฟเลอรจะทำาการเชอมโยงตำาแหนงและแปลโคดคำาสงหรอขอมลของตำาแหนงนนๆ เขาไปเกบไวในหนวยความจำาขณะทระบบปฏบตการกำาลงประมวลผล (Run time ) ทำาใหระบบปฏบตการตองเสยเวลาในการแปลตำาแหนงคำาสงหรอขอมลตางๆ กอนถกนำามาเขาสกระบวนการประมวลผลทกครง

11 Suan Dusit Rajabhat University (Computer Science)

Page 12: Operating System 2

รปท 22. แสดงชวงเวลาเชอมโยงตำาแหนง (Address Binding)

12 Suan Dusit Rajabhat University (Computer Science)

Page 13: Operating System 2

การเชอมโยงระหวางพนททางกายภาพกบพนททางตรรกะ(Logical- Versus Physical-Address Space )จะมการอางองถงตำาแหนงทเกยวของอย 2 ประเภทคอ

1.ตำาแหนงพนททางตรรกะ (Logical Address Space ) หรอเรยกอกชอหนงวา ตำาแหนงเสมอน (Virtual Address ) ซงถกสรางขน (Generate ) โดยหนวยประมวลผลกลาง (CPU ) เพอใชในการแลกเปลยนขอมล โดยกลมของตำาแหนงพนททางตรรกะ (Logical Address Space) ทงหมดถกสรางโดยโปรแกรม 2.ตำาแหนงพนททางกายภาพ (Physical Address Space ) คอตำาแหนงทอยในหนวยความจำาหลก (Memory Unit ) และทำางานโดยตอบสนอง (Corresponding ) กบตำาแหนงทางตรระกะ (Logical Address ) เสมอ

13 Suan Dusit Rajabhat University (Computer Science)

Page 14: Operating System 2

รปท 2.3 ตวอยางของการทำางานของหนวยจดการหนวยความจำา (Memory Management Unit : MMU)

14 Suan Dusit Rajabhat University (Computer Science)

Page 15: Operating System 2

การโหลดแบบพลวต (Dynamic Loading )เนองจากพนททใชในการประมวลผลในหนวยความจำาทาง

กายภาพ (Physical Memory ) มการจำากดขนาดขอมล ดงนนโปรแกรมคำาสงและขอมลทงหมดของกระบวนการ (Process ) จะตองมขนาดเลกกวาหนวยความจำาทางกายภาพ (Physical Memory ) ในขณะทโหลดขอมลทงหมดเขาสพนทวางในหนวยความจำาในแตละครงจะตองมการตรวจสอบขนาดของขอมล เพอจะชวยใหการประมวลผลโปรแกรมคำาสง และการโหลดขอมลเขาหนวยความจำาทำาไดรวดเรวขน ลกษณะการทำางานดงกลาวนเรยกวา การโหลดแบบพลวต (Dynamic Loading ) ซงวธการทำางานจะไมโหลดโปรแกรมยอย (Routine ) จนกวาจะมการเรยกใชงาน (Call ) ทำาใหไมสนเปลองเนอทในหนวยความจำา

15 Suan Dusit Rajabhat University (Computer Science)

Page 16: Operating System 2

การโหลดแบบพลวต (Dynamic Loading )ทกครงทโปรแกรมหลก (Main Program ) ถกโหลดเขาส

หนวยความจำาเพอทำาการประมวลผล และมการเรยกใชโปรแกรมยอย (Routine ) จะมการตรวจสอบโปรแกรมแกรมยอยแรกกอน (Routine First ) ควบคกบการโหลดโปรแกรมยอยตวอนไปดวย กรณทไมมการโหลดโปรแกรมยอย ตวเชอมโยงการยายตำาแหนง (Relocation linking Loader ) จะทำาการโหลดโปรแกรมยอยไปเกบไวในตารางเพอระบตำาแหนง (Address Table ) ซงตวโปรแกรมจะทำาการปรบเปลยนตำาแหนงทมผลกระทบกบการเคลอนยายตำาแหนงโดยไมตองอาศยระบบปฏบตในการจดการ ซงตวโปรแกรมจะเปนตวจดการเหตการณดงกลาวเอง

16 Suan Dusit Rajabhat University (Computer Science)

Page 17: Operating System 2

การใชไลบรารรวมกน และการเชอมโยงแบบพลวต (Dynamic Linking and Shared Libraries )วธการเชอมโยงแบบพลวต (Dynamic Linking ) มความ

คลายกนกบการโหลดแบบพลวต (Dynamic Loading) ตางกนตรงเวลาทใชในการเชอมโยงทมากกวาเมอระบบตองการเรยกใชงานโปรแกรมยอย (Subroutine Libraries) โดยใชชดคำาสงขนาดเลกทชอวา สตบ (Stub ) โดยทชดคำาสงนเมอถกประมวลผล กจะทำาการตรวจสอบวามโปรแกรมยอยทตองการใชงานอยในหนวยความจำาแลวหรอยง ถาไมมชดคำาสงสตบ (Stub ) นกจะทำาการโหลดโปรแกรมยอยใหมเขาสหนวยความจำาทนทและจะแทนทคาตำาแนงโปรแกรมยอยใหมทบตำาแหนงโปรแกรมยอยเดมทนทโดยเรยกกระบวนการทำางานนวา วธการเชอมโยงแบบพลวต (Dynamic Linking)

17 Suan Dusit Rajabhat University (Computer Science)

Page 18: Operating System 2

การใชไลบรารรวมกน และการเชอมโยงแบบพลวต (Dynamic Linking and Shared Libraries )โดยททกๆ โปรเซสจะใชภาษาของไลบรารในการ

ประมวลมลเพยงหนงครงในการทำาสำาเนารหสไลบราร (Library code ) ซงเปนไฟลทมนามสกลเปน .dll โดยการทำางานในการปรบเปลยนไลบราร (Update library ) จากไลบรารรนเกา (Old Library )เปนไลบรารรนใหม (New Library ) จะมการสรางการเชอมโยงไลบรารแบบอตโนมต เพอใหระบบสามารถเรยกใชงานไฟล .dll นจากโปรแกรมยอยได โดยลกษณะการใชไฟลรวมกน (Shared Libraries)

18 Suan Dusit Rajabhat University (Computer Science)

Page 19: Operating System 2

การแบงสวน (Overlay)เปนวธนใชในกรณทโปรเซสมขนาดใหญกวาหนวย

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

19 Suan Dusit Rajabhat University (Computer Science)

Page 20: Operating System 2

ตวอยาง (Example)พจารณาจากตวเอสเซมเบอรในการจดการนำาเขาการทำางานของ

2 โปรเซส โดยทโปรเซส 1 ตองการทจะใชตารางสญลกษณ (Symbol Table ) โปรเซส 2 ตองการทจะสรางคำาสงภาษาเครอง (Machine-language code ) เราอาจจะตองทำาการแบงพารทชนใหตวเอสเซมเบอรในการจดการการนำาเขาทำางานของคำาสงในโปรเซส 1 และโปรเซส 1 และการใชงานตารางสญลกษณ (Symbol Table ) และโปรแกรมยอยปกต (Common Routine )ในหนวยความจำารวมกนทงสองโปรเซส โดยกำาหนดขนาดการใชงานของแตละคำาสงไดดงน การนำาเขาครงท 1 (Pass 1) 70 KB การนำาเขาครงท 2 (Pass 2 ) 80 KB ตารางสญลกษณ (Symbol Table ) 20 KB โปรแกรมยอยปกต (Common Routine ) 30 KB

20 Suan Dusit Rajabhat University (Computer Science)

Page 21: Operating System 2

ตวอยาง (Example)วธการแกปญหา เราจะแบงออกเปนสองสวน (Two Overlays )

คอ Overlay A ทำางานกบตารางสญลกษณ (Symbol Table )กบตารางสญลกษณ (Symbol Table ) โปรแกรมยอยปกต (Common Routine ) และการนำาเขาครงท 1 (Pass 1) สวน Overlay B กทำางาน (Symbol Table ) โปรแกรมยอยปกต (Common Routine ) และการนำาเขาครงท 2 (Pass 2 ) ระบบจะทำาการเพมตวขบในการแบงสวน (Overlay Driver ) ขนาด

10 KB เพอโหลดคำาสงใน Overlay A ทตองการใชงานหนวยความจำา 120KB จนทำางานเสรจ แลวจงกระโดดกลบไปทตวขบในการแบงสวนอกครงเพอโหลดคำาสงใน Overlay B ทตองการใชงานหนวยความจำา 130KB โดยเขาไปแทนท (Overwriting )Overlay A แสดงไดดงรปท 24. ซงทำาใหตวเอสเซมเบอรสามารถทจะประมวลบนพนทหนวยความจำาขนาด 150KB ได

21 Suan Dusit Rajabhat University (Computer Science)

Page 22: Operating System 2

รปท 2.4 การแบงสวนหนวยความจำาสำาหรบการนำาเขาของโปรเซสครงท - 1 2 ของตวเอสเซมเบอร (Overlays for two-pass assembler)

22 Suan Dusit Rajabhat University (Computer Science)

Page 23: Operating System 2

กลยทยในการจดการหนวยความจำา (Memory Strategy)การจดการหนวยความจำาถอวาเปนหนาทหนงของระบบ

ปฏบตการ เพอจดสรรพนทหนวยความจำาใหกบโปรแกรมหรอขอมลตางๆ ไดอยางถกตองเหมาะสม แบงออกเปน 3 วธ ดงน1.กลยทธการโหลด (Fetch Strategy ) เปนกลยทธทใชในการโหลดคำาสงหรอขอมลตางๆ จากหนวยเกบขอมลสำารองเขาสหนวยความจำาหลก แบงออกเปน 2 วธ 1.1 Demand Fetch Strategy คอ วธการโหลดเฉพาะคำาสงหรอขอมลตางๆ ทตองการใชงานเขาสหนวยความจำาหลก 1.2 Anticipate Fetch Strategy คอ วธการคาดเดาวาคำาสงหรอขอมลใดจะถกโหลดเขาสหนวยความจำาหลกกอนทจะถกใชงานจรง

23 Suan Dusit Rajabhat University (Computer Science)

Page 24: Operating System 2

กลยทยในการจดการหนวยความจำา (Memory Strategy)2. กลยทธการวาง (Placement Strategy ) เปนกลยทธทใชในการจดวางคำาสงหรอขอมลใหมเขาสหนวยความจำาหลกบนพนทวางในหนวยความจำาทเรยกวา “โฮล (Hole)”เพอใหกบโปรแกรมหรอขอมลตางๆ ไวใหเหมาะสมกบขนาดคำาสงหรอขอมลนน3. กลยทธการแทนท (Replacement Strategy ) โดยระบบปฏบตการจะเปนสวนทชวยในการตดสนใจวาจะเลอกวธใดในการแทนทคำาสงขอมลในหนวยความจำาหลก (Main Memory ) ใหเหมาะสมทสดม 5 วธดงน

2.1 วธสม (Random) คอ การสมหาพนทวางในหนวยความจำา โดยคำาสงหรอขอมลมโอกาสถกเลอกมาใชงานเทากน 2.2 วธมากอนไดใชกอน (First-in, First-out : FIFO) คอ คำาสงหรอขอมลใดถกโหลดเขาไปใชงานหนวยความจำาหลกกอนจะถกเลอกออกไปกอน

24 Suan Dusit Rajabhat University (Computer Science)

Page 25: Operating System 2

กลยทยในการจดการหนวยความจำา (Memory Strategy)2.3 NFU (Not Frequency Use) คอ การเลอกคำาสงหรอขอมลทถกใชงานนอยทสดออกไปกอน เนองจากคำาสงหรอขอมลกลมนถกใชงานนอยโอกาสจะถกโหลดเขามาใชงานอกกนอยตามไปดวย ดงนนจงควรนำาออกจากหนวยความจำาหลก 2.4 LRU (Lead Recently Use) คอ วธทเกบเวลาการใชงานหนวยความจำาครงลาสด โดยคำาสงหรอขอมลทไมไดถกนำามาใชงานนานทสดจะถกเลอกออกไปกอน

2.5 NRU (Not Recently Use) คอ วธนแตละคำาสงหรอขอมลจะเพมบตขอมลทเกยวของ 2 บตดวยกนคอ บตอางอง (Reference Bit ) และบตแกไข (Modify Bit ) ซงจะมคาเปน 0 เมอมการเขาถงคำาสงหรอขอมลและจะมคาเปน 1 เมอมการแกไข

25 Suan Dusit Rajabhat University (Computer Science)

Page 26: Operating System 2

การสบเปลยน (Swapping)เปนวธทในการสลบโปรเซสทตองการจะเขาหรอออกเพอประมวลผลในหนวยความจำา โดยหลกการจะตองสลบโปรเซสเกาออกมากอนแลวจงนำาเขาโปรเซสใหมเขาไปใชงานหนวยความจำาโดยนำาเขาไปเกบไวในระบบสนบสนนการจดเกบ (Backing Store ) แสดงไดดงรปท 25. โดยใช Priority-base Scheduling Algorithms ถาโปรเซสใดม Higher-priority process เขามาถงและตองการจะใชบรการหนวยความจำา ตวจดการหนวยความจำาสามารถทจะทำาการสลบเอา Lower-priority process ออกไปกอนเพอใหโปรเซสใดม Higher-priority process ทำางานใหเสรจกอน โปรเซสทม Lower-priority process จงจะสลบกลบมา (Swap back ) เพอทำางานในหนวยความจำาตอไปได

26 Suan Dusit Rajabhat University (Computer Science)

Page 27: Operating System 2

การสบเปลยน (Swapping)บางครงเราอาจจะเรยกวธการสลบแบบนวา การหมนเขา

(Roll in ) หรอหมนออก (Roll out ) โดยระบบปฏบตการจะเปนสวนจดการเหตการณในการสลบโปรเซสเขา-ออก จากหนวยความจำาดงน

1. กระบวนการ (Process ) ดำาเนนการเสรจสน 2. กระบวนการ (Process ) รองขอการใชงานอปกรณ I/O 3 . กระบวนการ (Process ) หมดเวลาการทำางาน (Quantum Time) ดงนนหลกการสำาคญในการสบเปลยน (Swapping ) จะตองคำานงถงระยะเวลาในการเคลอนยาย (Transfer ) กระบวนการซงเปนสดสวนโดยตรงกบจำานวนขนาดหรอพนทในหนวยความจำาทมอยดวย

27 Suan Dusit Rajabhat University (Computer Science)

Page 28: Operating System 2

รปท 2,5 การสบเปลยนระหวาง 2 โปรเซส ในการใชงานพนทดสกในการจดเกบ (Swapping of two

processes using a disk as a backing store)28 Suan Dusit Rajabhat University (Computer Science)

Page 29: Operating System 2

การจดสรรหนวยความจำาทตอเนองกน (Continues Memory Allocation)หนวยความจำาหลกตองจำาเปนจะตองอำานวยความสะดวกให

กบระบบปฏบตการและความหลากของผใชงานโปรเซส ดงนนในแตละโปรเซส (Process ) จงมความตองการใชพนทในหนวยความจำาอยางตอเนอง จงเปนหนาทของระบบปฏบตการในการจดสรรพนทหนวยความจำาในหนวยความจำาใหมปะสทธภาพสงสด ซงโดยทวไปแลวหนวยความจำาหลก (Main Memory ) จะถกแบงออกเปน 2 สวน คอ หนวยความจำาระดบบน (High Memory) ซงเปนสวนทใชตดตอกบสวนของผใช (User ) และหนวยความจำาระดบลาง (Low Memory) ซงเปนสวนของระบบปฏบตการ (Operating System ) ซงแสดงไดดงรปท 26

29 Suan Dusit Rajabhat University (Computer Science)

Page 30: Operating System 2

รปท 2.6 การแบงระดบของหนวยความจำาหลก (The Level of Main Memory )

30 Suan Dusit Rajabhat University (Computer Science)

Page 31: Operating System 2

การจดสรรหนวยความจำาทตอเนองกน (Continues Memory Allocation)นอกจากนการจดสรรพนทในหนวยความจำาหลก (Main

Memory ) เกยวของกบการปองกน ซงจะตองพจารณาจากผใชงานโปรเซส (User Processes ) และผทเกยวของกบการใชงานโปรเซสอนดวย โดยมการตรวจสอบคาตำาแหนงในรจสเตอร (Register ) ตางๆ เพอปองกนการแกไขคำาสงหรอขอมลในสวนของระบบปฏบตการ (Operating System ) และในสวนของผใช (User ) ทกำาลงทำางานอย เชน 1 . รจสเตอรยายตำาแหนง (Relocation Register ) เปนรจสเตอรทภายในบรรจคาทเลกทสดของตำาแหนงทางกายภาพ (Smallest Physical )

31 Suan Dusit Rajabhat University (Computer Science)

Page 32: Operating System 2

การจดสรรหนวยความจำาทตอเนองกน (Continues Memory Allocation)2 . รจสเตอรขอบเขต (Limit Register ) เปนรจสเตอรท

ภายในบรรจขนาดหรอชวงของตำาแหนงทางตรรกะ (Logical Address ) เชน รจสเตอรยายตำาแหนง (Relocation Register ) = 100040 รจสเตอรขอบเขต (Limit Register ) = 74600 โดย Logical Address < Limit Register ) โดยหนวยจดการหนวยความจำา (Main Memory Unit: MMU ) จะทำาการจบค (Map ) ตำาแหนงทางตรรกะ (Logical Address ) แบบพลวต (Dynamically ) โดยการเพมคาลงไปในรจสเตอรยายตำาแหนง (Relocation Register ) แลวสงคาตำาแหนงไปยงหนวยความจำาหลก (Main Memory ) อกท แสดงไดดงรปท 27

32 Suan Dusit Rajabhat University (Computer Science)

Page 33: Operating System 2

รปท 2.7 แสดงภาพฮารดแวรทสนบสนนการทำางานของรจสเตอรยายตำาแหนงรจสเตอรขอบเขต

(Hardware Support for relocation and limit registers )

33 Suan Dusit Rajabhat University (Computer Science)

Page 34: Operating System 2

การจดสรรพนทในหนวยความจำาแบงออกเปน 2 รปแบบ ดงน 1 .การจดสรรหนวยความจำาแบบพนทเดยว (Single-

partition Allocation) วธนหนวยความจำาจะไมถกแบงพนท โดยโปรเซสในสวนของระบบปฏบตการจะอยในสวนหนวยความจำาระดบลาง (Low Memory ) และสวนของโปรเซสของผใชอยในสวนหนวยความจำาระดบบน (High Memory ) โดยเกยวของกบรจสเตอรยายตำาแหนง (Relocation Register ) ในการแยกโปรเซส (Process )ในสวนของผใชออกจากสวนของระบบปฏบตการและรจสเตอรขอบเขต (Limit Register ) เปนรจสเตอรทใชระบขนาดของคาตำาแหนงทางตรรกะ (Logical Address ) โดยคาตำาแหนงทางตรรกะ (Logical Address ) ตองนอยกวารจสเตอรขอบเขต (Limit Register ) เสมอ

34 Suan Dusit Rajabhat University (Computer Science)

Page 35: Operating System 2

การจดสรรพนทในหนวยความจำาแบงออกเปน 2 รปแบบ ดงน 2.การจดสรรหนวยความจำาแบบหลายพนท (Multiple-

partition Allocation ) วธนหนวยความจำาจะถกแบงตามจำานวน Process มวธการจดสรร 2 รปแบบ ดงน 21 การแบงแบบคงท (Fixed Partition ) โดยการแบงพนทหนวยความจำาอออกเปนหลาย ๆ พารทชน (Partition ) แตละพารทชนมขนาดเทากนและบรรจโปรเซสอยภายในเพยงหนงโปรเซสเทานน โดยทจำานวนพารทชนถกกำาหนดโดยจำานวนโปรเซสทมอยในหนวยความจำา ขอเสยของวธคอ หากโปรเซสทบรรจอยในหนวยความจำามขนาดเลกกวาพารทชนทกำาหนดจะทำาใหเหลอพนทในหนวยความจำา (พารทชนมพนทวางเหลอ ) เรยกพนทวางทเหลอนวา “Internal Fragmentation” กรณทขนาดของโปรเซสมขนาดใหญกวาพารทชนทกำาหนดกจะไมสามารถนำาโปรเซสนนเขาไปใชงานพนทในหนวยความจำาหลกได

35 Suan Dusit Rajabhat University (Computer Science)

Page 36: Operating System 2

การจดสรรพนทในหนวยความจำาแบงออกเปน 2 รปแบบ ดงน 22. การแบงแบบพลวต (Dynamic Partition )

เปนการแบงพนทตามขนาดของโปรเซส โดยการใชพนทวางทางกายภาพทเรยกวา โฮล (Hold ) เมอมโปรเซสตองการใชงานพนทในหนวยความจำา ระบบปฏบตการจำามหนาทในคนหาพนทโฮล (Hold ) ทมขนาดใหญเพยงพอกบโปรเซส แลวจงนำาโปรเซสนนเขาไปใชงานหนวยความจำาและจะทำาการเกบขอมลของโปรเซสอนทยงไมไดนำาเขาไปใชงานหนวยความจำาและพนทวาง (Free Partition Hold )ทยงไมไดถกจดสรรใหกบโปรเซสใดๆ ดวยแถวคอยการทำางาน (Job Queue ) โดยสมพนธกบเวลาทใชงานจรง (Use time ) ของแตโปรเซสดวย แสดงดงรปท 28

36 Suan Dusit Rajabhat University (Computer Science)

Page 37: Operating System 2

รปท 2.8 แสดงการแบงหนวยความจำาแบบพลวต (Dynamic Partition)

37 Suan Dusit Rajabhat University (Computer Science)

Page 38: Operating System 2

ปญหาการจดสรรพนทหนวยความจำาแบบพลวต (Dynamic Storage-allocation Problem )ทพบบอยคอการคนพนทหนวยความจำาใหกบระบบ

เมอโปรเซสไดทำางานเสรจแลวทำาใหเกดพนทวางในหนวยความจำา “โฮล (Hold)” ดงนนเราจงใชวธการวาง (Placement ) เพอใชแกปญหาดงกลาวซงจะทำาใหการจดสรรพนทวางในหนวยความจำาใหเกดประโยชนสงสด ดงน - First fit เปนการเลอกโฮลตวแรก (First Hold ) ทพบกอนและมขนาดใหญเพยงพอกบโปรเซสทจะนำาเขาไปวางในหนวยความจำา ซงเปนวธทใชเวลานอยทสด

38 Suan Dusit Rajabhat University (Computer Science)

Page 39: Operating System 2

ปญหาการจดสรรพนทหนวยความจำาแบบพลวต (Dynamic Storage-allocation Problem )- Best fit เปนการเลอกโฮลทมขนากเลกทสด

(smallest Hold ) เพอใหเหมาะสมทสดกบโปรเซสทจะนำาเขาไปวางในหนวยความจำา ซงตองทำาการคนหาทงรายการทเกบขนาดของโฮล (Hold ) ทวาง ซงเปนวธจดสรรพนทวางในหนวยความจำาใหเกดประโยชนสงสดเพราะเหลอพนทวางโฮลนอยทสด (smallest leftover hold ) แตกเสยเวลาการคนหา - Worst fit เปนการเลอกโฮลขนาดทใหญทสด (Largest Hold ) เพอใหเหมาะสมทสดกบโปรเซสทจะนำาเขาไปวางในหนวยความจำา ซงตองทำาการคนหาทงรายการทเกบขนาดของโฮล (Hold ) ทวาง วธนอาจจะดกวาวธ Best fit เพราะเหลอพนทวางโฮลนอยกวา

39 Suan Dusit Rajabhat University (Computer Science)

Page 40: Operating System 2

รปท 2.9 แสดงการวธการวาง (Placement ) แบบตางๆ40 Suan Dusit Rajabhat University (Computer Science)

Page 41: Operating System 2

วธการจดสรรพนทในหนวยความจำาใหกบแตละโปรเซส 1. การบบอด (Compression ) หรอการจดระเบยบพนท

(Defragmentation ) เปนการจดพนทวางระหวางโปรเซสใหม โดยการสบเปลยนตำาแหนงของโปรเซสตางๆ ในหนวยความจำาใหเรยงตอกน ทำาใหมพนทเพมขนหรอมขนาดใหญขนซงเหมาะกบการจดสรรพนทแบบพลวต (Dynamic Allocation )ระบบปฏบตการจะเปนตวจดการโดยทโปรเซสตางๆ จะถกยายไปยงตำาแหนงตางๆ โดยอตโนมต 2 . อนญาตใหตำาแหนงพนททางตรรกะ (Logical Address )ของโปรเซสทไมไดอยตดกน (Noncontiguous ) โดยทโปรเซสจะถกจดสรรไวบนพนทหนวยความจำาทางกายภาพ (Allocated Physical Memory ) ทใดกไดโดยทกตำาแหนงสามารถใชงานพนทดงกลาวได

41 Suan Dusit Rajabhat University (Computer Science)

Page 42: Operating System 2

การแบงหนา (Paging)การแบงหนา (Paging ) เปนการจดสรรพนทวางบนหนวย

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

1. การจดสรรหนวยความจำาทางกายภาพ (Paging Model of Physical Memory) เปนวธการแบงพนทใหมขนาดคง (Fixed-Size Block ) เรยกพนทสวนนวา เฟรม (Frames ) โดยทขนาดของเพจถกกำาหนดโดยฮารดแวร ขนาดของเพจเปนขนาดยกกำาลง 2 มขนาดอยระหวาง 512 ไบตถง 16 MB ตอเพจ ขนอยกบสถาปตยกรรมของคอมพวเตอร

42 Suan Dusit Rajabhat University (Computer Science)

Page 43: Operating System 2

การแบงหนา (Paging)2. การจดสรรหนวยความจำาทางตรรกะ

(Paging Model of Logical Memory ) เปนวธการแบงพนทแบบบลอค (Block ) เรยกพนทสวนนวา เพจ (Pages ) โดยกำาหนดขนาดเพจเทากบขนาดเฟรม รปท 2.10 แสดงภาพของฮารดแวรซงจะเปนตวจดการแบงหนา ทกๆ ตำาแหนงจะถกจดสรรโดยหนวยประมวลผลกลาง (CPU ) โดยแบงออกเปน สองสวน คอ

43 Suan Dusit Rajabhat University (Computer Science)

Page 44: Operating System 2

การแบงหนา (Paging)2.1 หมายเลขเพจ (Page Number: p ) โดย

หมายเลขเพจจะใชดรรชน (Index) เพอชไปยงตารางเพจ (Page Table ) ซงภายในบรรจตำาแหนงเรมตน (Base Address ) ของแตละเพจในหนวยความจำาทางกายภาพ (Physical Memory)

2.2 ขอบเขตเพจ (Page Offset: d) คอ ตำาแหนงจรงในหนวยความจำา ทนำามารวมกบตำาแหนงเรมตน (Base Address ) ทไดจากตารางเพจ (Page Table ) เพอใชคำานวณหาตำาแหนงของหนวยความจำาทางกายภาพ (Physical Memory)

44 Suan Dusit Rajabhat University (Computer Science)

Page 45: Operating System 2

รปท 2.10 ฮารดแวรการแบงตาราง (Hardware Paging )45 Suan Dusit Rajabhat University (Computer Science)

Page 46: Operating System 2

รปท 2.11 แสดงรปแบบการแบงเพจในหนวยความจำาแบบตรรกะและหนวยความจำาแบบกายภาพ (Paging model of logical and physical memory )

46 Suan Dusit Rajabhat University (Computer Science)

Page 47: Operating System 2

ฮารดแวรกบการสนบสนนการแบงหนา (Hardware Support)การนำาฮารดแวรกบการสนบสนนการจดการตารางเพจ

(Page Table ) ทำาไดหลายทาง ซงการเขถงตำาแหนงในหนวยความจำาแตละครง จะตองมอานขอมลจากหนวยความจำาทางกายภาพ (Physical Memory ) ถงสองครง ครงทหนงจากตารางเพจ (Page Table ) และครงทสองจากตำาแหนงขอมลทางกายภาพ (Physical Address ) ทำาใหเสยเวลาและการเขาถงหนวยความจำาลาชา ดงนนวธมาตรฐานทใชแกปญหาจำาเปนตองใชฮารดแวรขนาดเลกทมความเรว (Hardware Cache ) ในการอานและจดเกบขอมลสง (Fast-Lookup ) ซงเรยกฮารดแวรชนดนวา “Translation Look-aside Buffer (TLB)”

47 Suan Dusit Rajabhat University (Computer Science)

Page 48: Operating System 2

ฮารดแวรกบการสนบสนนการแบงหนา (Hardware Support)ขอมลจะถกอานจากหนวยความจำาทางกายภาพ (Physical

Memory ) เพยงครงเดยว แลวจดเกบลง TLB ซงเปนหนวยความจำาทมความเรวสง (High Speed Memory ) ซงประกอบไปดวยสองสวนดวยกน คอ สวนทหนงเกบกญแจ (Key ) หรอเทกซ (Tag ) สวนทสองเกบคา (Value ) หากตองการอานขอมลจากหนวยความจำากจำาทำาการ เปรยบเทยบกญแจวาตรงกนหรอไม ถาพบรายการทคนหาทสอดคลองกบคาของฟลด (Value Field ) กจะสงคนคากบไปให ซงประสทธภาพของการคนหาจะรวดเรว แตฮารดแวรชนดนจะมราคาแพง และคาของจำานวนขอมลทเขามาอยใน TLB จะมขนาดไมใหญมากนกมกมคาอยระหวาง 64 ถง 1024 ตว

48 Suan Dusit Rajabhat University (Computer Science)

Page 49: Operating System 2

รปท 2.12 ฮารดแวรกบการสนบสนนการแบงหนาดวย TLB (Paging hardware with

Table look-aside buffer)49 Suan Dusit Rajabhat University (Computer Science)

Page 50: Operating System 2

ฮารดแวรกบการสนบสนนการแบงหนา (Hardware Support)ในกรณท TLB เตม ระบบปฏบตการกจะทำาการเลอกหรอ

ลบบางเพจออก (Flushed or Erased ) และนำาเพจทใชอยลาสดไปแทนท แตในบาง TLB จะไมอนญาตใหสามารถทำาวธการแบบนได ซงจะทำาใหเกดการ “Wired Down” เชน เพจทเกบคำาสงในสวนของแกนกลาง (Kernel Code ) เปนตน ดงนนเปอรเซนตของเวลาในการคนหาหมายเลขเพจ (Page Numbers ) ทพบใน TLB เราเรยกวา “ อตราสวนทพบ (Hit Ratio)” เชน 80% อตราสวนทพบหมายความวา เราตองการการคนหาหมายเลขเพจใน TLB แลวเจอ 80% ของเวลาทงหมด

50 Suan Dusit Rajabhat University (Computer Science)

Page 51: Operating System 2

ฮารดแวรกบการสนบสนนการแบงหนา (Hardware Support)ถาเราใชเวลา 20 Nano sec ในการคนหา ใน TLB และ

100 Nano sec ในการเขาถงหนวยความจำา (Access Memory ) ดงนนเวลาทงหมดทใชไป (Mapped-Memory Access ) จะเทากบ 120 Nanoseconds เมอหมายเลขเพจ (Page Numbers ) อยใน TLB แตถาไมพบหมายเลขเพจ (Page Numbers ) ใน TLB ซงเสยเวลาไป 20Nano sec และเสยเวลาครงแรกไปในการเขาถงหนวยความจำาสำาหรบการคนหาในตารางเพจ (Page Table ) 100Nano sec และเสยเวลาครงทสองในการคนหาหมายเลขเฟรม (Frame Numbers ) อก 100 Nano sec ซงจะใชเวลาทงหมดในการคนหาเทากบ 200 Nano sec

51 Suan Dusit Rajabhat University (Computer Science)

Page 52: Operating System 2

ประสทธภาพของเวลาในการเขาถงเขาถงหนวยความจำา (Effective Memory-Access Time )Effective Memory-Access Time= 0.80 X 120 + 0.20 X

220 = 140 Nanoseconds สรปไดวา เวลาจะชาลงไปถง 40% ในการเขาถงหนวยความจำา

(คอจาก 100 เปน 140 นาโนวนาท ) Ex ถา 98% ของ

อตราสวนทพบหมายความวาอยางไร อธบายไดดงน Effective Memory-Access Time = 0.98 X 120 + 0.02 X 220 = 122 Nanoseconds สรปไดวา เวลาจะชาลงไปถง 22% ในการเขาถงหนวยความจำา (คอจาก 100 เปน 122 นาโนวนาท)

52 Suan Dusit Rajabhat University (Computer Science)

Page 53: Operating System 2

การปองกนหนวยความจำา (Memory Protection) โดยปกตจำานวนบต (Bits ) ทเกบอยในตารางเพจ

(Page Table ) เราสามารถกำาหนดบตเพอใชการตรวจสอบและกำาหนดเพจในการ อาน-เขยน (Read-Write) หรออานขอมลเทานน (Read-Only ) ซงเรยกบตพเศษนวา “กลมบตปองกน (Associating Protection Bits)” ใหกบทกๆ เฟรม ทอยในหนวยความจำา (Main Memory ) ซงแบงบตสถานะออกเปน

2 บต คอ 1. บตใชงานได (Valid Bit ) เปนบตสถานะทบอกวาขอมลในเพจถกอานเขาสหนวยความจำาทางกายภาพแลว และสามารถนำาไปใชงานไดทนท

53 Suan Dusit Rajabhat University (Computer Science)

Page 54: Operating System 2

การปองกนหนวยความจำา (Memory Protection) 2. บตใชงานไมได (Invalid Bit ) เปนบตสถานะทบอกวา

ขอมลในเพจนนไมมอยในหนวยความจำาทางกายภาพแลว (Physical Memory ) และไมสามารถนำาไปใชงานได อาจเกดจากกรณทระบบปฏบตการยงไมไดอานขอมลจากเพจเขาสหนวยความจำาหลก (Main Memory ) หรอขอมลของเพจทตองการอานนนถกสลบ (Swapped ) ออกจากหนวยความจำาแลว ซงจะทำาใหเกดขอผดพลาดขนทเรยกวา “การผดหนา (Page Fault)” จงจำาเปนตองโหลดเพจขอมลเขาสหนวยความจำากอนแลวจงเปลยนคาของบตใชงานไมได (Invalid Bit ) ใหเปนบตใชงานได (Valid Bit )แลวจงทำาการประมวลผลขอมลนนใหมอกครงหนง

54 Suan Dusit Rajabhat University (Computer Science)

Page 55: Operating System 2

รปท 2.13 แสดงตารางเพจของบตทใชงานได-บตทใชงานไมได (Valid (v) or Invalid (i) Bit in a Page Table)

55 Suan Dusit Rajabhat University (Computer Science)

Page 56: Operating System 2

การใชเพจรวมกน (Shared Pages)เปนวธการแบงปนการใชเพจรวมกนในรปแบบการ

แบงเวลา (Time-Sharing ) โดยขอมลนนจะเปนขอมลทใชอยในลกษณะมสามารถเปลยนแปลงได (Non-Self-modifying Code ) ในขณะทมการประมวลผล แตใชงานรวมกนได เรยกขอมลชนดนวา “Reentrant Code” หรอ “Pure Code” ซงจะเกบไวในตำาแหนงทางตรรกะ (Logical Address ) เดยวกน แตละโปรเซสมขอมลเพจ (Own Data Page ) เปนของตวเอง

56 Suan Dusit Rajabhat University (Computer Science)

Page 57: Operating System 2

การใชเพจรวมกน (Shared Pages)รปท 2.14 แสดงการใชเพจรวมกนระหวางโปรเซส ซง

ประกอบไปดวย 3 โปรเซส คอ P1, P2, และ P3 ตองการใชงานโปรแกรม Text Editor รวมกนใน Page 0, Page1 และ Page3 ทถกจดเกบไวในหมายเลขเฟรมท 3, 4 และ 6 ดงนนถาระบบปฏบตการมผตองการใชงาน 40 คน กำาลงใชงานโปรแกรม Text Editor ซงใชพนท 150 KB และใชเพจสำาหรบเกบขอมล 50 KB ดงนนหากโปรเซสตางใชงานพนทในหนวยความจำาไมรวมกนจะตองใชพนทในหนวยความจำาเทากบ 40 x (150 + 50) = 8000 KB

57 Suan Dusit Rajabhat University (Computer Science)

Page 58: Operating System 2

การใชเพจรวมกน (Shared Pages)แตหากโปรเซสทงหมดใชงานเพจรวมกนจะใชพนทใน

หนวยความจำาเทากบ 150 + (40 x 50) = 1250 KB ซงจะชวยลดการใชพนทในหนวยความจำาลงได แตกมขอเสยคอถาโปรเซสใดโปรเซสหนงเสรจจะไมสามารถลบขอมลในเพจทใชงานรวมกน (Shared Pages ) ได ตองรอจนกวาโปรเซสอนจะใชงานขอมลในเพจทใชงานรวมกนเสรจกอนจงจะลบขอมลในเพจได การใชงานของโปรแกรมรวมกนแบบอน เชน คอมไพเลอร (Compilers ) การประมวลผลในสวนไลบราร (Run-Time Libraries ) ระบบฐานขอมล (Database System ) เปนตน

58 Suan Dusit Rajabhat University (Computer Science)

Page 59: Operating System 2

รปท 2.14 แสดงภาพแวดลอมของการใชงานเพจรวมกน (Sharing of Code In a Paging

Environment)59 Suan Dusit Rajabhat University (Computer Science)

Page 60: Operating System 2

โครงสรางของตารางเพจ (Memory Protection) เทคนคการสรางตารางเพจแบงออกเปน 3 รปแบบ ไดแก1.โครงสรางแบบลำาดบชน (Hierarchical Paging ) ระบบคอมพวเตอรสมยใหมจะสบบสนนตำาแหนงพนททางตรรกะ (Logical-Address Space ) ขนาดใหญ (232 ถง 264 ) ซงโครงสรางแบบลำาดบชนเปนการแบงพนททางตรรกะออกเปนตารางเพจ (Page Table ) หลายตาราง โดยใชอกอรทมในการแบงเพจแบบ 2 ระดบ (Two-Level Page Table ) ไดแก 1.1 หมายเลขเพจ (Page Number ) 1.2 ขอบเขตเพจ (Page Offset)

60 Suan Dusit Rajabhat University (Computer Science)

Page 61: Operating System 2

โครงสรางของตารางเพจ (Memory Protection) เทคนคการสรางตารางเพจแบงออกเปน 3 รปแบบ ไดแกEx ระบบคอมพวเตอรขนาด 32 บต ประกอบดวย

เพจขนาด (Page Size ) 4 KB ตำาแหนงทางตรรกะถกแบงเปน 2 สวน คอ สวนแรกขนาด 20 บต (Bits ) เกบหมายเลขเพจ (Page Number ) และสวนทสองขนาด 12 บต (Bits ) เกบขอบเขตเพจ (Page Offset ) ซงแสดงโครงสรางขอมลดงน

61 Suan Dusit Rajabhat University (Computer Science)

Page 62: Operating System 2

รปท 2.15 แสดงโครงสรางตำาแหนงทางตรรกะแบบ 2 ระดบขนาด 32 บต (Address Translation for a Two-Level 32-Bit Paging Architecture)

62 Suan Dusit Rajabhat University (Computer Science)

Page 63: Operating System 2

โครงสรางของตารางเพจ (Memory Protection) เทคนคการสรางตารางเพจแบงออกเปน 3 รปแบบ ไดแก2.โครงสรางแบบตารางเฮช (Hash Page Table )

ระบบคอมพวเตอรทจะใชโครงสรางแบบน ตองมตำาแหนงขนาดพนทมากกวา 32 บต โดยคาของเฮชจะอยภายในหมายเลขเพจเสมอน (Virtual-Page Number )ซงแตละหนวย (Elements ) ในตารางเฮชภายในจะมลงกลสต (Link List ) เชอมโยงไปยงหนวยทอยในพนทเดยวกน โดยขอมลในแตละหนวยจะประกอบไปดวย 2.1 คาหมายเลขเพจเสมอน (Virtual-Page Number ) 2.2 คาดรรชนทชไปยงเฟรมเพจ (Page Frame) 2.3 คาของพอยเตอร (Pointer ) ทชไปยงหนวยทเชอมโยงใน Link List

63 Suan Dusit Rajabhat University (Computer Science)

Page 64: Operating System 2

รปท 2.16 แสดงโครงสรางแบบตารางแฮช (Hashed Page Table)

64 Suan Dusit Rajabhat University (Computer Science)

Page 65: Operating System 2

โครงสรางของตารางเพจ (Memory Protection) เทคนคการสรางตารางเพจแบงออกเปน 3 รปแบบ ไดแก3.โครงสรางเพจแบบผกผน (Inverted Page Table ) ระบบคอมพวเตอรทจะใชโครงสรางแบบน ตองมคณสมบตกำาหนดโดย Page Table จะมเพยงหนงโปรเซสใชงานพนทหนวยความจำา โดยโปรแกรมหรอขอมลจะประกอบไปดวยตำาแหนงของเพจเสมอน (Virtual-Address of Page ) ทเกบอยในหนวยความจำาจรง (Real Memory ) ดงรปท 2.17 จะมเพยงหนงตารางเพจ (One Page Table ) เทานนทอยในหนวยความจำา โดยแตละตำาแหนงของเพจเสมอน (Virtual-Address of Page )ประกอบไปดวย

< process-id, page-number, offset > 65 Suan Dusit Rajabhat University (Computer Science)

Page 66: Operating System 2

รปท 2.17 แสดงโครงสรางแบบผกผน (Inverted Page Table)

66 Suan Dusit Rajabhat University (Computer Science)

Page 67: Operating System 2

การแบงสวน (Segmentation)วธการนเปนการจดสรรพนทในหนวยความจำาหลก

ออกเปนสวนๆ ตามขนาดของโปรแกรมหรอโมดลยอย เรยกพนทนวา Segment โดยแตละโมดลจะถกแบงออกเปนสวนๆ (Segments) ทมขนาดไมเทากน เชน โปรแกรมหลก ไรซเยอร ฟงกชน ตวแปร บลอก สแตก ตารางสญลกษณ และอารเรย ซงแตละโมดลจะมการทำางานสมพนธกน แสดงดงรปท 2.18

67 Suan Dusit Rajabhat University (Computer Science)

Page 68: Operating System 2

รปท 2.18 แสดงโครงสรางแบบแบงสวน (Segmentation)68 Suan Dusit Rajabhat University (Computer Science)

Page 69: Operating System 2

การแบงสวน (Segmentation)Ex จากรปท 2.19 กำาหนดใหมการแบงสวน (Segment )

ออกเปน 5 สวน (Segment ) มหมายเลขตงแต 0 ถง 4 โดยแตละสวน (Segment ) ถกจดเกบอยในหนวยความจำาทางกายภาพ (Physical memory ) ภายในตารางการแบงสวนมขอมลอยภายใน โดยกำาหนดตำาแหนงเรมตนเรยกวาตำาแหนงฐาน (Base ) และขนาดของการแบงสวนเรยกวา Limit อธบายไดดงน 1.กำาหนดให Segment 2 มความยาว 400 ไบตและตำาแหนงเรมตน (Base of Segment) ท 4300 ดงนนถามการอางองไปยงไบตท 53 ของ Segment 2 กจะทำาการจบค (Map ) ไปยงตำาแหนงเรมตนบวกกบตำาแหนงทอางองถงจะไดเทากบ 4300 + 53 = 4353

69 Suan Dusit Rajabhat University (Computer Science)

Page 70: Operating System 2

การแบงสวน (Segmentation)Ex 2.กำาหนดให Segment 3 มความยาว 1000 ไบต

และตำาแหนงเรมตน (Base of Segment) ท 3200 ดงนนถามการอางองไปยงไบตท 852 ของ Segment 3 กจะทำาการจบค (Map ) ไปยงตำาแหนงเรมตนบวกกบตำาแหนงทอางองถงจะไดเทากบ 3200 + 852 = 4052 3.กำาหนดให Segment 0 มความยาว 1000 ไบตและตำาแหนงเรมตน (Base of Segment) ท 1400 ดงนนถามการอางองไปยงไบตท 1222 ซง Segment 0 มความยาวเพยง 1000 ไบต เปนหนาทของระบบปฏบตการในการเลอน (Tab ) ไปยง Segment อนๆ ทมขนาดความยาวไบต (Bytes Long ) ทมขนาดเพยงพอกบตำาแหนงทตองการอางถง

70 Suan Dusit Rajabhat University (Computer Science)

Page 71: Operating System 2

รปท 2.19 แสดงโครงสรางตารางการแบงสวน (Segmentation Table)

71 Suan Dusit Rajabhat University (Computer Science)

Page 72: Operating System 2

สรป (Conclusion)การจดการหนวยความจำา (Memory

Management ) เปนหนาทหนงของระบบปฏบตการ ซงมหนาทหลกในการจดสรรพนทในการใชงานใหกบหลายโปรแกรม (Multiprogramming ) หรอขอมลตางๆ โดยใชฮารดแวร (Hardware provided )เขาไปชวยสนบสนนวธการเขาถงตำาแหนงในหนวยความจำาทงในสวนหนวยความจำาทางตรรกะ (Logical memory ) และหนวยความจำาทางกายภาพ (Physical memory ) ซงมหนวยประมวลผลกลาง (CPU ) เปนตวประมวลผล (Generated ) อกท

72 Suan Dusit Rajabhat University (Computer Science)

Page 73: Operating System 2

สรป (Conclusion)Memory Management Algorithms ม 4

แบบ คอ 1. การจดสรรแบบตอเนอง (Contiguous allocations ) 2. การแบงหนา (Paging ) 3. การแบงสวน (Segmentation)

4 . การผสมผสานระหวางวธแบงหนาและแบงสวน (Combination of Paging and Segmentation

73 Suan Dusit Rajabhat University (Computer Science)

Page 74: Operating System 2

สรป (Conclusion)Memory Management Strategy 1. ความสามารถของฮารแวร (Hardware Support) เปนพนฐานทชาวยสนบสนนการทำางานของกระบวนการการแบงหนา (Paging ) และการแบงสวน (Segmentation ) โดยโครงสรางตารางการจบคระหวางขอมลและตำาแหนงของหนวยความจำาหลก 2. ประสทธภาพ (Performance) วธทใชจดการหนวยความจำาหลกแตละวธจะมความซบซอน และใชระยะเวลาในการจบคระหวางหนวยความจำาทางตรรกะ (Logical memory ) และหนวยความจำาทางกายภาพ (Physical memory ) ดงนน ระบบปฏบตการจงตองเลอกใชวธทเหมาะสมและรวดเรว

74 Suan Dusit Rajabhat University (Computer Science)

Page 75: Operating System 2

สรป (Conclusion)Memory Management Strategy 3. การจดการพนทวาง (Fragmentation) ในระบบคอมพวเตอรแบบหลายโปรแกรม (Multiprogramming ) มความสามารถในการประมวลผลสง จะตองมการจดการพนทวางทเหมาะสมกบขนาดของ Process เพอปองกนปญหาทเกดขน4. การยายตำาแหนง (Relocation) การนจดการหนวยความจำาหลกทดควร สามารถยายโปรเซส (Process ) ในหนวยความจำาหลกไดอยางอตโนมตเพอแกปญหาการเกดพนทวาง (Fragmentation )ในหนวยความจำาหลก5. การสลบ (Swapping) กลไกการสลบ Process เขา-ออก จากหนวยความจำาหลก ควรใหมการสลบโปรเซสใหนอยทสดภายในหนงหนวยเวลา

75 Suan Dusit Rajabhat University (Computer Science)

Page 76: Operating System 2

สรป (Conclusion)Memory Management Strategy 6. การใชงานรวมกน (Sharing) ระบบปฏบตการทดควรสามารถจดสรรโรปแกรมหรอขอมลตางๆ ใหสามารถทำางานรวมกนได เพอใหโปรเซส (Process ) จำานวนมากสามารถทำางานรวมกนได7. การปองกน (Protection) การปองกนคำาสงหรอขอมลตางๆ โครงสรางขอกำาหนดเงอนไขในการอานหรอเขยนขอมล โดยระบบตองมการตรวจสอบคำาสงหรอขอมลตางๆ ขณะกำาลงประมวลผล พรอมถงแสดงขอผดพลาดได

76 Suan Dusit Rajabhat University (Computer Science)

Page 77: Operating System 2

The EndLesson 2

Suan Dusit Rajabhat University (Computer Science)