More Related Content
More from maysasithon (11)
บทที่ 6
- 3. การย้ายตาแหน่ง (Relocation)
การทางานหลาย ๆ โปรแกรมพร้อมกัน จะต้องมีการใช้
ทรัพยากรต่าง ๆ ร่วมกันด้วย และเมื่อมีการนาโปรเซสเข้าไปยัง
หน่วยความจาหลาย ๆ งานพร้อมกัน จะต้องมรการจัดการที่ดี
เพราะจะมีการนางานเข้า และออกจากหน่วยความจาบ่อยครั้ง
ดังนั้นระบบจึงต้องมีการจัดการว่า โปรเซสใดเข้ามาที่ตาแหน่ง
ใด และโปรเซสใดออกไปแต่ยังทางานไม่เสร็จ และโปรเซสนั้น
ทางานได้แค่ไหนแล้ว เมื่อโปรเซสนั้นกลับมาทางานอีกสามารถ
ทางานเดิมต่อไปได้เพื่อแก้ปัญหาในการเปลี่ยนตาแหน่งของ
โปรเซสจึงได้มีการกาหนดแอดเดรสขึ้น
- 4. การจัดการหน่วยความจาหลัก (Memory
Management)
การจัดการหน่วยความจา สามารถทาได้หลายวิธี เริ่มตั้งแต่วิธีแบบ
พื้นฐาน จนถึงวิธีแบบซับซ้อน ซึ่งแต่ละวิธีมีข้อดีข้อด้อยต่างกัน
และเหมาะสมในการนาไปใช้กับคอมพิวเตอร์ต่างประเภทกัน ดังนี้
1. ระบบโปรแกรมเดียว (Monoprogramming)
2. ระบบหลายโปรแกรมที่กาหนดขนาดพาร์ติชั่นคงที
(Multiprogramming with Fixed Partition)
3. ระบบที่กาหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้
(Dunamic Partition)
4. ระบบบัดดี้(Buddy System)
- 6. การจัดการแบบบิตแมพ(Memory Management with
Bitmap)
การจัดการแบบนี้ทาได้โดยการแบ่งหน่วยความจาออกเป็น
ส่วน ๆ เรียกว่า ยูนิต(Unit) ซึ่งแต่ละยูนิตมีขนาดเท่าใดก็ได้แต่ละยู
นิตแทนค่าด้วย 1 บิต ดังนั้น ถ้าหน่วยความจาแบ่งออกเป็น 1,000 ยู
นิตจะต้องมีจานวนบิตที่ใช้แทนค่า 1,000 บิต
บิตที่ใช้แทนค่าแต่ละยูนิตในหน่วยความจานี้ เรียกว่าบิตแมพ
มีค่าที่เป็นไปได้คือ 0 และ 1 ถ้ายูนิตใดมีข้อมูลอยู่ บิตของยูนิ
ตนั้นจะมีค่าเป็น 1 ถ้ายูนิตนั้นว่างบิตของยูนิตนั้นจะมีค่าเป็น 0 การ
จัดการแบบนี้จะตรวจสอบง่าย เพราะมีจานวนบิตคงที่ แต่จะมี
ข้อเสียคือ
- 8. การจัดการแบบลิงค์ลิสต์ (Memory Management with
Link List)
การจัดการแบบลิงค์ลิสต์ทาได้โดยใช้ลิงค์ลิสต์เก็บเข้าข้อมูลของ
พาร์ติชั่นในหน่วยความจาที่ว่างหรือหน่วยความจาที่ถูกใช้งาน จะมี
การระบุการใช้พื้นที่หน่วยความจาว่า ดังนี้
- ในส่วนแรก หากเป็นพื้นที่ว่าจะแสดงด้วยตัวอักษร H (Hold)
ถ้าเป็นช่วงที่มีโปรเซสจะขึ้นต้นด้วย P (Process)
- ส่วนที่ 2 จะบอกแอดเดรสที่ส่วนนั้น (ที่ว่าง หรือโปรเซส)
- ส่วนที่ 3 เป็นความยาวของพื้นที่
- ส่วนที่ 4 เป็นส่วนที่ชี้ไปยังข้อมูลของพื้นที่ส่วนต่อไป
- 9. หน่วยความจาเสมือน(Virtual Memory)
หน่วยความจาเสมือน หมายถึง การนาหน่วยความจาสารองเข้ามา
ทาหน้าที่เหมือนกันเป็นหน่วยความจาหลัก เช่น การนาพื้นที่
บางส่วนของฮาร์ดดิสก์มาทางานเป็นหน่วยความจาหลัก วิธีการ
เช่นนี้ทาให้ระบบมีพื้นที่หน่วยความจาเพิ่มขึ้นกว่าปกติ สามารถ
ทางานได้มากขึ้น แต่มีข้อจากัดคือ
ความเร็วในการอ่านข้อมูลจากหน่วยความจาเสมือนจะช้ากว่า
หน่วยความจาหลัก เพราะเป็นการอ่านจากฮาร์ดดิสก์
- 10. การแบ่งหน้า (Paging)
การแบ่งหน้า เป็นการแบ่งพื้นที่ของหน่วยความจาหลักออกเป็น
ส่วน ๆ หรือแบ่งพื้นที่ออกเป็นพาร์ตอชั่นขนาดเล็ก ๆ ที่มีขนาด
เท่ากัน เราเรียกว่า เฟรม (Frame) และมีการแบ่งโปรแกรมในดิสก์ที่
จะเข้ามาใช้งานหน่วยความจาออกเป็นส่วนเล็ก ๆ เรียกว่า หน้า
(Page) โดยทุกหน้าจะมีขนาดเท่ากัน โดยมีเงื่อนไขในการแบ่งหน้า
ดังนี้
1. ขนาดของ 1 หน้า จะต้องเท่ากับขนาดของ 1 เฟรมเสมอ
2. ในหน่วยความจาหลัก 1 เฟรม จะต้องบรรจุเพียง 1 หน้า
เท่านั้น
- 11. ตารางหน้า (Page Table)
เพื่อความสะดวกในการค้นหาหน้า จึงต้องมีการแมพหน้า
ทั้งหมด โดยสร้างหน้าตาราง (Page Table) ขึ้นมา ในตารางหน้าจะ
มีข้อมูล ดังนี้
1. Page Frame Number
เป็นส่วนที่สาคัญที่สุดจะเก็บข้อมูลว่าหน้านี้ไปอยู่ที่เฟรม
2. Present/Absent
มีขนาด 1 บิตใช้บอกว่าหน้าปัจจุบัน อยู่ (Present)
3. Protection
เก็บข้อมูลการป้องกัน เช่น กาหนดว่าให้อ่านได้อย่างเดียว อ่าน
และเขียนได้หรือประมวลผลได้(Execute) โดยจะมีเพียง 3 บิต
- 12. 4. Modified
เป็นการระบุว่าหน้านั้น ๆ เคยถูกเรียกใช้และมีการแก้ไข
หรือไม่ถ้าหน้าใดที่เคยถูกเรียกใช้และมีการแก้ไขบิตนี้จะมีค่าเป็น 1
5. Referenced
เป็นส่วนที่บอกว่าหน้าที่เคยถูกเรียกใช้บ้างหรือยัง ถ้าเคยถูกเรียกใช้
แล้วจะมีค่าเป็น 1 บิต
6. Caching Disable
เป็นส่วนที่กาหนดว่าไม่ต้องทาการเก็บค่าแคชสาหรับหน้านั้น
โดยทั่วไปแล้ว หน้าจะถูกโหลดเข้าไปในรีจิสเตอร์ของอุปกรณ์ที่
ติดต่อด้วย แต่ถ้าบิตนี้เป็น 1 จะไม่มีการโหลดหน้านั้นเข้าด้วยกัน