ถาม | การจัดการหน่วยความจำหลักแบบ Single-user contiguous memory allocation มีลักษณะอย่างไร |
ตอบ | ไม่แบ่งพื้นที่ในหน่วยความจำหลัก สามารถใช้งานได้เต็มที่คนเดียว |
ถาม | การจัดการหน่วยความจำหลักแบบ Fixed Partitions มีลักษณะอย่างไร |
ตอบ | แบ่งพื้นที่ออกเป็นส่วน และถูกกำหนดขนาดไว้ตายตัว |
ถาม | การจัดการหน่วยความจำหลักแบบ Dynamic Partitions มีลักษณะอย่างไร |
ตอบ | จองพื้นที่ในหน่วยความจำหลักที่ติดกัน และโหลดเข้าไปในขนาดที่ต้องใช้งาน |
ถาม | การจัดการหน่วยความจำหลักแบบ Relocationable Dynamic Partitons มีลักษณะอย่างไร |
ตอบ | มี memory manager ทำให้มีการจัดการหน่วยความจำหลักตลอดเวลา และมีพื้นที่ว่างเพียงพื้นที่เดียว |
ถาม | หลักการของ Overlay จะใช้กับการจองพื้นที่หน่วยความจำหลักแบบใด |
ตอบ | แบบ Single-user contiguous memory allocation ซึ่งกำหนดว่าพื้นที่ใดเป็นพื้นที่เริ่มต้นทำงาน และโหลดมาเขียนทับ เมื่อเริ่มงานใหม่ |
ถาม | First-Fit มีการทำงานแบบใด |
ตอบ | เลือกพื้นที่แรกที่ว่าง และพื้นที่กว้างมากพอ |
ถาม | Best-Fit มีการทำงานแบบใด |
ตอบ | เลือกพื้นที่ที่เล็กที่สุด และพื้นที่กว้างมากพอ |
ถาม | Worst-Fit มีการทำงานแบบใด |
ตอบ | เลือกพื้นที่ที่ขนาดใหญ่ที่สุด และพื้นที่กว้างมากพอ |
ถาม | Bound register คืออะไร |
ตอบ | การเก็บตำแหน่งหน่วยความจำที่เก็บตำแหน่งสูงสุด หรือต่ำสุดที่มีการใช้งานหน่วยความจำหลัก |
ถาม | Relocation register คืออะไร |
ตอบ | การเก็บตำแหน่งงานว่างานถูกเปลี่ยนไปจากตำแหน่งเดิมเท่าใด |
ถาม | Internal Fragmentation คืออะไร |
ตอบ | พื้นที่ที่เหลือว่าง หลังงานใหญ่ลดขนาดการใช้พื้นที่หน่วยความจำลง จึงเกิดพื้นที่ว่าง |
ถาม | External Fragmentation คืออะไร |
ตอบ | พื้นที่ที่เหลือว่าง หลังงานนั้นสิ้นสุดลง จึงเกิดพื้นที่ว่าง |
ถาม | หน่วยความจำเสมือน คืออะไร |
ตอบ | Virtual Memory คือหน่วยความจำที่จำลองขึ้นมา เสริมให้ระบบมีหน่วยความจำหลักเพิ่มขึ้น แต่ไม่ใช่หน่วยความจำหลักจริง |
ถาม | ประเภทการอ้างอิงหน่วยความจำเสมือนมีกี่แบบ อะไรบ้าง |
ตอบ | แบ่งมี 2 แบบ 1. Virtual Address คือ ตำแหน่งให้โปรเซสอ้างอิงนำไปใช้งาน 2. Real Address หรือ Physical Address คือ ตำแหน่งที่อยู่จริงบนหน่วยความจำหลัก |
ถาม | การทำ Overlay โดยโปรแกรมเมอร์คืออะไร |
ตอบ | โปรแกรมเมอร์ที่ต้องการใช้หน่วยความจำเกินกว่าที่มีอยู่ จะแบ่งงานเป็นส่วน แล้วนำไปแทนที่หน่วยความจำหลักเมื่อต้องการเรียกใช้ |
ถาม | ระบบปฏิบัติการจะใช้งานหน่วยความจำหลัก และหน่วยความจำเสมือนอย่างไร |
ตอบ | ระบบปฏิบัติการจะมีกลไกควบคุมการทำงานร่วมกัน เรียกว่า Dynamic Address Translation (DAT)คือ กลไกการเปลี่ยน Virtual Address เป็น Real Address ซึ่งโปรแกรมเมอร์ไม่จำเป็นต้องรู้ เพราะทั้งหมดบริการโดย DAT |
ถาม | การจองพื้นที่หน่วยความจำเสมือนมีกี่แบบ อะไรบ้าง |
ตอบ | มี 4 แบบ 1. Paged Memory Allocation แบ่งงานออกเป็นเพจ ๆ ละเท่ากัน และวางเพจสลับกันในหน่วยความจำหลักไม่จำเป็นต้องเรียงต่อกันได้ วิธีนี้ไม่ทำให้เกิดปัญหา External Fragmenttation เพราะขนาดที่ว่างเท่ากัน ทำให้เพจสามารถเข้าใช้พื้นที่ว่างได้ทันที 2. Demand Paging คล้าย Paged Memory Allocation แต่เพจจะเก็บในหน่วยความจำสำรองก่อน ไม่ถูกโหลดเข้าหน่วยความจำหลัก จนกว่าจะมีการเรียกใช้ หลักการนี้ทำให้มีจำนวนงานในหน่วยความจำหลักได้มากกว่าแบบแรก 3. Segmented Memory Allocation แบ่งงานออกเป็นเซกเมนต์ แต่ละเซกเมนต์ไม่จำเป็นต้องเท่ากัน เวลาแบ่งอาจแบ่งตามกลุ่มของโค้ดโปรแกรม หรือซับรูทีนได้ วิธีนี้ทำให้เกิดปัญหา External Fragmenttation เพราะขนาดที่ว่างจะไม่เท่ากัน 4. Segmented/Demand Paged Memory Allocation เป็นการรวมข้อดีของ Paged Memory Allocation และ Segmented Memory Allocation เข้าด้วยกัน โดยเริ่มต้นจากการแบ่งงานเป็น Segment จากนั้นนำ Segment มาแบ่งเป็น Page ที่มีขนาดเท่ากัน |
ถาม | อัลกอริทึมการแทนที่เพจ มีกี่แบบ อะไรบ้าง |
ตอบ | มี 3 อัลกอริทึม 1. Optimal Algorithm (Optimal Algorithm) มองไปในอนาคตว่าเพจไหน เพจไหนจะไม่ถูกใช้นานที่สุด ก็จะออกไป ให้เพจอื่นมาแทนที่ 2. First In First Out (FIFO Algorithm) มองว่าเข้าก่อน ก็ออกก่อน 3. Least Recently Used (LRU Algorithm) มองว่าเพจใดอยู่ในหน่วยความจำนานที่สุด ให้ออกไป |
ถาม | Page Fault คืออะไร ในอัลกอริทึมการแทนที่เพจ |
ตอบ | ปรากฎการณ์ที่มีการเรียก เพจ แต่ไม่พบเพจในหน่วยความจำ ก็จะต้องย้ายเพจออกจากหน่วยความจำหลัก ไปเข้าคิวใหม่ เกิดปัญหาที่เรียกว่า Thrashing คือ หน่วยความจำหลักถูกจองจนเต็ม แต่มีเพจรอประมวลผลอยู่มาก ทำให้มีการดึงเพจระหว่างหน่วยความจำหลัก และหน่วยความจำสำรองบ่อยเกินไป |
ถาม | อัลกอริทึมการสับเปลี่ยนหน้า (Page replacement algorithms) มีกี่แบบ อะไรบ้าง |
ตอบ | มี 6 แบบ 1. วิธีสับเปลี่ยนแบบมาก่อน-ออกก่อน (FIFO : First in first out algorithm) 2. วิธีสับเปลี่ยนแบบให้โอกาสครั้งที่สอง (Second change page replacement algorithm) 3. วิธีสับเปลี่ยนแบบวงรอบนาฬิกา (Clock page replacement algorithm) 4. วิธีสับเปลี่ยนแบบที่ดี่สุด (Optimal page replacement algorithm) 5. การสับเปลี่ยนแบบที่ไม่ได้ใช้งานออกก่อน (NRU : Not recently used) 6. การสับเปลี่ยนแบบใช้งานน้อยที่สุดออกก่อน (LRU : Least recently used) ใช้ข้อมูลในอดีตประมาณการณ์อนาคต |