2012-11-19 146 views
4

假設小型計算機系統具有4MB的主內存。系統以固定大小的框架管理它。幀表維護存儲器中每個幀的狀態。一幀應該有多大(多少字節)?您可以選擇以下選項之一:1K,5K或10K字節。由於碎片和幀表存儲,這些選擇中的哪一個可以最大限度地減少由進程浪費的總空間?操作系統主內存碎片

假設如下:平均來說,10個進程將駐留在內存中。每個過程的平均浪費空間量將爲1/2幀。 對於每個幀,幀表必須有一個條目。每個條目需要10個字節。


這裏是我的回答:

1K會減少碎片,已知小尺寸導致大表,但更小的空間浪費。

10個進程〜每個幀浪費1/2幀。


我在正確的軌道上嗎?

+0

我懷疑沒有具體的方法來確定操作系統的最佳頁面大小。它應該取決於各種建築問題。如TLB,pae表大小等。例如,如果您的處理器中有大的TLB,則可以高效地使用小頁面大小。 –

回答

0

是的,你是。我同意你的看法,在這樣的系統中,最小的尺寸最有意義。但是,例如,如果您採用x86-64的情況,其中選項爲4kb,2MB,1GB。考慮到近似4GB的現代內存大小,顯然1GB是沒有意義的,但是因爲大多數程序現在包含相當多的編譯代碼,或者在解釋和VM語言的情況下,VM的所有代碼,2MB頁面使得最有意義的。換句話說,要確定這些事情,您必須考慮此係統中程序的平均內存使用情況,程序數量,最重要的是平均碎片與頁面大小的比例。因爲雖然像這樣的小內存大小可從低碎片中受益,但4GB內存上的4kb頁面是非常大的頁表。 大。