用戶棧和內核棧的區別

用戶棧和內核站的區別

內核棧:內存中屬於操作系統空間的一塊區域

作用:1保存中斷現場,對於嵌套中斷,被中斷程序的現場信息一次壓入系統棧,中斷返回時逆序彈出

   2保存操作系統程序相互調用的參數,返回值,以及函數的局部變量

用戶棧是用戶進程空間的一塊區域,用於保存用戶空間子程序間調用的參數,返回值以及局部變量。


爲什麼不能只用一個棧?

1,如果只用系統棧,系統棧一般大小有限,用戶程序調用次數可能很多。如果中斷有16個優先級,那麼系統棧一般大小爲15(只需保存15個低優先級中斷,另一個高優先級中斷在運行)用戶程序調用次數很多,那樣15次子程序調用以後的子程序的參數,返回值,局部變量就不能保存,用戶程序也就不能正常運行。

2,如果只用用戶棧,系統程序需要在某種保護下運行,而用戶棧在用戶空間不能提供相應的保護措施。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章