งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "การจัดการหน่วยความจำ"— ใบสำเนางานนำเสนอ:

1 การจัดการหน่วยความจำ
บทที่ 4 การจัดการหน่วยความจำ Memory Management

2 หน้าที่หน่วยความจำหลัก เก็บระบบปฏิบัติการ เก็บโปรแกรมของผู้ใช้
เก็บข้อมูลที่จะใช้

3 องค์ประกอบหน่วยความจำ แอดเดรส (address) ข้อมูล (data)
หน่วยความจำหลัก องค์ประกอบหน่วยความจำ แอดเดรส (address) ข้อมูล (data)

4 หน่วยความจำหลัก ความต้องการหน่วยความจำ ความเร็วสูง มีความเสถียรสูง ความจุสูง ราคาต่ำ

5 ชนิดของหน่วยความจำ หน่วยความจำหลัก
ROM เป็นหน่วยความจำถาวร ไม่สูญเสียข้อมูลแม้ไฟดับ มักใช้เก็บข้อมูลพื้นฐานที่จำเป็น RAM มักจะใช้เป็นหน่วยความจำหลัก มีอยู่ 2 ประเภท คือ static ram และ dynamic ram หน่วยความจำสำรอง มีความเร็วช้า เก็บไว้ได้นาน เช่น ดิสก์ ฮาร์ดดิสก์

6 การจัดการหน่วยความจำ (Memory Management)
หน่วยความจำหลักเป็นศูนย์กลางของการทำงานต่าง ๆ ของระบบคอมพิวเตอร์ในปัจจุบัน หน่วยความจำหลักคือพื้นที่เก็บข้อมูลขนาดใหญ่ ประกอบด้วย พื้นที่เก็บข้อมูลย่อย มีหน่วยเป็น Byte ตำแหน่งหรือที่อยู่ของพื้นที่ย่อย (Address) Memory 1 2 3

7 การจัดการหน่วยความจำ (Memory Management)….ต่อ
ส่วนของ OS ที่ทำหน้าที่จัดการกับหน่วยความจำได้แก่ ตัวจัดการหน่วยความจำ (Memory Manager) ซึ่งมีหน้าที่ต่าง ๆ ดังนี้ ตรวจสอบว่าส่วนใดของหน่วยความจำที่กำลังถูกใช้งาน ส่วนใดว่าง จัดหน่วยความจำให้กับงานที่ทำงาน ส่งหน่วยความจำคืนสู่ระบบเมื่องานเสร็จ จัดการสลับหน่วยความจำหลัก กับพื้นที่ฮาร์ดดิสก์ เมื่อหน่วยความจำหลักมีขนาดเล็กเกินไปที่จะให้งานทำงานได้

8 การจัดการหน่วยความจำ (Memory Management)
การจัดสรรหน่วยความจำแบบต่อเนื่อง การจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง

9 การจัดการหน่วยความจำ (Memory Management) … ต่อ
การจัดสรรหน่วยความจำแบบต่อเนื่อง โปรแกรมหนึ่ง ๆ จะถูกโหลดลงหน่วยความจำได้ก็ต่อเมื่อมีหน่วยความจำขนาดใหญ่ที่จะวางโค้ดของโปรแกรมนั้นลงไปทั้งโปรแกรม โปรแกรมจะอยู่ติดต่อกันในหน่วยความจำหลักเป็นผืนเดียวกัน ไม่มีส่วนหนึ่งของโปรแกรมแยกจากกัน ถ้ามีพื้นที่ว่างไม่พอก็จะรอจนกว่าจะมีหน่วยความจำว่างเหลือพอ

10 การจัดการหน่วยความจำ (Memory Management) … ต่อ
การจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง โปรแกรมจะถูกแบ่งออกเป็นกลุ่มหรือส่วนย่อย ๆ หลาย ๆ ส่วน เมื่อรันโปรแกรมจะโหลดลงหน่วยความจำที่ไหนก็ได้ที่มีที่ว่างพอ แต่ละส่วนไม่จำเป็นต้องเรียงต่อเป็นผืนเดียว

