pc的外圍硬體系統構成趨近固定,因此可以輕易的在作業系統內部劃分核心空間與使用者空間,系統核心與硬體裝置驅動位於核心空間,使用者程式位於使用者空間。
核心空間是固定的通過新增預定義的介面,執行中的作業系統可以通過模組內部定義約定知道這些模組究竟是幹什麼的。在需要使用某些功能的時候,能夠根據預定義的操作呼叫這些模組的功能,執行操作。當然這並不意味著作業系統在執行過程中必須要將這些東西完全載入記憶體,某些系統擁有配置機制,可以通過作業系統的配置機制感知外圍裝置配置情況,根據配置資訊動態載入核心空間模組。某些作業系統可能通過使用者空間載入驅動,這可以理解為核心空間中同樣存在乙個抽象的裝置驅動,外圍裝置實現了抽象裝置定義的功能介面。系統首先載入抽象模組,之後根據配置資訊載入對應的裝置驅動程式,這樣做的好處是當資料出現錯誤,程式出現bug的時候,可以在核心空間中利用預設的檢查手段發現問題,規避問題,做出補救。
使用者程式處於使用者空間,使用者空間與核心之間通過固定的函式(系統api)呼叫與通訊。使用者空間中程式是不固定的,不固定意味著各種可能。系統通過特定的機制將應用程式的**段載入到記憶體(執行空間)中,這個機制必定是固話在系統中的,是系統的必須組成,而不是像使用者程式一樣的外掛程式。作業系統中如果是通過特定明確的應用程式載入其它程式,只能說明此應用程式是作業系統內部機制的包裝,執行一些特殊操作,例如版本驗證等。系統通過任務輪換機制切換執行的程式。
作業系統有兩個核心,事件佇列與任務迴圈佇列。
作業系統管理整個計算機的硬體資源,硬體資源管理的方式基於事件驅動,作業系統預定義一些任務溝通cpu外圍裝置。當系統正常執行之後,通過內部機制載入應用程式**段,執行操作。
當需要利用外圍裝置的時候,程式呼叫內部機制生成乙個事件訊息,訊息進入作業系統的核心事件佇列中,作業系統會逐一執行核心實踐佇列中的事件,事件可能會呼叫各種硬體資源完成操作,程式與硬體之間的各種資料互動由作業系統接管。
系統執行的應用程式在啟動之後,會被新增到系統的任務迴圈佇列中,在這個佇列中乙個固定的單元代表著乙個應用程式執行序列,系統會根據內部演算法在迴圈佇列的所有任務塊中切換。啟動程式的時候新增任務塊,結束程式的時候,清空該任務塊。任務塊中擁有至少乙個空任務,當系統無操作的時候,閒置等待。
任務迴圈佇列就是俗稱的程序佇列。
那麼他在響應cpu的各種中斷的時候,同樣會先執行中斷服務程式將cpu當前現場保留下來,之後將cpu收到的中斷相關資訊記錄下來,將這個資訊投入到分析任務序列。專門的分析程式會根據系統中應用程式、驅動程式、系統預設在系統中的註冊資訊,生成乙個專門的事件資訊,這個事件資訊就是作業系統對於外部輸入的所有響應了。之後這個事件會被投放到專門的事件處理佇列中去。從mfc中分析出的理論是,系統分析得到的事件針對的是哪乙個服務、軟體、預設事件。就將它投入到該軟體內部的事件佇列【訊息迴圈】中。之後再根據軟體內部自定義的訊息路由選擇不同的分支進行處理。
以上機制的執行過程事例:
當應用程式啟動,作業系統通過內部機制,將程式載入執行空間,將執行空間的pc值寫入任務塊,作為當前任務執行進度,作業系統在所有的任務塊之間進行切換,任務塊執行過程中,系統會監視pc值變化,當任務執行需要呼叫硬體功能,應用程式呼叫的介面會自動生成乙個事件,該事件包含資料資訊與操作的模組資訊等。事件被投擲到作業系統的核心事件佇列中,系統執行過程從使用者空間切換到核心空間,在核心空間中,作業系統根據事件塊中包含的資訊對外圍硬體進行操作,獲取的資料通過介面返回給應用程式,系統執行由核心空間返回。
作業系統對於硬體裝置的操作是分裝置的,可能只有乙個總的事件佇列,也可能每個裝置都有乙個事件佇列,但是即使只有乙個時間佇列也肯定會根據裝置進行二次對映,將所有事件對映為每個裝置都有乙個事件佇列的形式。當應用程式執行到核心空間對核心資源進行操作的時候會進入該資源的事件佇列中,如果該佇列中沒有其他事件,佇列將立即執行當前事件,如果之前有事件並未執行完成,系統繼續執行上一事件,直到上一事件執行完成,外部表現就是當前程式掛起。當系統切換任務塊,如果佇列中的事件處理完成,程式即可從核心空間中獲取資料,資料取出後,系統可能清除事件佇列中對應的事件塊。如果佇列中的事件未處理完成,繼續執行事件操作。
所以說掛起並不是系統停止執行,只不過是系統在執行其它事件。由此,多執行緒切換過程中的資源鎖也就概念清楚明白了。
作業系統原理 章節測試 作業系統原理
第一章 單元測試 1 單選題 允許多個使用者將若干個作業提交給計算機系統集中處理的作業系統稱為 選項 a 分時作業系統 b 實時作業系統 c 網路作業系統 d 批處理系統 答案 批處理系統 2 單選題 是指兩個或兩個以上的活動或事件在同一時間間隔內發生。選項 a 共享 b 並行 c 併發 d 同步 ...
作業系統原理 作業系統概述
1.2 作業系統的定義和作用 1.3 作業系統的主要特性 1.4典型作業系統的架構 1.5 作業系統的分類 假設有乙個簡單的c語言程式 helloworld,我們通過這個簡單程式的執行過程來看一下作業系統對這個程式的過程有哪些支援!include intmain int argc,char ar 這...
作業系統原理
第一章 緒論 1.1 1 對問題的形式化定義稱為數學模型,而對問題的求解方法的形式描述稱為演算法。1.2.作業系統負責管理計算機系統的硬體和軟體資源並控制整個計算機的工作流程。作業系統的核心任務是系統資源分配,控制和協調併發活動。作業系統具有如下資源管理功能 1.處理機分配2.儲存管理3.裝置管理4...