แนะนำ, 2024

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

ความแตกต่างระหว่างการกระจายตัวของภายในและภายนอก

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

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

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

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

คำจำกัดความของการกระจายตัวภายใน

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

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

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

ความหมายของการกระจายตัวภายนอก

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

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

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

ความแตกต่างที่สำคัญระหว่างการกระจายตัวของภายในและภายนอก

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

สรุป:

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

Top