11 การจัดการหน่วยความจำหลักแบบต่าง ๆ
การจัดการหน่วยความจำนั้นมีหลายวิธี ตั้งแต่การจัดการแบบพื้นฐาน จนถึงแบบที่ซับซ้อน การจัดการหน่วยความจำจึงมีการแบ่งออกเป็น 2 ระบบดังนี้ ระบบโปรแกรมเดี่ยว (Monoprogramming or Single program) ระบบหลายโปรแกรม (Multiple program)

12 ระบบโปรแกรมเดี่ยว Monoprogramming or Single program
เป็นวิธีการจัดการหน่วยความจำที่ง่ายที่สุด เนื่องจากจะมีโปรแกรมเพียง โปรแกรมทำงานในขณะใดขณะหนึ่ง ดังนั้นการใช้งานหน่วยความจำจะมีเพียงโปรแกรมนั้น ๆ กับระบบปฏิบัติการเท่านั้น ดังรูป OS โปรแกรมของ ผู้ใช้ ว่าง

13 ระบบโปรแกรมเดี่ยว Monoprogramming or Single program … ต่อ
Operating system in ROM Device Manager in ROM User program User program User program Operating system in RAM Operating system in RAM

14 ระบบโปรแกรมเดี่ยว Monoprogramming or Single program … ต่อ
จากรูปเราอาจแบ่งหน่วยความจำหลักออกเป็น 2 ส่วนคือ ส่วนของ OS เป็นหน่วยความจำที่ถูกครอบครองโดย OS ส่วนของผู้ใช้ (User area) คือส่วนที่สามารถนำโปรแกรมของผู้ใช้ลงไปวางได้ ซึ่งก็คือหน่วยความจำหลักทั้งหมดที่เหลือจากส่วนของ OS

15 ระบบโปรแกรมเดี่ยว Monoprogramming or Single program … ต่อ
เมื่อหน่วยความจำหลักถูกแบ่งออกเป็น 2 ส่วนแล้ว ตัว OS จึงจำเป็นต้องมีวิธีการป้องกันไม่ให้โปรแกรมของผู้ใช้รุกล้ำเข้ามาในส่วนของ OS ถ้า OS ปล่อยให้ผู้ใช้เข้ามาใช้หน่วยความจำที่ OS ใช้อยู่ โปรแกรมของผู้ใช้อาจทำลายตัวโปรแกรมของ OS เสียหายจนระบบทำงานไม่ได้

16 ระบบโปรแกรมเดี่ยว Monoprogramming or Single program … ต่อ
วิธีที่นิยมในการป้องกันการรุกล้ำได้แก่การสร้างรีจีสเตอร์ขึ้นมาในซีพียูเรียกว่ารีจีสเตอร์ขอบเขต (boundary register) รีจีสเตอร์จะทำหน้าที่เก็บค่าแอสเดรสที่เป็นรอยต่อระหว่างส่วนของ os และส่วนของผู้ใช้

17 ระบบหลายโปรแกรม Multiple program
ระบบคอมพิวเตอร์ส่วนใหญ่ในปัจจุบันอนุญาตให้มีงานหลาย ๆ งานทำงานในเวลาเดียวกัน การที่ระบบมีหลายงานทำงานพร้อมกันนั้น หมายความว่าแต่ละงานต้องถูกบันทึกอยู่ในหน่วยความจำหลัก ดังนั้นเพื่อให้คอมพิวเตอร์สามารถทำงานหลายงานพร้อมกัน จึงจำเป็นต้องทำการแบ่งพื้นที่หน่วยความจำออกเป็นส่วน ๆ สำหรับแต่ละงานเพื่อไม่ให้ปะปนกัน

18 ระบบหลายโปรแกรม Multiple program
การแบ่งหน่วยความจำสำหรับระบบหลายโปรแกรมมี 2 แบบ การแบ่งหน่วยความจำขนาดคงที่ (Fixed partition multi-programming) การแบ่งหน่วยความจำขนาดไม่คงที่ (Variable partition multi-programming)

