內核如何處理從IRQ中調用的schedule()函數?說,task1調用IRQ0(定時器)的調度,task2從INT 80h恢復(我忘記強制任務切換的系統調用的名稱)。 IRQ「ACK」信號永遠不會被髮送,並且IRQ將停止發送。Linux如何處理從IRQ中調度()的調用?
我指的只是x86個人電腦。我正在爲我自己的小內核(我試圖)編寫Linux調度程序/進程系統進行研究,而且我無法理解我缺少的東西。我知道我錯過了一些事情,因爲Slackware在我的電腦上運行的事實證明了調度程序工作的事實:P
調度如何工作呢?我的印象是你必須在0環境切換。否則,像切換內存映射和更改調度程序數據的內容不會被大聲說出。據我所知,從用戶land/ring3切換到ring0的唯一方法是通過中斷或sysenter/exit類型的調用。 – Caleb1994
哦,你也可以通過iret切換戒指。忘了那一個。 – Caleb1994
好的。那麼我越看越......越有意義。我相信我自己的想法正在困擾着我......感謝您的幫助! – Caleb1994