การจัดการหน่วยความจำ (memory...

65
Pisit Nakjai

Upload: others

Post on 13-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

Pisit Nakjai

Page 2: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

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

Page 3: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 4: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 5: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 6: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 7: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

RAM ROM

FDD HDD

CD-ROM DVD-ROM

Page 8: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

คอมพวเตอรไมรจกอะไรเลย เขาใจเพยงรหส เปด(1)และปด(0) ในวงจร เกบขอมลอยในรปแบบ Binary Digit --- 101001011010 Bit 1011 = 4 Bit 1111110 = 8 Bit Byte จ านวนBit 8 ตว แทน1 ตวอกษร Address -- ต าแหนงทเกบขอมลในหนวยความจ า

0101010 0100101 0101010 0101010 0101000

Page 9: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

Cpu เรยกใชไดโดยตรง

Page 10: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

1.ชวงเวลาคอมไฟล (Compile time) คอ ชวงเวลาทค าสงหรอขอมลถกแปลค าสงโดยการคอมไพลดวยตวคอมไพเลอร (Compiler)

ตวคอมไฟเลอรจะท าการแปลโปรแกรมโชต าแหนงสมบรณ (Absolute Code) หรอต าแหนงจรงไดเลย เชนถา ก าหนดใหกระบวนการของผใชเรมท ต าแหนง R ตวแปลภาษาสามารถแปลต าแหนงตางๆ ไดโดยเรมจากคา R เปนตนไป ถามการเปลยนแปลงต าแหนงเรมตนกจะตองท าการแปลโปรแกรมกนใหม

Page 11: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

2.ชวงเวลาโหลด (Load time) ชวงเวลาทค าสงหรอขอมลถกโหลดเขาสหนวยความจ า

เมอในขณะทแปลโปรแกรม เราไมสามารถทราบไดวาโปรแกรมจะท างานทต าแหนงใดในหนวยความจ าหลก ต าแปลจะตองแปลต าแหนงใหเปนแบบยายต าแหนงได (Relocatable Code) ดงนนการก าหนดต าแหนงจรงๆ โดยจะเกดขนขณะทก าลงน าโปรแกรมเขาสหนวยความจ าหลก

Page 12: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

3.ชวงเวลาประมวลผล (Execution time) ชวงเวลาทค าสงหรอขอมลถกประมวลผล

กระบวนการอาจถกยายไปมาไดในระหวางการท างาน การก าหนดคาต าแหนงจรง จะกระท ากอนไมได ตองท าในขณะท างานจรงเทานน จะตองมอปกรณพเศษ (ฮารดแวร) ชวย จงจะสามารถใชวธนได

Page 13: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

แสดงชวงเวลาเชอมโยงต าแหนง (Address Binding)

Page 14: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 15: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

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

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

Page 16: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

ตวอยางเชน ตวแปรภาษา assembly แบบแปล 2 รอบ ในรอบแรกจะมการสรางตารางสญลกษณ รอบท 2 จะเปนการแปลภาษาเครอง เราอาจท าการแบงสวนตวแปลภาษานออกเปน 2 สวน คอ สวนของการแปลรอบทหนง และสวนของการแปลรอบทสอง

Page 17: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

1. สวนการแปลรอบท 1 (Pass 1) 70 KB 2. สวนการแปลรอบท 2 (Pass 2) 80 KB 3. ตารางสญลกษณ (Symbol table) 20 KB 4. โปรแกรมยอยรวม (Common routines) 30 KB ตองมหนวยความจ าหลกอยางนอย 200 KB

Page 18: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

ถาเราตองการน าโปรแกรมทงหมดลงสหนวยความจ าหลก เราตองมหนวยความจ าหลกขนาดอยางนอย 200 K ถาหากเรามเพยง 150 K (ทเหลอจากสวนของระบบปฏบตการ) กจะท างานไมได

จงตองใชวธแบงสวน (overlays) โดยก าหนดสวนแรก (A) ประกอบดวย ตารางสญลกษณ โปรแกรมยอยรวม และสวนการแปลรอบท 1

สวนทสอง (B) ประกอบดวย ตารางสญลกษณ โปรแกรมยอยรวมและสวนการแปลรอบทสอง

Page 19: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

เราเพมตวควบคมการแบงสวน (overlay driver) (ขนาด 10 K) และรวมกบสวนแรก A น าลงในหนวยความจ าหลก

หลงจากท าการแปลรอบทหนงเสรจแลว ตวควบคมการแบงสวนจะอานสวน B ลงสพนทของสวน A และสงการควบคมตอไปยงการแปลรอบทสอง จะเหนไดวาสวนแบง A มขนาด 120 K และสวนแบง B มขนาด 130 K

Page 20: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 21: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

จะมการอางองถงต าแหนงทเกยวของอย 2 ประเภทคอ 1.ต าแหนงพนททางตรรกะ (Logical Address Space) หรอเรยกอกชอ

หนงวา ต าแหนงเสมอน (Virtual Address) ซงถกสรางขน (Generate) โดยหนวยประมวลผลกลาง (CPU) เพอใชในการแลกเปลยนขอมล โดยกลมของต าแหนงพนททางตรรกะ (Logical Address Space) ทงหมดถกสรางโดยโปรแกรม

2.ต าแหนงพนททางกายภาพ (Physical Address Space) คอต าแหนงทอยในหนวยความจ าหลก (Memory Unit) และท างานโดยตอบสนอง (Corresponding) กบต าแหนงทางตรระกะ (Logical Address) เสมอ

Page 22: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

โปรแกรมของผใชไมทราบคาต าแหนงทแทจรง(ทางกายภาพ) เลย โปรแกรมอาจสรางตวชไปยงต าแหนง 999 และท าการค านวณ เกบคา อานคา หรอเปรยบเทยบคา ในต าแหนงอน ๆ กบคาในต าแหนง 999 น โปรแกรมของผใช จะท างานดวยต าแหนงทางตรรกะ (Logical address) ฮารดแวรของเครองเปนผจดการการจบคต าแหนงทางตรรกะนกบต าแหนงจรง เมอมการอางองต าแหนงในหนวยความจ า

Page 23: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

ในระบบนมการก าหนดต าแหนง 2 แบบ คอต าแหนงทางตรรกะ (คา 0 ถง max) และต าแหนงจรง (ทางกายภาพ คาจาก R ถง R+max โดย R เปนคาต าแหนงเรมตน) โปรแกรมของผใชจะใชต าแหนงทางตรรกะเทานน ระบบปฏบตการจะรมากกวาและสามารถอางองต าแหนงจรงโดยตรงได ขอมลตาง ๆ ทโปรแกรมผใชสงใหระบบปฏบตการ (เชน ทพกขอมล ตวแปรในการเรยกระบบ) จะตองมการยายต าแหนง หรอค านวณหาคาต าแหนงจรงใหถกตอง โปรแกรมผใชใหคาต าแหนงทางตรรกะมา ระบบตองจบคหาต าแหนงจรงกอนน าไปใชงาน

Page 24: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

กระบวนการทก าลงท างานตองอยในหนวยความจ าหลกเสมอ แตอาจถกยายไปอยในหนวยเกบโปรแกรมชวคราว (Backing Store) ได และน ากลบมาใหมเพอท างานตอ ในระบบการท างานแบบหลายโปรแกรมทใชการจดตารางการท างานแบบเวยนเทยน (round-robin) เมอสวนแบงเวลา (Time Quantum) สนสด ตวจดการหนวยความจ าจะยายกระบวนการปจจบนออกไปและเอากระบวนการใหมเขามาท างานแทน

Page 25: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 26: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

ในทางทฤษฏตวจดการหนวยความจ าตองสามารถสบเปลยนกระบวนการไดเรวมาก จนกระทงตวจดตารางหนวยประมวลผลเหนวามกระบวนการอยในหนวยความจ าตลอดเวลา ในทางปฏบตเวลาทใชในการสบเปลยนงานน (context-switch time) คอนขางมาก สมมตวากระบวนการผใชมขนาด 100 K หนวยเกบโปรแกรมชวคราว (backing store) มอตราการถายโอนขอมล 1 M ตอวนาท เวลาทใชในการถายโอนกระบวนการผใชจะเทากบ 100 K / 1 M = 100 มลลวนาท ถาอตราเฉลยในการทหวอานเคลอนไปยงต าแหนงทตองการ (Latency Time) เปน 8 มลลวนาท เวลาในการสบเปลยนจะเปน 100 + 8 = 108 มลลวนาท การสบเปลยนงานมกตองสบงานเกาออก และสบงานใหมเขาแทนท ดงนนเวลารวมในการสบเปลยนงานครงหนง ๆ จะเทากบ 216 มลลวนาท

Page 27: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

การสบเปลยนโปรเซสเกออกไปและโปรเซสใหมแทนท อาจท าใหอปกรณรบสงขอมลสงผดโปรเซสได

วธการแกปญหา คอ 1. หามสบเปลยนงานขณะทมการรอคอยการรบสงขอมล 2. การรบสงขอมลจะตองใชท พกขอมลภายในเนอทของระบบปฏบตการเทานน และระบบจะสงตอใหโปรเซส เมอโปรเซสก าลงท างานในหนวยความจ าหลกเทานน

Page 28: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

หนวยความจ าหลกตองจ าเปนจะตองอ านวยความสะดวกใหกบระบบปฏบตการ

แตละโปรเซส (Process) มความตองการใชพนทในหนวยความจ าอยางตอเนอง จงเปนหนาทของระบบปฏบตการในการจดสรรพนทหนวยความจ าในหนวยความจ าใหมปะสทธภาพสงสด

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

Page 29: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

รนโปรแกรมไดเพยงทละ 1 โปรแกรมเทานน ณ เวลาใดเวลาหนง ไมแบงหนวยความจ าเปนสวนๆ a : อยในระบบคอมพวเตอรเมนเฟรม และมนคอมพวเตอรสมยตน ๆ b : ใชในเครองปาลมและคอมพวเตอรขนาดเล ก c : ใชในPC ยคแรก ๆ(MS-DOS)

Page 30: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 31: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

1.การจดสรรหนวยความจ าแบบพนทเดยว (Single-partition Allocation)

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

Page 32: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 33: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

2.การจดสรรหนวยความจ าแบบหลายพนท (Multiple-partition Allocation) วธนหนวยความจ าจะถกแบงตามจ านวน Process มวธการจดสรร 2 รปแบบ ดงน 2.1 การแบงแบบคงท (Fixed Partition) 2.2 การแบงแบบพลวต (Dynamic Partition)

Page 34: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 35: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

แกปญหา Internal Fragmentation โดยการจดแบบ Multiple input Queues แบงแบบ คงทแต ไมเทากน

Page 36: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 37: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

ท าการเลอก โดยใช FCFS เชน หาก Part 2 มขนาด 200 ขนาดของ 220 จะไมถกเลอก แตจะเลอก 70 แทน เนองจากพนทไมพอ วธการนอาจจะเกดการใชงาน พนทไมเตมประสทธภาพ แตมการท างานทเรว

220 70 30 130 180

Page 38: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

2.2 การแบงแบบพลวต (Dynamic Partition) เปนการแบงพนทตามขนาดของโปรเซส โดยการใชพนทวางทางกายภาพทเรยกวา โฮล (Hold) เมอมโปรเซสตองการใชงานพนทในหนวยความจ า ระบบปฏบตการจ ามหนาทในคนหาพนทโฮล (Hold) ทมขนาดใหญเพยงพอกบโปรเซส แลวจงน าโปรเซสนนเขาไปใชงานหนวยความจ า ระบบปฏบตการจะมตารางทเกบขอมลวาพนทในหนวยความจ าหลกสวนใดถกครอบครองและสวนใดยงวางอย พนททเหลออยกจะเกบไวใชในการจดสรรครงตอไป ตวอยางเชน ระบบมหนวยความจ าหลกขนาด 2560 K มโปรแกรมของระบบ

ใชพนทอย 400 K สวนวางทเหลออก 2160 K ส าหรบผใช สมมตใหในแถวคอยขาเขา (input queue)

Page 39: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 40: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 41: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

เราสามารถจดสรรพนทใหแก กระบวนการ P1 , P2 และ P3 ได กระบวนการ P4 ทรออยในแถวคอยขาเขา เมอกระบวนการ P2 ท างาน

เสรจพนทท P2 ครอบครองอยจะวางลง กระบวนการ P4 จงสามารถเขามาท างานได เมอกระบวนการ P1 ท างานเสรจ กระบวนการ P5 กสามารถเขามาใชพนททวางลงตอไปได

Page 42: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

ถาพนททคนจาก Process ตอกบพนทวางเดม พนทนนกจะเปนผนเดยวกน

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

ซงมวธจดหาพนทวางนใหกบ Process เพอใหไดประสทธภาพสงสด วธทนยมไดแก First Fit, Best Fit , worst Fit

Page 43: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

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

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

Page 44: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

การใชขนตอนวธในการจดสรรพนทหนวยความจ าจะมปญหาทเกดตามมาคอ พนทหนวยความจ าซงวางเปนชวง ๆ มขนาดเลกไปส าหรบงานทรอคอยอยหรอทเรยกวาการสญเปลาของพนทยอยภายนอก (External Fragmentation) หมายความวาในขณะทกระบวนการถกบรรจลงหนวยความจ า และถกน าออกไปจากระบบ หนวยความจ าจะถกแบงเปนสวนยอยเลก ๆ หลายสวน ท าใหระบบไมสามารถบรรจกระบวนการใหมไดอก เนองจากพนทวางเหลานน มไดอยตดตอกนเปนผนเดยว แตกลบกระจดกระจายไปทว ๆ หนวยความจ า

Page 45: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 46: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

การสญเปลาพนทยอยภายนอก (External Fragmentation) การทพนทถกแบงเปนสวนยอย ๆ น อาจเปนปญหาใหญของระบบได

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

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

Page 47: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 48: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

จะเหนวาพนทวางเลก ๆ 3 ผน ( คอ 100K 300K และ 260K) ไดถกยายมารวมใหเปนพนทผนเดยวทมขนาด 660K

การบบอดหนวยความจ าของระบบไมอาจท าไดกบทกระบบ สงเกตจากรปขางบน ทมการเคลอนยายกระบวนการ P4 และ P3 กระบวนการทง 2 ตองสามารถท างานตอได เมอเขามาอยในพนทใหม โดยต าแหนงอางองภายในทงหมดจะตองถกปรบปรง เราสามารถบบอดหนวยความจ าเฉพาะกรณท การยายต าแหนงเปนแบบสมพทธ (Dynamic) และเกดขนขณะ Execution-time เทานน

Page 49: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

การบบอดท าไดเฉพาะกรณการยายต าแหนงแบบ สมพทธ เกดในขณะ Execution Time เทานน

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

Page 50: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 51: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 52: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

Page 53: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

Memory Management

Page 54: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

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

แตการเขาถงขอมลจะมความเรวทลดลง วธการนเปนทนยมในหลายๆ ระบบปฏบตการ

Page 55: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

หนวยความจ า จะถกแบงออกเปนสวนๆ แตละสวนจะมขนาดเทากน เรยกวา หนาจรง Frame โดยทขนาดของเพจถกก าหนดโดยฮารดแวร

หนวยความจ าทางตรรกะของโปรแกรมจะถกแบงเปนสวนๆ ซงจะมขนาดเทากบสวนของหนาจรง จะเรยกวา หนาเทยม Page โดยก าหนดขนาดเพจเทากบขนาดเฟรม ต าแหนงจะถกจดสรรโดยหนวยประมวลผลกลาง (CPU) โดยแบงออกเปน สองสวน คอ

Page 56: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

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

Page 57: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่
Page 58: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

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

ท าการสบเปลยนโปรเซสเขา-ออกจากหนวยความจ า ไปเกบไวทพกขอมลชวคราว(Backing store)

Page 59: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

หนวยความจ าจรง แบงเปนสวนๆ ขนาดเทาๆ กน เรยกวา Frame หนวยความจ าทางตรรกะ แบงเปนสวนๆ ขนาดเทาๆ กนเรยกวา

Page 1 Frame = 1 Page เปนทพกโปรแกรมชวคราวแบงเปนสวนๆ = Frame = Page

Page 60: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

ขนาดของเพจเปนขนาดยกก าลง 2 มขนาดอยระหวาง 512 ไบตถง 16 MB ตอเพจ ขนอยกบสถาปตยกรรมของคอมพวเตอร

เชน ถาขนาดของต าแหนงวางทางตรรกะคอ 2m และขนาดของหนา (Page) คอ 2n ดงนนบตดานสง (m-n) ของต าแหนงทางตรรกะ จะเปนหมายเลขหนา (page number) สวนบตลาง n เปนระยะจากขอบหนา (page Offset)

p d

Page number Page offset

m-n n

Page 61: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

p

Page 62: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

0 ก 1 ข 2 ข 3 ค

4 ๓ 5 ฆ 6 ง 7 จ

8 ฉ 9 ช 10 ซ 11 ฯ

12 ญ 13 ฏ 14 ฤ 15 ฐ

0 5

1 6

2 1

3 2

ฉ ช ซ ฯ

ญ ฏ ฤ ฐ

ก ข ข ค

๓ ฆ ง จ

0

4

8

12

18

20

20

24

28

หนวยความจ าทางตรรกะ

ตารางเลขหนา

ทางกายภาพ

Page 63: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

หนวยความจ าจรงมขนาด 32 ไบต (รวม 8 หนา) และสมมตใหหนวยความจ าทางตรรกะม 4 หนา (16 ไบต) ต าแหนงทางตรรกะ 0 จะแสดงคาหมายเลขหนา (page number) 0 และระยะจากขอบ (page offset) 0 จากหมายเลขหนา 0 เทยบในตารางเลขหนา จะเหนวาตรงกบหนาจรง (frame) เลขท 5 ดงนนต าแหนงทางกายภาพจรงๆ เปน 20

หากเปนต าแหนงทางตรรกะท 3 แปลงเปนต าแหนงจรง ได 23 ต าแหนงทางตรรกะท 4 ต าแหนงทางตรรกะคอ page 1 offset 0 เทยบ

ตาราง ไดเปน Frame 6 ดงนนแปลงเปนต าแหนงจรงได เปน 24

Page 64: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่

ระบบการแบงหนาจะไมมการสญเสยเนอทภายนอก แตอาจเกดการสญเสยเนอทภายใน

ตวอยางเชน ขนาดของหนาเปน 2048 byte โปรเซสตองการ 72,766 byte ใชพนท 35 หนา+ 1,086 byte ตองจดสรรพนทให = 36 หนา ดงนน หนาสดทายเหลอพนทวาง= 2048-1086 = 962 byte กรณทเลวรายทสด โปรเซสตองการพนท n หนา กบอก 1 byte เกดการ สญเสยเนอท วางภายในเกอบ 1 หนา แตหาก เราเลอกใหมหนาขนาดเลกแตจะเปลองเนอทในการเกบตาราง

เลขหนามากขน

Page 65: การจัดการหน่วยความจำ (Memory Management)mathcom.uru.ac.th/~beebrain/Slide/4123404A/Chapter6_3.pdf · 2013-11-11 · ของผู้ใช้เริ่มที่