19 การแบ่งหน่วยความจำขนาดคงที่
วิธีนี้หน่วยความจำจะถูกแบ่งออกเป็นหลายส่วน แต่ละส่วนมีขนาด คงที่ และในแต่ละส่วนจะมีเพียงงานเดียว และการแบ่งนั้นจะเปลี่ยนแปลงอีกไม่ได้ ดังนั้นจำนวนงานที่ทำงานได้พร้อมกันจะเท่ากับจำนวนส่วนย่อยของหน่วยความจำหลัก

20 การแบ่งหน่วยความจำขนาดคงที่
การแบ่งหน่วยความจำขนาดคงที่ แบ่งได้เป็น 2 แบบ การแปลงและโหลดด้วยค่าสัมบูรณ์ (Absolute translation and loading) การแปลงและโหลดด้วยค่าสัมพัทธ์ (Relocatable translation and loading)

21 การแปลงและโหลดด้วยค่าสัมบูรณ์ Absolute translation and loading
ค่าแอดเดรสสัมบูรณ์ คือค่าแอดเดรสจริง ๆ ในหน่วยความจำ หน่วยความจำหลักจะถูกแบ่งออกเป็นส่วนที่มีขนาดคงที่ และแต่ละส่วนจะมีแอดเดรสที่เป็นขอบเขตบน และล่างอยู่ ดังนั้นเมื่องานต้องการใช้หน่วยความจำหลักในส่วนย่อยใดก็ตาม OS จะต้องกำหนดแอดเดรสจริงให้กับงาน เพื่อให้งานเข้าไปครอบครองหน่วยความจำหลักในส่วนที่ถูกต้อง นิยมใช้กับคิวงานที่เป็นแบบ Multiple queues

22 การแปลงและโหลดด้วยค่าสัมบูรณ์ Absolute translation and loading … ต่อ
OS ส่วนที่ 1 ส่วนที่ 2 ส่วนที่ 3 คิวของส่วนที่ 1 คิวของส่วนที่ 2 คิวของส่วนที่ 3 65000 งานที่เหมาะกับส่วนที่ 1 60000 งานที่เหมาะกับส่วนที่ 2 50000 งานที่เหมาะกับส่วนที่ 3

23 การแปลงและโหลดด้วยค่าสัมบูรณ์ Absolute translation and loading … ต่อ
ข้อเสียของวิธีนี้คือ ถ้างานพร้อมจะรันแล้ว แต่ส่วนของหน่วยความจำหลักที่ต้องการ กำลังถูกใช้โดยงานอื่น ก็ต้องรอจนกว่างานที่ใช้หน่วยความจำที่ต้องการทำงานเสร็จสิ้น ถึงแม้ว่าส่วนอื่น ๆ จะว่างอยู่ก็ตาม ทำให้สูญเสียหน่วยความจำในส่วนอื่นโดยเปล่าประโยชน์ ถ้างานส่วนใหญ่เป็นงานที่มีขนาดเล็ก คิวของส่วนที่มีขนาดเล็กจะเต็มอยู่ตลอดเวลา ในขณะที่คิวของส่วนที่มีขนาดใหญ่ยังคงว่างอยู่ ทำให้งานที่มีขนาดเล็กจะต้องรอในคิว ในขณะที่หน่วยความจำหลักยังเหลืออยู่มาก

24 การแปลงและโหลดด้วยค่าสัมพัทธ์ Relocatable translation and loading
เพื่อแก้ปัญหาที่เกิดขึ้นในการแปลงและโหลดด้วยค่าสัมบูรณ์ จึงทำให้เกิดวิธีการที่เรียกว่าการแปลงและโหลดด้วยค่าสัมพัทธ์ งานจะถูกแปลงให้ได้แอดเดรสเป็นค่าสัมพัทธ์กับจุดเริ่มต้นของงาน จุดเริ่มต้นของงานก็คือแอดเดรส 0 นั่นเอง ถ้างานมีขนาด 100 byte เมื่องานถูกโหลดลงในหน่วยความจำหลักจะไม่รอให้แอดเดรส 0 ถึง 100 ว่าง แต่จะโหลดลงส่วนที่มีขนาดมากกว่าหรือเท่ากับขนาดของงาน ดังนั้นคิวงานจึงไม่จำเป็นต้องเป็น Multiple Queues ใช้เป็น Single Queues

