Operating System 2

Preview:

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

By Juthawut Chantharamalee

Operating System 2

Suan Dusit Rajabhat University (Computer Science)

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

(Memory Management)

บทท 2

Suan Dusit Rajabhat University (Computer Science)

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

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

3 Suan Dusit Rajabhat University (Computer Science)

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

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

4 Suan Dusit Rajabhat University (Computer Science)

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

5 Suan Dusit Rajabhat University (Computer Science)

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

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

6 Suan Dusit Rajabhat University (Computer Science)

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

7 Suan Dusit Rajabhat University (Computer Science)

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

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

8 Suan Dusit Rajabhat University (Computer Science)

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

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

9 Suan Dusit Rajabhat University (Computer Science)

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

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

10 Suan Dusit Rajabhat University (Computer Science)

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

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

11 Suan Dusit Rajabhat University (Computer Science)

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

12 Suan Dusit Rajabhat University (Computer Science)

การเชอมโยงระหวางพนททางกายภาพกบพนททางตรรกะ(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)

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

14 Suan Dusit Rajabhat University (Computer Science)

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

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

15 Suan Dusit Rajabhat University (Computer Science)

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

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

16 Suan Dusit Rajabhat University (Computer Science)

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

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

17 Suan Dusit Rajabhat University (Computer Science)

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

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

18 Suan Dusit Rajabhat University (Computer Science)

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

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

19 Suan Dusit Rajabhat University (Computer Science)

ตวอยาง (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)

ตวอยาง (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)

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

22 Suan Dusit Rajabhat University (Computer Science)

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

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

23 Suan Dusit Rajabhat University (Computer Science)

กลยทยในการจดการหนวยความจำา (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)

กลยทยในการจดการหนวยความจำา (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)

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

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

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

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

27 Suan Dusit Rajabhat University (Computer Science)

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

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

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

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

29 Suan Dusit Rajabhat University (Computer Science)

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

30 Suan Dusit Rajabhat University (Computer Science)

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

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

31 Suan Dusit Rajabhat University (Computer Science)

การจดสรรหนวยความจำาทตอเนองกน (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)

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

(Hardware Support for relocation and limit registers )

33 Suan Dusit Rajabhat University (Computer Science)

การจดสรรพนทในหนวยความจำาแบงออกเปน 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)

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

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

35 Suan Dusit Rajabhat University (Computer Science)

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

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

36 Suan Dusit Rajabhat University (Computer Science)

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

37 Suan Dusit Rajabhat University (Computer Science)

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

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

38 Suan Dusit Rajabhat University (Computer Science)

ปญหาการจดสรรพนทหนวยความจำาแบบพลวต (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)

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

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

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

41 Suan Dusit Rajabhat University (Computer Science)

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

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

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

42 Suan Dusit Rajabhat University (Computer Science)

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

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

43 Suan Dusit Rajabhat University (Computer Science)

การแบงหนา (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)

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

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

46 Suan Dusit Rajabhat University (Computer Science)

ฮารดแวรกบการสนบสนนการแบงหนา (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)

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

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

48 Suan Dusit Rajabhat University (Computer Science)

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

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

ฮารดแวรกบการสนบสนนการแบงหนา (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)

ฮารดแวรกบการสนบสนนการแบงหนา (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)

ประสทธภาพของเวลาในการเขาถงเขาถงหนวยความจำา (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)

การปองกนหนวยความจำา (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)

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

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

54 Suan Dusit Rajabhat University (Computer Science)

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

55 Suan Dusit Rajabhat University (Computer Science)

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

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

56 Suan Dusit Rajabhat University (Computer Science)

การใชเพจรวมกน (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)

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

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

58 Suan Dusit Rajabhat University (Computer Science)

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

Environment)59 Suan Dusit Rajabhat University (Computer Science)

โครงสรางของตารางเพจ (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)

โครงสรางของตารางเพจ (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)

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

62 Suan Dusit Rajabhat University (Computer Science)

โครงสรางของตารางเพจ (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)

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

64 Suan Dusit Rajabhat University (Computer Science)

โครงสรางของตารางเพจ (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)

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

66 Suan Dusit Rajabhat University (Computer Science)

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

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

67 Suan Dusit Rajabhat University (Computer Science)

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

การแบงสวน (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)

การแบงสวน (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)

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

71 Suan Dusit Rajabhat University (Computer Science)

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

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

72 Suan Dusit Rajabhat University (Computer Science)

สรป (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)

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

74 Suan Dusit Rajabhat University (Computer Science)

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

75 Suan Dusit Rajabhat University (Computer Science)

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

76 Suan Dusit Rajabhat University (Computer Science)

The EndLesson 2

Suan Dusit Rajabhat University (Computer Science)