用戶棧和內核站的區別
內核棧:內存中屬於操作系統空間的一塊區域
作用:1保存中斷現場,對於嵌套中斷,被中斷程序的現場信息一次壓入系統棧,中斷返回時逆序彈出
2保存操作系統程序相互調用的參數,返回值,以及函數的局部變量
用戶棧是用戶進程空間的一塊區域,用於保存用戶空間子程序間調用的參數,返回值以及局部變量。
爲什麼不能只用一個棧?
1,如果只用系統棧,系統棧一般大小有限,用戶程序調用次數可能很多。如果中斷有16個優先級,那麼系統棧一般大小爲15(只需保存15個低優先級中斷,另一個高優先級中斷在運行)用戶程序調用次數很多,那樣15次子程序調用以後的子程序的參數,返回值,局部變量就不能保存,用戶程序也就不能正常運行。
2,如果只用用戶棧,系統程序需要在某種保護下運行,而用戶棧在用戶空間不能提供相應的保護措施。