วันพุธที่ 25 สิงหาคม พ.ศ. 2553

การแบ่งเป็นเซ็กเมนต์

การแบ่งเป็นเซ็กเมนต์
• แบ่งโปรเซส หรือโปรแกรม ออกเป็นส่วน ๆ โดยแต่ละส่วนนั้นไม่จำเป็นต้องมีความยาวเท่ากัน (แต่อาจจะมีการกำหนดให้อยู่ภายใต้ขนาดที่ใหญ่ที่สุดที่ระบบกำหนด)
• มีการแปลงแอ็ดเดรสทางตรรกเป็นแอ็ดเดรสจริงในหน่วยความจำเหมือนการแบ่งเป็นหน้าที่ต้องใช้ข้อมูล 2 ส่วน คือ เลขที่ของเซ็กเมนต์ และระยะออปเซ็ทจากเซ็กเมนต์นั้น (offset)


การนำการแบ่งเป็นเซ็กเมนต์มาใช้ในหน่วยความจำเสมือน

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

การรวมวิธีการแบ่งเป็นหน้ากับการแบ่งเซ็กเมนต์เข้าด้วยกัน

• ข้อดีของการแบ่งเป็นหน้า
• การปกปิดไม่ให้โปรแกรมเมอร์มองเห็นการทำงานของมัน
• การป้องกันการสูญเสียพื้นที่ภายนอก (external fragmentation)
• ทำให้ระบบใช้หน่วยความจำหลักอย่างมีประสิทธิภาพ
• เนื่องจากหน้าของโปรเซสที่ถูกสลับเข้าและออกจากหน่วยความจำนั้น มีขนาดคงที่และเท่ากัน จึงมีความเป็นไปได้ที่เราจะพัฒนาอัลกอริทึ่มที่ ซับซ้อนเพื่อนำไปใช้ในการจัดการกับหน่วยความจำได้
• ข้อดีของการแบ่งเป็นเซ็กเมนต์ ดังที่กล่าวก่อนหน้านี้ และ
• สามารถจัดการโครงสร้างข้อมูลที่มีขนาดไม่คงที่ได้ดี
• ทำโปรแกรมเป็นโมดูล
• สนับสนุนการแบ่งปันและการป้องกันเซ็กเมนต์

ไม่มีความคิดเห็น:

แสดงความคิดเห็น