แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่างการแบ่งหน้าและการแบ่งส่วนในระบบปฏิบัติการ

การจัดการหน่วยความจำในระบบปฏิบัติการเป็นฟังก์ชั่นที่จำเป็นซึ่งช่วยให้การจัดสรรหน่วยความจำไปยังกระบวนการสำหรับการดำเนินการและการจัดสรรคืนหน่วยความจำเมื่อกระบวนการไม่ต้องการอีกต่อไป ในบทความนี้เราจะหารือเกี่ยวกับการจัดการหน่วยความจำสองเพจและการแบ่งส่วน ความแตกต่างพื้นฐานระหว่างการแบ่งหน้าและการแบ่งส่วนคือ "หน้า" เป็นบล็อกขนาดคงที่ส่วน "ส่วน" เป็นบล็อกขนาดตัวแปร

เราจะพูดถึงความแตกต่างเพิ่มเติมระหว่างเพจจิ้งและเซกเมนต์ด้วยความช่วยเหลือของกราฟเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบเพจจิ้งการแบ่งกลุ่ม
ขั้นพื้นฐานหน้ามีขนาดบล็อกคงที่ส่วนคือขนาดตัวแปร
การกระจายตัวของการเพจอาจนำไปสู่การแตกแฟรกเมนต์ภายในการแบ่งกลุ่มอาจนำไปสู่การกระจายตัวภายนอก
ที่อยู่ที่อยู่ที่ผู้ใช้ระบุจะถูกหารด้วย CPU ในหมายเลขหน้าและออฟเซ็ตผู้ใช้ระบุแต่ละที่อยู่ด้วยจำนวนเซ็กเมนต์สองครั้งและออฟเซ็ต (จำกัด จำนวนส่วน)
ขนาดฮาร์ดแวร์จะตัดสินใจขนาดหน้าขนาดเซ็กเมนต์ถูกระบุโดยผู้ใช้
ตารางการเพจเกี่ยวข้องกับตารางเพจที่มีที่อยู่พื้นฐานของแต่ละเพจการแบ่งส่วนเกี่ยวข้องกับตารางส่วนที่มีหมายเลขกลุ่มและชดเชย (ความยาวส่วน)

ความหมายของการเพจ

การเพจ เป็น โครงร่างการจัดการหน่วยความจำ การเพจช่วยให้กระบวนการจัดเก็บในหน่วยความจำในลักษณะที่ ไม่ต่อเนื่องกัน กระบวนการจัดเก็บในลักษณะที่ไม่ต่อเนื่องกันจะช่วยแก้ปัญหาการ กระจายตัว ของ ภายนอก

สำหรับการนำเพจไปใช้ พื้นที่หน่วยความจำแบบฟิสิคัลและโลจิคัล จะถูกแบ่งออกเป็นบล็อกขนาดคงที่เดียวกัน บล็อกขนาดหน่วยความจำทางกายภาพเหล่านี้เรียกว่า เฟรม และบล็อกขนาดหน่วยความจำแบบลอจิคัลเรียกว่า เพจ

เมื่อกระบวนการจำเป็นต้องดำเนินการหน้ากระบวนการจากพื้นที่หน่วยความจำโลจิคัลจะถูกโหลดลงในเฟรมของพื้นที่ที่อยู่หน่วยความจำกายภาพ ตอนนี้ที่อยู่ที่สร้างโดย CPU สำหรับเข้าถึงเฟรมแบ่งออกเป็นสองส่วนคือ หมายเลข หน้า และ ออฟเซ็ตหน้า

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

ความหมายของการแบ่งส่วน

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

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

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

ความแตกต่างที่สำคัญระหว่างการแบ่งหน้าและการแบ่งส่วน

  1. ความแตกต่างพื้นฐานระหว่างการแบ่งหน้าและการแบ่งเซ็กเมนต์คือเพจมี ขนาดบล็อกคงที่ เสมอส่วนเซ็กเมนต์นั้นมี ขนาดตัวแปร
  2. การเพจอาจนำไปสู่ การแตก แฟรกเมนต์ ภายใน เนื่องจากเพจมีขนาดบล็อกคงที่ แต่อาจเกิดขึ้นได้ว่ากระบวนการไม่ได้รับขนาดบล็อกทั้งหมดซึ่งจะสร้างการแตกแฟรกเมนต์ภายในในหน่วยความจำ การแบ่งส่วนอาจนำไปสู่การ แตกแฟรกเมนต์ภายนอก เนื่องจากหน่วยความจำเต็มไปด้วยบล็อกขนาดตัวแปร
  3. ในการสลับหน้าผู้ใช้จะมี เพียงจำนวนเต็มเดียว เป็นที่อยู่ซึ่งถูกแบ่งโดยฮาร์ดแวร์ใน หมายเลขหน้าและออฟเซ็ ต ในอีกทางหนึ่งในการแบ่งส่วนผู้ใช้ระบุที่อยู่ในสองปริมาณคือ หมายเลขส่วนและชดเชย
  4. ขนาดของหน้าจะตัดสินใจหรือระบุโดย ฮาร์ดแวร์ ในทางกลับกันขนาดของกลุ่มจะถูกระบุโดย ผู้ใช้
  5. ในการเพจเพจ ตารางจะ แม็พ แอดเดรสโลจิคัลกับแอดเดรสฟิสิคัล และมีแอดเดรสฐานของแต่ละเพจที่เก็บไว้ในเฟรมของพื้นที่หน่วยความจำฟิสิคัล อย่างไรก็ตามในการแบ่ง กลุ่มตารางเซ็กเมนต์จะ แมปที่ อยู่แบบโลจิคัลกับที่อยู่จริง และจะมีหมายเลขเซกเมนต์และออฟเซ็ต (ขีด จำกัด ส่วน)

สรุป:

เพจจิ้งและการแบ่งส่วนทั้งสองเป็น แผนการจัดการหน่วยความจำ เพจช่วยให้หน่วยความจำสามารถแบ่งออกเป็น บล็อกขนาดคง ที่ในขณะที่การแบ่งส่วนแบ่งพื้นที่หน่วยความจำออกเป็น ส่วนของขนาดบล็อกตัวแปร เมื่อเพจจิ้งนำไปสู่ การแตกแฟรกเมนต์ภายใน การแบ่งส่วนจะนำไปสู่การ แตกแฟรกเมนต์ภายนอก

Top