Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่7 การจัดการหน่วยความจำ, นางสาว สุพิชฌาย์ พระอินทร์ดี รหัสนิสิต…
บทที่7 การจัดการหน่วยความจำ
ประเภทของหน่วยความจำ
หน่วยความจำภายใน
ใช้สำหรับเก็บคำสั่ง และข้อมูลที่ต้องการทำงานทด้วยความเร็วสูง
หน่วยความจำหลัก
สำหรับเก็บคำสั่งและข้อมูลระหว่างการทำงาน
หน่วยความจำสำรอง
ใช้สำหรับเก็บข้อมูลที่มีขนาดใหญ่ และเป็นข้อมูลที่ยังไม่
ต้องการนำมาประมวลผล
แนวคิดพื้นฐานการจัดการหน่วยความจำหลัก
ควบคุมดูแลสถานะของแต่ละตำแหน่งของหน่วยความจำหลัก
ตัดสินว่าควรจัดสรรหน่วยความจำหลักขนาดเท่าไร ให้กับงานใด ณ ตำแหน่งใดของหน่วยความจำหลัก
จัดสรรหน่วยความจำหลักให้งานที่ได้เลือกแล้ว
ปลดปล่อยหน่วยความจำหลักให้ว่าง เมื่อทำงานเสร็จแล้ว
หน่วยความจำหลัก
หน่วยความจำหลัก เป็นศูนย์กลางของการทำงานต่าง ๆ ของระบบคอมพิวเตอร์ ทำหน้าที่ เก็บชนิดกระบวนการในการประมวลผลคำสั่ง
การเชื่อมโยงตำแหน่ง
เวลาแปลโปรแกรม
เวลาโหลดโปรแกรม
เวลากระทำการ
Dynamic Loading
การทำ Dynamic loading อาศัยการ Implement โดยการออกแบบโปรแกรมเอง
Dynamic Linking and Shared Libraries
ตำแหน่งที่ว่างทางกายภาพกับตำแหน่งที่ว่างทางตรรกะ
กลุ่มของตำแหน่งทางตรรกะทั้งหมดที่ถูกสร้างโดยโปรแกรมจะถูกเรียกว่า ตำแหน่งที่ว่างทางตรรกะ (Logical address space) คือ ตำแหน่งเสมือนที่อ้างอิงโดยโปรแกรม
กลุ่มของตำแหน่งที่ว่างทางกายภาพที่เกี่ยวข้องกับตำแหน่งทางตรรกะ
เหล่านั้นถูกเรียกว่า ตำแหน่งที่ว่างทางกายภาพ
การจัดการหน่วยความจำหลัก
วิธีการซ้อนทับ
หากมีความจำเป็นที่ต้องใช้โพรเซสที่มีขนาดมากกว่าขนาดของหน่วยความจำหลักสามารถทำได้โดยวิธีซ้อนทับ
วิธีการสับเปลี่ยน
เพื่อให้หน่วยความจำหลักมีพื้นที่ว่างมากเพียงพอที่จะบรรจุโพรเซสอื่น เป็นการสับเปลี่ยน (Swap) ให้โพรเซสอื่นทำงาน
การจัดสรรหน่วยความจำแบบต่อเนื่อง
การจัดสรรพื้นที่แบบขนาดคงที่
ใช้สำหรับป้องกันการทำงานโพรเซสของผู้ใช้
จากโพรเซสอื่น
ข้อดี คือ ความง่ายในการจัดสรรหน่วยความจำหลัก ทำให้ลด
ความซ้าซ้อนของระบบปฏิบัติการลงและง่ายในการเขียนโปรแกรม
ข้อเสียคือ หน่วยความจำหลักไม่ได้ถูกใช้งานอย่างเต็มที
การแบ่งหน่วยความจำออกเป็นพาร์ติชั่น
การกำหนดขนาดพาร์ติชั่นคงที่
หน่วยความจำหลักต้องถูกจัดสรรแบ่งออกเป็นส่วน ๆ ที่มีขนาด
แน่นอนวิธีนี้เหมาะสำหรับกรณีที่ระบบรู้ขนาดของโพรเซสล่วงหน้า
การกำหนดขนาดของพาร์ติชั่นให้เปลี่ยนแปลงได้
จัดสรรหน่วยความจำหลักให้โพรเซสต่าง ๆ ตามขนาดที่ผู้ใช้ร้องขอเมื่อมีการขอใช้หน่วยความจำหลัก ระบบปฏิบัติการจะตรวจสอบขนาดของโพรเซส และจัดสรรหน่วยความจำหลักให้แก่โพรเซสเป็นขนาด เท่ากันกับขนาดของโพรเซสนั้น ๆ ซึ่งอาจจะมีขนาดพาร์ติชั่นที่เหมาะสม หรืออาจต้องแบ่งพาร์ติชั่นใหม่ เมื่อโพรเซสทำงานเสร็จเรียบร้อย ระบบปฏิบัติการจะเรียกเอาหน่วยความจำทั้งหมดคืนจากโพรเซส
การจัดการหน่วยความจำหลักแบบพาร์ติชั่นและย้ายที่อยู่
ทำได้ด้วยการนำเอาโปรแกรมไปผ่านโหลดเดอร์ อีกครั้งหนึ่ง เพื่อให้โหลดเดอร์ทำการย้ายที่อยู่ วิธีนี้ระบบต้องเสียเวลาในการโหลดโปรแกรมใหม่ทั้งหมด
ปัญหาการจัดสรรหน่วยเก็บแบบพลวัต
First-Fit คือ เลือกช่องโหว่แรกที่พบและมีขนาดใหญ่เพียงพอกับพื้นที่ที่ต้องการ เป็นวิธีที่ง่าย
ที่สุดและเสียเวลาน้อยที่สุด
Best-Fit คือ การเลือกช่องโหว่ที่เหมาะสมที่สุด ต้องหาเนื้อที่ว่างโดยต้องตรวจดูพื้นที่ว่าง
ทั้งหมดในระบบ เพื่อหาเนื้อที่ว่างที่มีขนาดเท่ากัน
Worst-Fit คือ การเลือกช่องโหว่ที่ใหญ่ที่สุด เป็นวิธีป้องกันไม่ให้เกิดปัญหาการเกิดเนื้อที่ว่างเล็ก ๆ
ปัญหาของการจัดการหน่วยความจำ
การสูญเปล่าของพื้นที่ย่อยภายนอก
การแก้ปัญหาการสูญเปล่าของพื้นที่ย่อยภายนอก
การสูญเปล่าของพื้นที่ย่อยภายใน
การแบ่งพื้นที่เป็นหน้า
หน่วยความจำจะถูกแบ่งออกเป็นพื้นที่เท่า ๆ กัน เรียงต่อกันไปเรื่อย ๆ ไม่มีช่องว่าง จนหมดพื้นที่หน่วยความจำ การจองหน่วยความจำจะจองเป็นตัวเลขลงตัวเสมอ
การป้องกันหน่วยความจำ
แบ่งบิตสถานะออกเป็น 2 บิต
บิตใช้งานได้ เป็นบิตสถานะที่บอกว่าข้อมูลในเพจถูกอ่านเข้าสู่หน่วยความจำทางกายภาพแล้ว และสามารถนำไปใช้งานได้ทันที
บิตใช้งานไม่ได้เป็นบิตสถานะที่บอกว่าข้อมูลในเพจนั้นไม่มีอยู่ในหน่วยความจำทางกายภาพแล้ว และไม่สามารถนำไปใช้งานได้
การใช้เพจร่วมกัน
โครงสร้างของตารางเพจ
โครงสร้างแบบลำดับชั้น
โครงสร้างแบบตารางเฮช
โครงสร้างเพจแบบผกผัน
การแก้ปัญหา Internal Fragmentation
คือ การใช้งานพื้นที่ไม่คุ้มค่า จากหลักการของเพจจิ้ง จะมีน้อย ครั้งมากที่ขนาดของข้อมูลกับขนาดหน้าจะเท่ากันพอดี ส่วนใหญ่จะเหลื่อม ทำให้ต้องเสียหน้าเพิ่มขึ้นอีก หน้า เกิดช่องว่างไม่ได้ใช้ภายในพื้นที่ที่จอง
การแบ่งส่วน
วิธีพื้นฐาน
ฮาร์ดแวร
การสร้างตารางเลขตอน
การป้องกันและการใช้ตอนร่วมกัน
การสูญเปล่าพื้นที่ย่อย
นางสาว สุพิชฌาย์ พระอินทร์ดี รหัสนิสิต 6221601886 หมู่เรียน700 เลขที่ 27 โปรแกรมที่ใช้ Coggle