全域性空間和區域性空間

2021-08-28 16:33:05 字數 927 閱讀 9458

所以每個任務包含兩個部分:全域性部分和私有部分.

gdt最大的尺寸是 216 位元組,又每個段描述符佔 8 位元組,所以gdt可以劃分 213 個段,即 8192 個.又gdt的 0 號描述符不能使用,故實際是 8191 個段,但這只有 4gb可以忽略不計.又段內偏移位址是 32 位,段的長度最大是 4gb,因此,乙個任務的全域性空間,其總大小為213

×

\times

× 232 = 245 位元組,即 32tb.

同理,區域性描述符表ldt可以劃分 213 個,即 8192 個描述符,每個段的長度最大是 4gb.故,乙個任務的區域性空間,其總大小為213

×

\times

× 232 = 245 位元組,即 32tb.

這樣一來,每個的總位址空間為32+32=64tb,但在乙個 32 根位址匯流排的處理器上,無論如何不能這麼巨大的儲存空間.但其實這些只是虛擬的位址空間.作業系統允許程式的編寫者使用這麼巨大的位址空間編寫程式.

這就是說編譯器不考慮處理器的定址空間的大小,也不考慮物理記憶體的大小,它只負責編譯程式.但是,當程式超出理記憶體的大小時,或作業系統無法分配這麼大的物理記憶體空間時,怎麼辦?

同一塊物理記憶體,可以讓多個任務,或者多個任務的不同段使用.

當執行或者訪問乙個新的段時,如果它不在物理記憶體中(描述符的"p"位為 0 ,這時會引發中斷),而且也沒有空閒的物理記憶體來載入它

那麼作業系統將在記憶體查詢乙個暫時用不到的段,把它換出到磁碟中,並把騰出的空間分配給馬上要訪問的段

然後改變段的描述符,使之指向這段記憶體空間(同時描述符的"p"位改為 1 ,這之後中斷返回).

下一次,當換出的段又用到時,再按同樣的方法載入到記憶體.

全域性元件和區域性元件

根元件 new vue 根元件只有乙個 乙個根元件中包含什麼 狀態 data 是給模板提供資料 方法 methods 是給模板提供方法 生命週期鉤子函式 8個生命週期函式 計算屬性 computed 根據已有的狀態,計算出乙個新的狀態 過濾器 對狀態進行格式化 el 是指定模板 子元件 子元件中包含...

全域性鉤子和區域性鉤子

蒐集了許多的資料,也做了各種嘗試,但是還不是很明白具體的分類.根據目前所掌握的總結一下 區域性鉤子 注意事項 第乙個引數是wh keyboard類似的區域性鉤子引數,第二個是 函式,可以再當前dll exe 中也可以在其他的dll中 第三個引數可設為0就可以,可能是忽略這個引數了吧.第四個引數是當前...

函式(命名空間 作用域 全域性變數和區域性變數)

命名空間指的是儲存程式中的變數名和值的地方。命名空間的本質是乙個字典,用來記錄變數名稱和值。字典的key是變數的名稱,字典的value對於的是變數的值。例如 命名空間一共分為三種 區域性命名空間 全域性命名空間 內建命名空間 區域性空間 每個函式都有自己的命名空間,叫做區域性空間,它記錄了函式的變數...