25 การแปลงและโหลดด้วยค่าสัมพัทธ์ Relocatable translation and loading … ต่อ
วิธีการจัดคิวใช้วิธี FCFS คืองานใดมาก่อนก็มีสิทธิ์โหลดลงในส่วนของหน่วยความจำหลักที่ชี้อยู่ แต่ถ้าขนาดของงานมีขนาดใหญ่กว่าส่วนของหน่วยความจำหลักที่ชี้อยู่ OS จะข้ามงานนั้นไปทำให้กับงานอื่น ๆ ที่อยู่ถัดไป สำหรับงานที่ถูกข้ามก็จะต้องคอยอยู่ในคิว ซึ่ง OS จะกำหนดว่างานจะถูกมองข้ามได้ไม่เกินจำนวนครั้งที่กำหนด ถ้าเกินระบบจะต้องเลือกงานนั้นเข้าไปทำงาน

26 การแปลงและโหลดด้วยค่าสัมพัทธ์ Relocatable translation and loading … ต่อ
OS ส่วนที่ 1 ส่วนที่ 2 ส่วนที่ 3 65000 งาน คิว 60000 50000

27 การแปลงและโหลดด้วยค่าสัมพัทธ์ Relocatable translation and loading … ต่อ
การป้องกัน OS ในระบบหลายโปรแกรมประเภทแบ่งหน่วยความจำนิยมใช้รีจีสเตอร์ขอบเขตหลาย ๆ ตัว ส่วนย่อยแต่ละส่วนจะใช้รีจีสเตอร์ขอบเขต 2 ตัว ในการแยกแยะส่วนแต่ละส่วน เรียกว่ารีจีสเตอร์ขอบเขตบน (high boundary register) และรีจีสเตอร์ขอบเขตล่าง (Low boundary register) โปรแกรมของผู้ใช้สามารถข้ามเข้าไปในขอบเขตของ OS ได้โดยผ่านทางคำสั่งเรียกระบบ

28 ข้อเสียของการแบ่งหน่วยความจำขนาดคงที่
การแบ่งหน่วยความจำขนาดคงที่เป็นวิธีการที่ง่ายและไม่ซับซ้อนต่อการสร้าง OS อย่างไรก็ตามมีข้อเสียดังนี้ พื้นที่ที่กำหนดให้มีขนาดและจำนวนที่คงที่เมื่อระบบเริ่มทำงานนั้น จะเป็นตัวจำกัดจำนวนของงานที่สามารถเข้ามาใช้ระบบได้ เนื่องจากระบบมีการกำหนดพื้นที่แบบคงที่ ดังนั้นงานที่มีขนาดเล็กจะไม่สามารถใช้พื้นที่ของหน่วยความจำได้อย่างเต็มประสิทธิภาพ การจัดแบ่งพื้นที่แบบคงที่จะทำให้เกิดส่วนที่ไม่ถูกใช้งาน ซึ่งเราเรียกว่าเกิดการแตกกระจาย (Fragmentation) ซึ่งมีอยู่ 2 รูปแบบ การแตกกระจายภายนอก (External fragmentation) การแตกกระจายภายใน (Internal fragmentation)

29 ข้อเสียของการแบ่งหน่วยความจำขนาดคงที่
OS ส่วนที่ 1 ว่าง ส่วนที่ 2 (งานของผู้ใช้) ส่วนที่ 3 การแตกกระจายภายนอก การแตกกระจายภายใน

