看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《metalalive (想玩音樂)》之銘言: : 請教一下恐龍本中只有說明 : contiguous memory-allocation 有 external fragmentaion 的問題 : ( ex. first-fit , best-fit ... etc. ) : 有查過習題解答 8.5 裡面的敘述如下 : Contiguous memory allocation scheme suffers from external : fragmentation as address spaces are allocated contiguously and : holes develop as old processes dies and new processes are initiated. : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ?? 這段敘述無法理解 @@ 洪逸上課有提到過有些書會用hole來替代fragmentation 我猜想它是想表達contiguous memory allocation scheme在 "記憶體位址是被連續配置"且"那些剩餘的零碎記憶體要在舊的process結束 且將要配置新的process時才能被利用"這個概念裡, 也就是沒有利用dynamic binding支援解決外部碎裂的情況下(ex. compaction技術), 將會suffers from external fragmentation : 那它到底有無 internal fragmentation 的問題? contiguous的allocation天生是沒有internal fragmentation的! 但是如果因為一些過小的free block仍然留在available list裡, 有可能能造成search time增加及記錄成本可能大於可用空間價值的情況, 在這種情況底下有可能會採用一個作法就是: "讓OS規定一個值,只要配置後若剩下的free block會小於此值將整塊分配給它"這個策略 如果有採用這個策略的話才會造成internal fragmentation的產生 : 還有 segmentation 有無 internal fragmentation 的問題? paging會有內部碎裂,無外部碎裂; segment無內部碎裂,會有外部碎裂。 原因是每個segment都是切成使用者角度來看的, 像是一個process可切成code segment, data segment, stack segment三個部分來配置, 所以大小不一定都相同,也就會有external fragmentation的產生了。 : 不知道在課本哪一段有相關的敘述?? : 找不到在哪裡 : 感謝 @@ 我還沒看課本XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.150.81
jackbll:推 講的真仔細 08/19 23:27
metalalive:感謝用心講解 @@b 08/23 00:10