อีกวิธีหนึ่งในการแตกแฟรกเมนต์ภายนอกคือ เพื่ออนุญาตให้พื้นที่ที่อยู่แบบลอจิคัลของกระบวนการไม่อยู่ติดกัน กระบวนการนี้ได้รับการจัดสรรด้วยหน่วยความจำกายภาพที่มีอยู่ และเมื่อใดก็ตามที่สามารถใช้ในภายหลังได้ กระบวนการนั้นจะถูกกำหนดให้กับกระบวนการ
ปัญหาของการกระจายตัวภายนอกคืออะไร
การแตกแฟรกเมนต์ภายนอกเกิดขึ้น เมื่อหน่วยความจำว่างถูกแยกออกเป็นบล็อกเล็กๆ และกระจายไปตามหน่วยความจำที่จัดสรร มันเป็นจุดอ่อนของอัลกอริธึมการจัดสรรพื้นที่เก็บข้อมูลบางตัวเมื่อไม่สามารถสั่งหน่วยความจำที่ใช้โดย โปรแกรมอย่างมีประสิทธิภาพ … จัดสรรสามช่วงตึก A, B และ C ขนาด 0x1000
การบดอัดแก้ปัญหาการแตกร้าวจากภายนอกได้อย่างไร
เรายังสามารถใช้ compaction เพื่อลดความน่าจะเป็นของการกระจายตัวภายนอก ในการบดอัด พาร์ติชั่นว่างทั้งหมดจะถูกทำให้ต่อเนื่องกัน และพาร์ติชั่นที่โหลดทั้งหมดจะถูกนำมารวมกัน เมื่อใช้เทคนิคนี้ เราสามารถเก็บกระบวนการที่ใหญ่กว่าไว้ในหน่วยความจำได้
คุณจะแก้ปัญหาการแตกแฟรกเมนต์โดยใช้การเพจได้อย่างไร
เพจจิ้งช่วยในการแยกแฟรกเมนต์ภายนอกได้สองวิธี
- อย่างแรก มันแบ่งหน่วยความจำออกเป็นส่วน ๆ ที่อยู่ติดกันขนาดคงที่ - หน้า - ที่ "ใหญ่พอ" ดังนั้นจึงไม่เคยไร้ประโยชน์ …
- ประการที่สอง ฮาร์ดแวร์การเพจมีระดับของทางอ้อมระหว่างหน้าแอปพลิเคชันและหน้าหน่วยความจำกายภาพ
อัลกอริธึมใดบ้างที่ประสบปัญหาการแตกแฟรกเมนต์ภายนอก
Segmentation อาจทำให้เกิดการแตกแฟรกเมนต์ภายนอก เมื่อบล็อคของหน่วยความจำว่างทั้งหมดมีขนาดเล็กเกินไปที่จะรองรับเซ็กเมนต์ แต่ผลรวมของพื้นที่ว่างมากกว่าขนาดเซ็กเมนต์ดังนั้น เพจจิ้งได้รับผลกระทบจากการแตกแฟรกเมนต์ภายใน และการแบ่งเซกเมนต์ทนทุกข์ทรมานจากปัญหาการแตกแฟรกเมนต์ภายนอก