Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 7 การจัดการหน่วยความจำ - Coggle Diagram
บทที่ 7 การจัดการหน่วยความจำ
ประเภทของหน่วยความจำ
หน่วยความจำภายใน (Internal memory)
หน่วยความจำหลัก (Main memory)
หน่วยความจำสำรอง (Secondary memory)
แนวคิดพื้นฐานการจัดการหน่วยความจำหลัก
หน้าที่ของระบบปฏิบัติการในการจัดการกับหน่วยความจำหลัก
ควบคุมดูแลสถานะของแต่ละต าแหน่งของหน่วยความจ าหลัก
ตัดสินว่าควรจัดสรรหน่วยความจำหลักขนาดเท่าไร ให้กับงานใด ณ ตำแหน่งใดของหน่วยความจำหลัก
จัดสรรหน่วยความจำหลักให้งานที่ได้เลือกแล้ว
ปลดปล่อยหน่วยความจำหลักให้ว่าง เมื่อทำงานเสร็จแล้ว
หน่วยความจำหลัก
การเชื่อมโยงตำแหน่ง (Address Binding)
เวลาแปลโปรแกรม (Compile time)
เวลาโหลดโปรแกรม (Load time)
เวลาโหลดโปรแกรม (Load time)
เวลากระทำการ (Execution time)
Dynamic Loading
Dynamic Linking and Shared Libraries
ตำแหน่งที่ว่างทางกายภาพกับตำแหน่งที่ว่างทางตรรกะ
ตำแหน่งที่ถูกสร้างโดยซีพียูมักหมายถึงตำแหน่งทางตรรกะ (Logical address)
ส่วนตำแหน่งในหน่วยความจำจะหมายถึงPhysical address
ตำแหน่งทางกายภาพ Logical และ Physical address เป็นตำแหน่งเดียวกันในช่วงของ Compile time และ Load time การ เชื่อมโยง Logical address เข้ากับแต่ละ Physical address ถือเป็นหัวใจสำคัญในการจัดการหน่วยความจำหลัก
การจัดการหน่วยความจำหลัก
วิธีการซ้อนทับ (Overlays)
วิธีการสับเปลี่ยน (Swapping)
การจัดสรรหน่วยความจำแบบต่อเนื่อง
หน่วยความจำหลักจะถูกแบ่งออกเป็น 2 ส่วน
หน่วยความจำระดับบน (High memory) ซึ่งเป็นส่วนที่ใช้ติดต่อกับส่วนของผู้ใช้
หน่วยความจำระดับล่าง (Low memory) ซึ่งเป็นส่วนของระบบปฏิบัติการ
การจัดสรรพื้นที่แบบขนาดคงที่ (Fixed-Size Partition)
วิธีนี้หน่วยความจำจะไม่ถูกแบ่งพื้นที่ โดยโพรเซสในส่วนของระบบปฏิบัติการจะอยู่ในส่วน
หน่วยความจำระดับล่าง และส่วนของโพรเซสของผู้ใช้อยู่ในส่วนหน่วยความจำระดับบน
การจัดสรรพื้นที่แบบขนาดคงที่หรือแบบส่วนเดียว (Single-partition allocation) ชุดของ รีจิสเตอร์ย้ายตำแหน่ง (Relocation-register scheme) จะใช้สำหรับป้องกันการทำงานโพรเซสของผู้ใช้ จากโพรเซสอื่น
การแบ่งหน่วยความจำออกเป็นพาร์ติชั่น
ข้อเสียของการจัดการหน่วยความจ าหลักแบบงานเดียว คือ คอมพิวเตอร์สามารถท างานได้ครั้งละ 1 งาน เพื่อเป็นการเพิ่มประสิทธิภาพการทำงานของซีพียูจึงพัฒนาให้ระบบคอมพิวเตอร์สามารถทำได้ หลายงานพร้อมกัน
การแบ่งหน่วยความจำออกเป็นพาร์ติชั่นทำได้2 วิธีคือ
การกำหนดขนาดพาร์ติชั่นคงที่ (Static Partition)
การกำหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้(Dynamic Partition)
การกำหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้(Dynamic Partition)
เนื่องจากวิธีการจัดการหน่วยความจ าหลักแบบพาร์ติชั่นมีปัญหาเรื่องการแตกกระจาย ซึ่งสามารถ แก้ปัญหาได้ด้วยการรวบรวมพื้นที่ว่างที่มีอยู่นั้นให้ติดกัน เรียกว่า การอัดแน่น (Compaction) แต่การที่ ระบบเคลื่อนย้ายโพรเซสที่ถูกบรรจุในพาร์ติชั่นต่าง ๆ เข้าไปอยู่ในพื้นที่บริเวณที่ติดกัน ทำให้ต าแหน่ง สำคัญต่าง ๆ ถูกเปลี่ยนแปลงไปด้วย
ปัญหาการจัดสรรหน่วยเก็บแบบพลวัต
First-Fit
เลือกช่องโหว่แรกที่พบและมีขนาดใหญ่เพียงพอกับพื้นที่ที่ต้องการ เป็นวิธีที่ง่ายที่สุดและเสียเวลาน้อยที่สุด
Best-Fit
การเลือกช่องโหว่ที่เหมาะสมที่สุด ต้องหาเนื้อที่ว่างโดยต้องตรวจดูพื้นที่ว่างทั้งหมดในระบบ เพื่อหาเนื้อที่ว่างที่มีขนาดเท่ากัน หรือใกล้เคียงกับขนาดของโพรเซสจริง
Worst-Fit
การเลือกช่องโหว่ที่ใหญ่ที่สุด เป็นวิธีป้องกันไม่ให้เกิดปัญหาการเกิดเนื้อที่ว่าง เล็ก ๆ เป็นจ านวนมากอย่าง Best-Fit เริ่มต้นเนื้อที่ว่างโดยต้องตรวจดูพื้นที่ว่างทั้งหมดในระบบ และหาที่ ว่างที่มีขนาดใหญ่ที่สุดเพื่อใส่โพรเซสใหม่เข้ามา การเลือกจะท าให้เกิดพื้นที่ว่างที่มีขนาดใหญ่ซึ่งอาจมาก พอที่จะบรรจุโพรเซสอื่นได้อีก
ปัญหาของการจัดการหน่วยความจำ
การสูญเปล่าของพื้นที่ย่อยภายนอก (External Fragmentation)
การแก้ปัญหาการสูญเปล่าของพื้นที่ย่อยภายนอก
การสูญเปล่าของพื้นที่ย่อยภายใน (Internal Fragmentation)
การแบ่งพื้นที่เป็นหน้า
บีบอัดพื้นที่ว่างในหน่วยความจำก่อน
การจัดสรรหน่วยความจำทางกายภาพ (paging model of physical memory)
การจัดสรรหน่วยความจำทางตรรกะ (paging model of logical memory)
การทำงานของ Paging
ฮาร์ดแวร์กับการสนับสนุนการแบ่งหน้า (Hardware Support)
การป้องกันหน่วยความจำ
บิตใช้งานได้ (Valid bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจถูกอ่านเข้าสู่หน่วยความจำทางกายภาพแล้ว และสามารถนำไปใช้งานได้ทันที
บิตใช้งานไม่ได้ (Invalid bit) เป็นบิตสถานะที่บอกว่าข้อมูลในเพจนั้นไม่มีอยู่ในหน่วยความจำทางกายภาพแล้ว
การใช้เพจร่วมกัน
โครงสร้างของตารางเพจ (Memory Protection)
โครงสร้างแบบลำดับชั้น (Hierarchical paging)
หมายเลขเพจ (page number)
ขอบเขตเพจ (page offset)
โครงสร้างแบบตารางเฮช (Hash page table)
ค่าหมายเลขเพจเสมือน (Virtual-page number)
ค่าดรรชนีที่ชี้ไปยังเฟรมเพจ (Page frame)
ค่าของพอยเตอร์ ที่ชี้ไปยังหน่วยเชื่อมโยงในลิงก์ลิสต์
โครงสร้างเพจแบบผกผัน (Inverted page table)
Paging และการแก้ไขปัญหา External Fragmentation
การแก้ปัญหา Internal Fragmentation
ปัญหา Internal fragmentation คือ การใช้งานพื้นที่ไม่คุ้มค่า จากหลักการของเพจจิ้ง จะมีน้อย ครั้งมากที่ขนาดของข้อมูลกับขนาดหน้าจะเท่ากันพอดี ส่วนใหญ่จะเหลื่อม ท าให้ต้องเสียหน้าเพิ่มขึ้นอีก หน้าเกิดช่องว่างไม่ได้ใช้ภายในพื้นที่ที่จอง
การแบ่งส่วน
วิธีพื้นฐาน (Basic Method)
ฮาร์ดแวร์(Hardware)
การป้องกันและการใช้ตอนร่วมกัน (Protection and Sharing)
การสูญเปล่าพื้นที่ย่อย (Fragmentation)