簡介
執行系統控制是指系統採用一些策略使系統正常運行和保證系統安全。在作業系統中,一般將系統分為系統態(核心態)和用戶態(目態)。執行系統控制也可以是指在系統態下執行控制命令。系統中有很多地方需要執行系統控制,如進程控制,通信,記憶體分配,系統安全。例如,當CPU為一個I/O設備服務時,它允許作業系統中的設備驅動軟體與設備互動作用,並執行控制功能 ,其中設備驅動程式是系統核心的一部分。
進程中的系統控制
進程控制
在傳統的多道程式環境下,要使作業運行,必須先為它創建一個或幾個進程,並為之分配必要的資源。當進程運行結束時,立即撤消該進程,以便能及時回收該進程所占用的各類資源。進程控制的主要功能是為作業創建進程,撤消已結束的進程,以及控制進程在運行過程中的狀態轉換。在現代 OS 中,進程控制還應具有為一個進程創建若干個執行緒的功能和撤消(終止)已完成任務的執行緒的功能。
進程同步
進程是以異步方式運行的,並以人們不可預知的速度向前推進。為使多個進程能有條不紊地運行,系統中必須設定進程同步機制。進程同步的主要任務是為多個進程(含執行緒)的運行進行協調。有兩種協調方式:
(1) 進程互斥方式。這是指諸進程(執行緒)在對臨界資源進行訪問時,應採用互斥方式;
(2) 進程同步方式。這是指在相互合作去完成共同任務的諸進程(執行緒)間,由同步機構對它們的執行次序加以協調。
進程通信
在多道程式環境下,為了加速應用程式的運行,應在系統中建立多個進程,並且再為一個進程建立若干個執行緒,由這些進程(執行緒)相互合作去完成一個共同的任務。而在這些進程(執行緒)之間,又往往需要交換信息。例如,有三個相互合作的進程,它們是輸入進程、計算進程和列印進程。輸入進程負責將所輸入的數據傳送給計算進程;計算進程利用輸入數據進行計算,並把計算結果傳送給列印進程;最後,由列印進程把計算結果列印出來。進程通信的任務就是用來實現在相互合作的進程之間的信息交換。當相互合作的進程(執行緒)處於同一計算機系統時,通常在它們之間是採用直接通信方式,即由源進程利用傳送命令直接將訊息(Message)掛到目標進程的訊息佇列上,以後由目標進程利用接收命令從其訊息佇列中取出訊息 。
存儲器中的系統控制
記憶體分配
記憶體分配的主要任務是為每道程式分配記憶體空間,使它們“各得其所” ;提高存儲器的利用率,以減少不可用的記憶體空間;允許正在運行的程式申請附加的記憶體空間,以適應程式和數據動態增長的需要。
OS 在實現記憶體分配時,可採取靜態和動態兩種方式。在靜態分配方式中,每個作業的記憶體空間是在作業裝入時確定的;在作業裝入後的整個運行期間,不允許該作業再申請新的記憶體空間,也不允許作業在記憶體中“移動” 。在動態分配方式中,每個作業所要求的基本記憶體空間也是在裝入時確定的,但允許作業在運行過程中繼續申請新的附加記憶體空間,以適應程式和數據的動態增長,也允許作業在記憶體中“移動” 。
為了實現記憶體分配,在記憶體分配的機制中應具有這樣的結構和功能:
(1) 記憶體分配數據結構。該結構用於記錄記憶體空間的使用情況,作為記憶體分配的依據;
(2) 記憶體分配功能。系統按照一定的記憶體分配算法為用戶程式分配記憶體空間;
(3) 記憶體回收功能。系統對於用戶不再需要的記憶體,通過用戶的釋放請求去完成系統的回收功能。
記憶體保護
記憶體保護的主要任務是確保每道用戶程式都只在自己的記憶體空間內運行,彼此互不干擾;絕不允許用戶程式訪問作業系統的程式和數據;也不允許用戶程式轉移到非共享的其它用戶程式中去執行。
為了確保每道程式都只在自己的記憶體區中運行,必須設定記憶體保護機制。一種比較簡單的記憶體保護機制是設定兩個界限暫存器,分別用於存放正在執行程式的上界和下界。系統須對每條指令所要訪問的地址進行檢查,如果發生越界,便發出越界中斷請求,以停止該程式的執行。如果這種檢查完全用軟體實現,則每執行一條指令,便須增加若干條指令去進行越界檢查,這將顯著降低程式的運行速度。因此,越界檢查都由硬體實現。當然,對發生越界後的處理,還須與軟體配合來完成。
設備中的系統控制
緩衝管理
CPU 運行的高速性和 I/O 低速性間的矛盾自計算機誕生時起便已存在了。而隨著 CPU速度迅速提高,使得此矛盾更為突出,嚴重降低了 CPU 的利用率。如果在 I/O 設備和 CPU之間引入緩衝,則可有效地緩和 CPU 與 I/O 設備速度不匹配的矛盾,提高 CPU 的利用率,進而提高系統吞吐量。因此,在現代計算機系統中,都無一例外地在記憶體中設定了緩衝區,而且還可通過增加緩衝區容量的方法來改善系統的性能。對於不同的系統,可以採用不同的緩衝區機制。最常見的緩衝區機制有單緩衝機制、能實現雙向同時傳送數據的雙緩衝機制,以及能供多個設備同時使用的公用緩衝池機制。上述這些緩衝區都將由 OS 中的緩衝管理機制將它們管理起來。
設備分配
設備分配的基本任務是根據用戶進程的 I/O 請求、 系統的現有資源情況以及按照某種設備的分配策略,為之分配其所需的設備。如果在 I/O 設備和 CPU 之間還存在著設備控制器和 I/O 通道時,還須為分配出去的設備分配相應的控制器和通道。為了實現設備分配,系統中應設定設備控制表、控制器控制表等數據結構,用於記錄設備及控制器的標識符和狀態。根據這些表格可以了解指定設備當前是否可用,是否忙碌,以供進行設備分配時參考。在進行設備分配時,應針對不同的設備類型而採用不同的設備分配方式。 對於獨占設備(臨界資源)的分配, 還應考慮到該設備被分配出去後系統是否安全。在設備使用完後,應立即由系統回收。
訪問控制技術的系統控制
訪問控制技術是當前套用得最廣泛的一種安全保護技術,從大、中型機到微型機,都在不同程度上使用了該項技術。當一個用戶通過身份驗證而進入系統後要訪問系統中的資源時,系統還必須再經過相應的“訪問控制檢查機構”驗證用戶對資源訪問的合法性,以保證對系統資源進行訪問的用戶是被授權用戶。
使用訪問控制技術,可為用戶設定其對系統資源的訪問範圍,亦即存取許可權。通過對用戶存取許可權的設定,可以限定用戶只訪問允許訪問的資源;訪問控制還可以通過對檔案屬性的設定,來保護檔案只能被讀而不能被修改,或只允許核准的用戶對其進行修改等。在網路環境下的訪問控制,又增加了對網路中傳輸的數據包進行檢查的內容,如基於源和目標地址的包過濾技術。
計算機控制系統
計算機控制系統(Computer Control System,簡稱CCS)是套用計算機參與控制並藉助一些輔助部件與被控對象相聯繫,以獲得一定控制目的而構成的系統。這裡的計算機通常指數字計算機,可以有各種規模,如從微型到大型的通用或專用計算機。輔助部件主要指輸入輸出接口、檢測裝置和執行裝置等。與被控對象的聯繫和部件間的聯繫,可以是有線方式,如通過電纜的模擬信號或數位訊號進行聯繫;也可以是無線方式,如用紅外線、微波、無線電波、光波等進行聯繫。