在由Maurice撰寫的「Unix操作系統的設計」一書中提到,中斷在運行過程的上下文中被處理,因爲它不會產生新的服務中斷服務程序。爲什麼在linux和unix的情況下中斷服務的方式有什麼設計差異?
所以,在Unix系統中的處理器被做的正是的兩件事情之一: 1.在用戶空間,在一過程執行用戶代碼 2.在內核空間中,在過程情況下,代表的執行具體過程。
但是,在許多操作系統(包括Linux)中,中斷處理程序不會在進程上下文中運行。相反,它們運行在與任何進程無關的特殊中斷上下文中。這種特殊的上下文僅用於讓中斷處理程序快速響應中斷,然後退出。
所以,在Linux中處理器被做的正是的三件事情之一: 1.在用戶空間,在一過程執行用戶代碼 2.在內核空間中,在過程情況下,代表的執行具體過程。 3.在內核空間中,在中斷上下文中,不與進程關聯,處理中斷。
我想了解爲什麼這種設計變化?如果我們在運行過程的上下文中服務中斷會不會更快?