相當于用戶端伺服器的模式;
核心空間為使用者空間提供服務
【核心空間和使用者空間】:
我們通常将運作模式稱作核心空間和使用者空間。子產品運作在所謂的核心空間裡,而應用程式運作在所謂的使用者空間裡。每一個模式都有自己的記憶體映射,即自己的位址空間。
兩種操作模式在作業系統中的不同:
實際上作業系統的作用是為應用程式提供一個對計算機硬體的一緻視圖,必須負責程式的獨立操作以及保護資源不受非法通路,而這個的完成必須依賴于CPU能夠保護系統軟體不受應用程式的破壞。
應對方式:在CPU中實作不同的操作模式,不同的級具有不同的功能,較低的級别将禁止這些操作,程式代碼隻能通過有限數目的門來從一級切換到另一級。Unix系統采用最高和最低兩個級别,核心運作在最進階(也成為管理者狀态),應用運作在最低級(即所謂的使用者态),最低級中處理器控制着對硬體的直接通路以及對記憶體的非授權通路。
為了安全問題,一些I/O操作的指令都被限制在隻有核心模式可以執行,是以作業系統有必要提供接口來為應用程式提供諸如讀取磁盤某位置的資料的接口,這些接口就被稱為系統調用。
兩種模式的切換:
當應用程式執行系統調用或者被硬體中斷挂起是,Unix将執行模式從使用者空間切換到核心空間。執行系統調用的核心代碼運作在程序上下文中,它代表調用程序執行操作,是以能夠通路程序位址空間的所有資料,而處理硬體中斷的核心代碼和程序是異步的,與任何一個特定程序無關。
當作業系統接收到系統調用請求後,會讓處理器進入核心模式,進而執行諸如I/O操作,修改基址寄存器内容等指令,而當處理完系統調用内容後,作業系統會讓處理器傳回使用者模式,來執行使用者代碼。
系統中兩種模式的辨識:
”使用者模式“與“核心模式”,通過一個标簽位來鑒别目前正處于什麼模式。一些諸如修改基址寄存器内容的指令隻有在核心模式中可以執行,而處于使用者模式的時候硬體會直接跳過這個指令并繼續執行下一個。(即系統調用)
補充:
中斷挂起:因為某種原因,中斷不能馬上執行,是以“挂起”等待。
等程式可以中斷,在執行“響應挂起的中斷”
比如有高、低級别的中斷同時發生,就挂起低級别中斷,等進階别中斷
程式執行完,在執行低級别中斷。
異步:一種通訊方式,對裝置需求簡單。我們的PC機提供的标準通信接口都是異
步的。異步雙方不需要共同的時鐘,也就是接收方不知道發送方什麼時候發
送,是以在發送的資訊中就要有提示接收方開始接收的資訊,如開始位,同
時在結束時有停止位。
異步的另外一種含義是計算機多線程的異步處理。與同步處理相對,異步處理不用阻塞目前線程來等待處理完成,而是允許後續操作,直至其它線程将處理完成,并回調通知此線程。
但此處需要明确的是:異步與多線程與并行不是同一個概念.
------------------越是喧嚣的世界,越需要甯靜的思考------------------
合抱之木,生于毫末;九層之台,起于壘土;千裡之行,始于足下。
積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。故不積跬步,無以至千裡;不積小流,無以成江海。骐骥一躍,不能十步;驽馬十駕,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇鳝之穴無可寄托者,用心躁也。