CPU如何區分指令來自作業系統還是使用者程序的?

時間 2021-05-11 23:22:14

1樓:夢遊客

CPU有專為作業系統保留的特權指令,但無論如何,也還是指令,對CPU來說,其與普通指令沒啥區別

就象CPU並不在乎這條指令是老張發出的,還是老王發出的,它只管執行就是了

2樓:崎車軩仁

順著這個頁面去了解,各種體系都有所覆蓋。想深入了解具體乙個體系,可以去找對應的開發手冊。

3樓:宅學部落-王利濤

如果從事嵌入式開發,對Linux和ARM比較熟悉,建議學習一下:

ARM處理器的普通模式和特權模式、協處理器Linux系統呼叫的實現及流程

作業系統的使用者態和核心態,與CPU的普通模式、特權模式之間的關係

4樓:

有專門的暫存器來標識當前是處於哪種特權狀態,使用者程式想要從低特權切換到高特權可以通過使用特定的切換指令。

不過這種指令在執行之後會強制跳轉到作業系統初始化時設定的指定位址上執行,執行完後再跳回原位址。使用者程式無法修改這個過程。

5樓:朱涵俊

x86的話通過cs段來區分,cs段選擇器有許可權等級,分為0,1,2,3共4級,作業系統一般只用0級跟3級。0級表示核心,驅動,3級表示應用程式。

6樓:zhonyong

首先,CPU沒有辦法區分出指令是來自作業系統,還是使用者程序。

但是,因為作業系統管理著所有的資源,作業系統知道哪些是使用者程序,哪些是系統程序。兩者可以通過通過特權級的標誌來加以區別。由此,CPU就知道了當前執行的是再特權級還是再使用者級,也可以粗略的說成,是工作在使用者態還是核心態。

7樓:

使用者態/核心態在CPU裡是有乙個狀態位來記錄的,CPU就是根據這個狀態位來判斷。保證這個狀態位當且僅當在作業系統內部為核心態,是作業系統的任務。

程式釋放CPU,作業系統如何得知

悽臨雨 目前其他6個答案,除了旺旺的答案,其他均有錯漏。程式釋放cpu 程式執行完。當執行緒呼叫sleep系函式,或核心級同步物件函式 各種鎖 同步IO讀取暫時無法執行時 均屬於休眠 執行緒退出是退出 休眠和退出均會主動釋放cpu 搶占式時間片到了是被動釋放cpu 主動釋放最終會呼叫作業系統提供的函...

作業系統和 CPU 哪個研發更難?

不會開車的老司機 當然是cpu 作業系統你可能要熬很久但你總能做出來有優點就會有人用 Cpu 君不見Pc端兩位大佬其中一位能活著靠的是什麼?某A 我要破產啦!我不幹了!某牙膏 小老弟差啥你說!錢不是問題 變色龍 都可以簡單啊,啥也不做,也可叫作業系統,玩票性質的作業系統唄,只列印一行hellowor...

作業系統如何增加對CPU架構的支援?

劉瑞祥 一般都是晶元廠家來做或者晶元廠家委託第三方來做,畢竟不同的晶元有可能指令集都不一樣,架構也不一樣,還有可能要提供專門的編譯器 陳明威 只見過linux核心。問題1 硬編碼實現 問題2 linux是由社群 發行商開發,硬體廠商會提供一定幫助問題3 會聽user guide,類似微控制器問題4 ...