2011-10-25 56 views
0

監控模式與用戶模式單獨的「主管」和「用戶」模式需要什麼?

爲什麼操作系統需要這種區別?

我知道Supervisor模式是用於OS支持的,我知道User模式是用於應用程序支持的。我隱約明白,這些是用來確保用戶的操作只發生在用戶模式下,而操作系統操作只發生在超級模式下。我只是在尋找一些更深入的討論,以填補我可能缺失的任何空白。

謝謝。

回答

1

監督模式提供堆棧指針的第二個副本。用戶堆棧和管理器堆棧都位於不同的內存區域中。當前任務的堆棧指針將指向監督模式或用戶模式。

USP - A7:用戶棧指針

SSP - A7:監控堆棧指針

每個模式都有一個堆棧指針,因爲每個模式是代碼自包含螺紋 - 當前頂層任務的一種另一個用於操作系統。如果他們都使用相同的堆棧,那麼操作系統可能會屈從爲用戶應用程序分配的堆棧。換一種說法。 OS可能不知道爲了支持任何給定的操作系統功能,堆棧的限制是什麼。

有兩個單獨的堆棧要安全得多。如果一個系統只有一個stakc,操作系統必須自行調整堆棧指針寄存器,以確保不同的內存區域得到適當的使用 - 例如,內存的操作系統和內存的任務。

3

用戶模式禁止某些操作 - 例如寫入隨機存儲器 - 以保護程序彼此不同。 Supervisor模式允許這些操作,因爲操作系統需要它們執行輸入輸出,啓動程序等。

例如,查看內存保護。它可以防止程序寫入對方的內存。但爲了使其運行,操作系統需要能夠爲每個程序設置內存頁映射。如果任何程序被允許設置,該怎麼辦?這樣就沒有保護 - 每個程序都可以顛覆保護。這就是爲什麼需要超級用戶模式來進行這種操作的原因 - 只有操作系統可以做到這一點,而用戶程序則不能。

Btw監督模式不禁止「用戶操作」 - 它允許任何事情。

+0

謝謝,這很有幫助 – BigBug

相關問題