30 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming
จากปัญหาที่พบของการทำงานของการแบ่งหน่วยความจำขนาดคงที่ ผู้ออกแบบ OS จึงได้ทำการปรับปรุงการแบ่งหน่วยความจำให้ดีขึ้น โดยระบบจะกำหนดให้มีการแบ่งหน่วยความจำตามความต้องการของงาน และไม่มีการจำกัดขอบเขตของหน่วยความจำหลัก การแบ่งหน่วยความจำแบบนี้เรียกว่า การแบ่งหน่วยความจำขนาดไม่คงที่

31 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
ตัวอย่าง ถ้าเรามีหน่วยความจำหลักทั้งหมด 1 MB ดังรูป OS 128 K 896 K ว่าง OS 576 K 320 K ว่าง โปรเซส A (ต้องการ 320 K)

32 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
OS 576 K 320 K A ว่าง OS 224 K 320 K A B 352 K ว่าง โปรเซส B (ต้องการ 224 K)

33 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
OS 224 K 320 K A B 352 K ว่าง OS 224 K 320 K A B 288 K C 64 K ว่าง โปรเซส C (ต้องการ 288 K)

34 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
OS 224 K 320 K A B 288 K C 64 K ว่าง OS 224 K 320 K A B 288 K C 64 K ว่าง โปรเซส D (ต้องการ 128 K)

35 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
OS 224 K 320 K A B 288 K C 64 K ว่าง OS 224 K 320 K A 288 K C 64 K ว่าง โปรเซส B (ทำงานเสร็จ)

36 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
OS 128 K 320 K A 288 K C 64 K D 96 K ว่าง OS 224 K 320 K A 288 K C 64 K ว่าง โปรเซส D (ต้องการ 128 K)

37 การแบ่งหน่วยความจำขนาดไม่คงที่ Variable partition multi-programming … ต่อ
จากรูปจะเห็นว่าเมื่อระบบทำงานไปได้สักระยะหนึ่ง เราจะพบช่องว่างเกิดขึ้นอย่างมากมายในหน่วยความจำหลัก ซึ่งจะทำให้การใช้งานหน่วยความจำหลักมีประสิทธิภาพลดลง เราเรียกช่องว่างเล็ก ๆ เหล่านี้ว่า การแตกกระจายภายนอก (External fragmentation) ดังนั้นการที่จะวางโปรเซสลงในหน่วยความจำหลักนั้นจะต้องมีการตัดสินใจที่ดี ซึ่ง OS เรียกว่า การจัดยุทธวิธีการวาง

38 การจัดยุทธวิธีการวาง
เมื่อมีโปรเซสถูกส่งเข้ามาในหน่วยความจำหลัก ซึ่งขณะนั้นหน่วยความจำหลักอาจมีช่องว่างเกิดขึ้นกระจายไปทั่ว การจะจัดว่าโปรเซสใดควรจะวางไว้ในช่องว่างใด มีวิธีการอยู่ 3 แบบดังนี้ เลือกช่องว่างที่พบก่อน (First-Fit) เลือกช่องว่างที่เหมาะสม (Best-Fit) เลือกช่องว่างที่ใหญ่ที่สุด (Worst-Fit)

39 การจัดยุทธวิธีการวาง … ต่อ
เลือกช่องว่างที่พบก่อน (First-Fit) วิธีการนี้ OS จะตรวจหาช่องว่างในหน่วยความจำ เมื่อใดที่พบช่องว่างที่มีขนาดใหญ่พอที่จะวางโปรเซสใหม่ลงไปได้ OS จะเลือกช่องว่างนั้นทันที ทำให้การเลือกช่องว่างทำได้รวดเร็ว

40 การจัดยุทธวิธีการวาง … ต่อ
เลือกช่องว่างที่เหมาะสม (Best-Fit) วิธีการนี้ OS จะตรวจหาช่องว่างที่มีอยู่ในหน่วยความจำทั้งหมด แล้วเลือกเอาช่องว่างที่เมื่อวางโปรเซสลงไปแล้วจะเกิดช่องว่างขนาดเล็กที่สุด

