2017-10-05 78 views
3

我正在閱讀this本書,並且在「過程結構」一章中,在討論過程的上下文時,它將上下文分割2部分。靜態和動態部分。它說每個進程都有一個用戶堆棧和一個內核堆棧,內核堆棧放在上下文的動態部分。爲什麼內核棧放置在上下文的動態部分

進程的系統級上下文的動態部分由一組集合層組成,可視化爲後進先出堆棧。

和在定義的圖,

該圖的右側示出的背景下的動態部分。它由多個堆棧幀組成,其中每個幀包含上一層保存的寄存器上下文,以及內核堆棧作爲內核在該層中執行。

因此,雖然用戶空間堆棧放置在上下文的靜態部分,但內核堆棧放置在動態部分是否有任何特殊原因?

回答

1

對我而言,每個進程都有靜態的和動態的上下文。對於內核上下文,對最後一個動態部分的引用必須存儲在它的靜態上下文中。這樣系統就可以訪問動態部分。 Please look here

自內核以來需要動態上下文,用戶地是分開的。可能需要調用核心土地,並且來回地返回用戶土地。跟蹤該系統使用流程上下文的動態部分。

相關問題