2012-03-04 78 views
0

它必須停止一些時間進程來切換其他進程,並且還必須監視內存訪問等操作。那麼操作系統是否會逐一檢查並運行指令?操作系統是否與彙編代碼交互?

Ps。我剛剛開始學習彙編語言和計算機體系結構:)

回答

1

很多硬件都提供了定時中斷,這些定時中斷通常會獨立於軟件而觸發。引發的中斷對應於包含在引發中斷時將執行的過程的存儲器位置,在這種情況下,過程執行所謂的上下文切換和過程調度。大多數硬件信息,如程序計數器和各種寄存器內容都將存儲在每個進程的信息結構中。機器寄存器(程序使用的)的內容在程序再次開始執行之前被恢復。拿起一本關於操作系統設計的書將更詳細地介紹如何完成所有這些。

+0

謝謝!所以CPU比我想象的要多得多。 – bgeyts668 2012-03-05 04:59:42

0

不,操作系統不檢查指令,因爲在操作系統中這樣做會非常複雜和昂貴(很慢)。 CPU進行內存訪問檢查,當它們失敗時,它會在OS中執行指定的代碼,例如,終止當前進程並給出錯誤消息。

2

操作系統不執行代碼,處理器。受保護的模式也由處理器實現,操作系統僅對其進行配置。由違規觸發的陷阱由OS代碼處理,如果無法以合理的方式處理,最終會導致進程終止。上下文切換由來自時鐘節拍的硬件中斷啓動。或者阻塞I/O系統調用。