41 การจัดยุทธวิธีการวาง … ต่อ
เลือกช่องว่างที่ใหญ่ที่สุด (Worst-Fit) การเลือกช่องว่างแบบนี้จะตรงกันข้ามกับแบบที่ 2 OS จะเลือกช่องว่างที่เมื่อวางโปรเซสลงไปแล้วจะเกิดช่องว่างขนาดใหญ่ที่สุด

42 การจัดยุทธวิธีการวาง … ต่อ
OS ใช้งาน 16 K 14 K 5 K 30 K โปรเซสใหม่ขนาด 13 K คำถาม จงใช้ยุทธวิธีทั้ง 3 แบบวางโปรเซสใหม่นี้

43 การรวมโฮล (Coalescing Holes)
เมื่อมีช่องว่าง 2 ช่องติดกันในหน่วยความจำ OS สามารถที่จะรวมช่องว่างทั้ง 2 นี้เป็นช่องว่างขนาดใหญ่ช่องเดียว ซึ่งเราเรียกว่า การรวมโฮล (Coalescing Holes) แสดงดังรูป OS โปรแกรมอื่น ๆ 2 K โปรแกรม A 5 K OS โปรแกรมอื่น ๆ 2 K 5 K OS โปรแกรมอื่น ๆ 7 K โปรแกรม A จบ

44 การบีบอัดหน่วยความจำ (Storage Compaction)
ถึงแม้ว่าจะมีการรวมโฮลเกิดขึ้น แต่ช่องว่างที่ไม่อยู่ติดกันก็ยังคงมีกระจายอยู่ในหน่วยความจำ ซึ่งการมีช่องว่างขนาดเล็ก ๆ หลายช่อง เมื่อนำมารวมกันก็จะทำให้เกิดช่องว่างขนาดใหญ่ซึ่งมากพอสำหรับ 1 โปรเซสได้ OS จะต้องสามารถที่จะทำการบีบอัดหน่วยความจำ โดยย้ายเอาหน่วยความจำที่ถูกครอบครองโดยโปรเซสต่าง ๆ ไปอยู่ชิดติดกันที่ด้านใดด้านหนึ่ง ซึ่งจะทำให้เกิดช่องว่างใหญ่เพียงช่องเดียว จึงทำให้โปรเซสอื่น ๆ สามารถเข้ามาใช้หน่วยความจำที่เหลือได้

45 การบีบอัดหน่วยความจำ (Storage Compaction) … ต่อ
OS ใช้งาน 1 ใช้งาน 2 ใช้งาน 3 16 K 14 K 5 K 30 K ว่าง

46 การบีบอัดหน่วยความจำ (Storage Compaction) … ต่อ
ข้อเสียของการบีบอัดหน่วยความจำ ระบบจะต้องหยุดการทำงานของโปรเซสทุกโปรเซสไว้ชั่วขณะหนึ่งเพื่อที่จะทำการบีบอัด ซึ่งอาจจะต้องใช้เวลามากทำให้การทำงานของระบบช้าลง โดยเฉพาะกับการทำงานในระบบโต้ตอบ (Interactive)

47 ระบบหลายโปรแกรมแบบสลับหน่วยความจำ (multiprogramming with storage swapping)
เป็นการสลับโปรแกรมไปสู่หน่วยความจำสำรองเมื่อโปรแกรมไม่ต้องการหน่วยความจำหลักเรียกว่าการสลับออก (swapped out) และนำโปรแกรมเข้ามาใช้หน่วยความจำใหม่เมื่อต้องการใช้หน่วยความจำเรียกว่าการสลับเข้า (swapped in) โปรแกรมจะอยู่ในหน่วยความจำและถูกสลับออกเมื่อเกิดเหตุการณ์ 3 กรณี คือ โปรแกรมจบ โปรแกรมต้องการใช้งานอินพุต-เอาต์พุต หมดเวลาควอนตัม

48 ระบบหลายโปรแกรมแบบสลับหน่วยความจำ (multiprogramming with storage swapping) … ต่อ
สลับเข้า swapped In A B C D OS โปรแกรมของ ผู้ใช้ ว่าง สลับออก swapped out โปรแกรมของผู้ใช้

49 การทำโอเวอร์เลย์ เนื่องจากโปรแกรมของผู้ใช้มีขนาดใหญ่กว่าหน่วยความจำหลัก จึงต้องแก้ปัญหานี้ ถ้าเป็นกรณีโปรแกรมเดี่ยวจะแก้ปัญหาด้วยการทำโอเวอร์เลย์ การทำโอเวอร์เลย์ (overlay) เป็นหน้าที่ของผู้เขียนโปรแกรมเอง OS ไม่ได้ จัดการให้ ผู้เขียนโปรแกรมแบ่งโปรแกรมออกเป็นส่วนย่อยหลาย ๆ ส่วน แต่ละส่วนต้องมีขนาดเล็กกว่าหน่วยความจำ อาศัยหลักการสลับโปรแกรม โดยที่ส่วนแรกจะอยู่ในหน่วยความจำตลอดเวลาแล้วโหลดส่วนอื่นเข้ามาทับ

50 การทำโอเวอร์เลย์ … ต่อ
โปรแกรมย่อย โปรแกรมหลัก OS ส่วนที่ 1 ส่วนที่ 2 หน่วยความจำ โปรแกรมของผู้ใช้แบ่งเป็นส่วนย่อยต่าง ๆ

51 หน่วยความจำเสมือน (Virtual Memory)
การใช้หน่วยความจำของโปรแกรมผู้ใช้ที่กล่าวมานั้น จะเห็นว่าขนาดของโปรแกรมต้องมีขนาดเล็กกว่าขนาดของหน่วยความจำที่เหลืออยู่ แต่ถ้าโปรแกรมของผู้ใช้มีขนาดใหญ่กว่า ไม่ว่าเราจะใช้วิธีการจัดการหน่วยความจำที่กล่าวมาแล้วชนิดใดก็ตามไม่สามารถจะทำงานได้ ดังนั้นถ้าโปรแกรมของผู้ใช้มีขนาดใหญ่กว่าหน่วยความจำที่เหลือ เราแก้ปัญหาโดยใช้หน่วยความจำเสมือน (Virtual Memory) ใช้ในกรณีแบบหลายโปรแกรม

52 Question & Answer

53 แบบฝึกหัดบทที่ 4 1. นักศึกษาคิดว่าทำไมจึงต้องมีหน่วยความจำหลัก
2. จงอธิบายภาพข้างล่างนี้ตามความเข้าใจ 3. การจัดการหน่วยความจำเป็นหน้าที่ของ OS ส่วนใด และจัดการเรื่องใดบ้าง

54 แบบฝึกหัดบทที่ 4 4 .การรวมโฮล (Coalescing Holes) มีวิธีการทำงานอย่างไร จงอธิบาย 5. การแตกกระจาย (Fragmentation) เกิดขึ้นได้อย่างไร จงอธิบาย 6. การจะจัดว่าโปรเซสควรจะวางไว้ในช่องว่างใดในหน่วยความจำมีหลักการทำงานอย่างไร จงอธิบาย 7. การแปลงและโหลดด้วยค่าสัมบูรณ์ และการแปลงและโหลดด้วยค่าสัมพัทธ์ แตกต่างกันอย่างไร 8. การป้องกันไม่ให้โปรแกรมล่วงล้ำมายังส่วนของ OS ภายในหน่วยความจำ ใช้วิธีการใด 9. การบีบอัดหน่วยความจำ (Storage Compaction) มีหลักการทำงานอย่างไร 10. Holes เกิดขึ้นได้อย่างไร อธิบายมาพอเข้าใจ


ดาวน์โหลด ppt การจัดการหน่วยความจำ

งานนำเสนอที่คล้ายกัน


Ads by Google