官术网_书友最值得收藏!

1.4.1 操作系統的功能

在多道程序環境下,系統通常無法同時滿足所有程序的資源要求。為使多道程序能有條不紊地運行,操作系統應具有如下五方面的功能,以實現對資源的管理:處理機管理功能、存儲器管理功能、文件管理功能和設備管理功能。此外,為了方便用戶使用操作系統,還需向用戶提供使用方便的用戶接口。

1.處理機管理的功能

處理機管理的主要任務是對處理機進行分配,并對其運行進行有效的控制和管理。在多道程序環境下,處理機的分配和運行都是以進程為基本單位,因而對處理機的管理可歸結為對進程的管理,它包括以下幾個方面:

(1)進程控制。在多道程序環境下,要使程序運行,必須先為它創建一個或幾個進程,并為之分配必要的資源。進程運行結束時,要立即撤銷該進程,以便及時回收該進程所占用的各類資源。進程控制的主要任務便是為程序創建進程,撤銷已結束的進程,以及控制進程在運行過程中的狀態轉換。

(2)進程同步。進程是以異步方式運行的,并以人們不可預知的速度向前推進。為使多個進程能有條不紊地運行,系統中必須設置進程同步機制。進程同步的主要任務是對諸進程的運行進行協調。協調方式有兩種。

①進程互斥方式。指諸進程在對臨界資源進行訪問時,應采用互斥方式。

②進程同步方式。指在相互合作完成共同任務的進程間,由同步機制對它們的執行次序加以協調。

為了實現進程互斥與同步,系統中必須設置進程同步機制。最簡單的用于實現進程互斥的機制是為每一種臨界資源配置一把鎖。當鎖打開時,進程可以對臨界資源進行訪問;而當鎖關上時,則禁止進程訪問該臨界資源。

(3)進程通信。在多道程序環境下,可由系統為一個應用程序建立多個進程。這些進程相互合作去完成一項共同任務,而在這些相互合作的進程之間往往需要交換信息。例如,有3個相互合作的進程,它們分別是輸入進程、計算進程和打印進程。輸入進程負責將所輸入的數據傳送給計算進程;計算進程利用輸入數據進行計算,并把計算結果傳送給打印進程,由打印進程把結果打印出來。進程通信的任務就是實現相互合作進程之間的信息交換。

當相互合作的進程處于同一計算機系統時,通常是采用直接通信方式,即由源進程利用發送命令直接將消息掛到目標進程的消息隊列上,之后由目標進程利用接收命令從其消息隊列中取出消息。

當相互合作的進程處于不同的系統中時,常采用間接通信方式,即由源進程利用發送命令將消息送入一個存放消息的中間實體中,之后由目標進程利用接收命令從中間實體中取走消息。該中間實體通常稱為郵箱,相應的通信系統稱為電子郵件系統。

(4)調度。等待在后備隊列中的每個作業,通常要經過調度(包括作業調度和進程調度兩步)才能執行。作業調度的基本任務是從后備隊列中按照一定的算法,選擇若干個作業,為它們分配必要的資源(首先是分配內存)。在將它們調入內存后,便為它們建立進程,使之成為可能獲得處理機的就緒進程;并將它們按一定算法插入就緒隊列。而進程調度的任務則是從進程的就緒隊列中,按照一定的算法選出一進程,把處理機分配給它,并為它設置運行現場,使其投入運行。

在進行作業調度和進程調度時,都必須遵循某種調度算法。

2.存儲器管理的功能

存儲器管理的主要任務是為多道程序的運行提供良好的環境,方便用戶使用存儲器,提高存儲器的利用率,以及能從邏輯上來擴充內存。為此,存儲器管理應具有以下功能:內存分配、內存保護、地址映射和內存擴充等。

(1)內存分配。內存分配的主要任務是為每個程序分配內存空間,使它們“各得其所”,提高存儲器的利用率,以減少不可用的內存空間,允許正在運行的程序申請附加的內存空間,以適應程序和數據動態增長的需要。

操作系統在實現內存分配時,可采取以下兩種方式:

①靜態分配方式。每個程序的內存空間是在程序裝入時確定的;在程序裝入后的整個運行期間,不允許再申請新的內存空間,也不允許程序在內存中“移動”。

②動態分配方式。每個程序所要求的基本內存空間也是在裝入時確定的;但允許程序在運行過程中繼續申請新的附加空間,以適應程序和數據的動態增長,也允許程序在內存中“移動”。

為了實現內存分配,在內存分配的機制中應具有以下結構和功能:

①內存分配數據結構。該結構用于記錄內存空間的使用情況,作為內存分配的依據。

②內存分配功能。系統按照一定的內存分配算法為用戶程序分配內存空間。

③內存回收功能。系統對于用戶不再需要的內存,通過用戶的釋放請求,去完成系統的回收功能。

(2)內存保護。內存保護的主要任務是確保每道用戶程序都在自己的內存空間中運行,互不干擾。進一步說,絕不允許用戶程序訪問操作系統的程序和數據;也不允許轉移到非共享的其他用戶程序中去執行。

為了確保每道程序只在自己的內存區內運行,必須設置內存保護機制。一種比較簡單的內存保護機制是設置兩個界限寄存器,分別用于存放正在執行的程序的上界和下界。系統需對每條指令所訪問的地址進行越界檢查,如果發生越界,便發出越界中斷請求,以停止該程序的執行。如果這種檢查完全用軟件實現,則每執行一條指令,便需要增加若干條指令去進行越界檢查,這將顯著地降低程序的執行速度。因此,越界檢查都由硬件實現。當然,對發生越界后的處理,還須與軟件配合來完成。

(3)地址映射。一個應用程序(源程序)經編譯后,通常會形成若干個目標程序;這些目標程序再經過鏈接而形成可裝入程序。這些程序的地址都是從“0”開始的,程序中的其他地址都是相對于起始地址計算的;由這些地址所形成的地址范圍稱為“地址空間”,其中的地址稱為“邏輯地址”或“相對地址”。此外,由內存中的一系列單元所限定的地址范圍稱為“內存空間”,其中的地址稱為“物理地址”或“絕對地址”。

在多道程序環境下,地址空間中的邏輯地址和內存空間中的物理地址是不可能一致的。因此,存儲器管理必須提供地址映射功能,將地址空間中的邏輯地址轉換為內存空間中與之對應的物理地址。該功能同樣應在硬件的支持下完成。

(4)內存擴充。物理內存的容量有限(它是非常寶貴的硬件資源,不可能做得太大),因而難以滿足用戶的需要,勢必影響到系統的性能。存儲器管理中的內存擴充任務并非是去增加物理內存的容量,而是借助于虛擬存儲技術從邏輯上去擴充內存容量,使用戶所感覺到的內存比物理內存大得多;或者是讓更多的用戶程序能并發運行。這樣,既滿足了用戶的需要、改善了系統性能,又基本上不增加硬件投資。

為了從邏輯上擴充內存,系統必須具有內存擴充機制,用于實現下述各功能:

①請求調入功能。允許在僅裝入一部分用戶程序和數據的情況下,啟動該程序運行。在運行過程中,當發現繼續運行時所需的程序和數據尚未裝入內存時,可向操作系統發出請求,由操作系統將所需部分調入內存,以便繼續運行。

②置換功能。若內存中已無足夠的空間來裝入需要調入的部分,系統應能將內存中的一部分暫時不用的程序和數據調出至磁盤上,以便騰出內存空間,然后再將所需部分調入內存。

3.文件管理的功能

在現代計算機系統中,總是把程序和數據以文件的形式存儲在磁盤或磁帶上,供所有的或指定的用戶使用。為此,在操作系統中必須配置文件管理機構。文件管理的主要任務是對用戶文件和系統文件進行管理,以方便用戶使用,并保證文件的安全性。為此,文件管理應具有文件存儲空間的管理,目錄管理,文件的讀、寫管理以及文件的共享與保護等功能。

(1)文件存儲空間的管理。為了方便用戶的使用,一些當前需要使用的系統文件和用戶文件都必須存放在可隨機存取的磁盤上。在多用戶環境下,若由用戶自己對文件的存儲進行管理,不僅非常困難,而且也必然是十分低效的。因而,需要由文件系統對諸多文件及文件的存儲空間實施統一的管理。其主要任務是為每個文件分配必要的外存空間,提高外存利用率,并能有助于提高文件系統的工作速度。

為了實現對文件存儲空間的管理,系統應設置相應的數據結構,用于記錄文件存儲空間的使用情況,以供分配存儲空間時使用;系統還應具有對存儲空間進行分配和回收的功能。為了提高存儲空間的利用率,對存儲空間的分配通常是采用離散分配方式,以減少外存碎片,并以盤塊為基本分配單位。盤塊的大小通常為512B~4KB。

(2)目錄管理。為了使用戶能方便地在外存上找到所需要的文件,通常由系統為每個文件建立一個目錄項。目錄項包含文件名、文件屬性、文件在磁盤上的物理位置等。若干個目錄項又可構成一個目錄文件。目錄管理的主要任務是為每個文件建立其目錄項,并對眾多的目錄項加以有效的組織,以實現方便地按名存取。也就是說,用戶只需提供文件名,即可對該文件進行存取。其次,目錄管理還應能實現文件共享,這樣,只需在外存上保留一份該共享文件的副本。此外,目錄管理還應能提供快速的目錄查詢手段,以提高文件的檢索速度。

(3)文件的讀、寫管理和存取控制。

①文件的讀、寫管理。讀、寫管理是最基本的功能,根據用戶的請求從外存中讀取數據或將數據寫入外存。在進行文件讀(寫)時,系統先根據用戶給出的文件名,去檢索文件目錄,從中獲得文件在外存中的位置。然后,利用文件讀(寫)指針,對文件進行讀(寫)。一旦讀(寫)完成,便修改讀(寫)指針,為下一次讀(寫)做好準備。由于讀和寫操作不會同時進行,故可以合用一個讀/寫指針。

②文件的存取控制。為了防止系統中的文件被非法竊取或破壞,在文件系統中必須提供有效的存取控制功能,以實現下述目標:防止未經核準的用戶存取文件;防止冒名頂替存取文件;防止以不正確的方式使用文件。

在一個完善的文件系統中,可以采取多級保護措施來達到這一目標。第一,進行系統級存取控制,通常是以使用口令并對口令進行加密的方法來防止非法用戶進入系統,從而不可能進行文件訪問。第二,用戶級存取控制,這常常是通過對用戶進行分類和為用戶分配適當的“文件存取權限”等方法來實現。第三,文件級存取控制,這是通過設置文件屬性(如只讀、只執行、讀/寫等屬性)來控制對文件的存取。

4.設備管理的功能

設備管理的主要任務是:完成用戶提出的I/O請求,為用戶分配I/O設備;提高處理機和I/O設備的利用率;提高I/O速度;方便用戶使用I/O設備。為實現上述任務,設備管理應具有緩沖管理、設備分配回收、設備驅動程序以及設備獨立性和虛擬設備等功能。

(1)緩沖管理。緩沖管理的基本任務是管理好各種類型的緩沖區,如字符緩沖區和字符塊緩沖區,以緩和處理機和I/O速度不匹配的矛盾,最終達到提高處理機和I/O設備利用率,進而提高系統吞吐量的目的。在不少系統中,還通過增加緩沖區容量的辦法來改善文件系統的性能。

對于不同的系統,可以采用不同類型的緩沖區機制。最常見的緩沖區機制有單緩沖機制、能實現雙向同時傳送數據的雙緩沖機制,以及能供多個設備同時使用的公用緩沖池機制。

(2)設備分配回收。設備分配的基本任務是根據用戶的I/O請求為之分配所需的設備。如果I/O設備和處理機之間還存在著設備控制器和I/O通道,還須為分配出去的設備分配相應的控制器和通道。

為了實現設備分配,系統中應配置設備控制表、控制器控制表等數據結構,用于記錄設備及控制器的標識符和狀態,說明該設備是否可用、是否忙碌,以供設備分配時參考。在進行設備分配時,應針對不同的設備采用不同的設備分配方式。對于獨占設備(臨界資源)的分配,還應考慮到該設備被分配出去后,系統是否安全。設備用完后還應立即加以回收。

(3)設備驅動程序。設備驅動程序其基本任務通常是實現處理機和設備控制器之間的通信。即由處理機向設備控制器發出I/O指令,要求它完成指定的I/O操作;并能接收由設備控制器發來的中斷請求,給予及時的響應和相應的處理。

處理過程是:設備處理程序首先檢查I/O請求的合法性、了解設備的狀態是否空閑、了解有關傳遞參數以及設置設備的工作方式;然后,向設備控制器發出I/O命令,啟動I/O設備去完成指定的I/O操作;最后,及時響應由控制器發來的中斷請求,并根據該中斷請求的類型調用相應的中斷處理程序進行處理。對于設置了通道的計算機系統,設備處理程序還應能根據用戶的I/O請求自動地構成通道程序。

(4)設備獨立性和虛擬設備。

①設備獨立性。設備獨立性的基本含義是指應用程序獨立于物理設備,以使用戶編制的程序與實際使用的物理設備無關。這種獨立性不僅能提高用戶程序的可適應性,使程序不局限于某具體的物理設備,而且易于實現輸入、輸出的重定向,即在I/O操作中所使用的設備可方便地重新指定,而無須改變原有程序。

②虛擬設備功能。這一功能可把每次僅允許一個進程使用的物理設備改造為能同時供多個進程共享的設備。或者說,它能把一個物理設備變換為多個對應的邏輯設備,以使一個物理設備能為多個用戶共享。這樣,不僅提高了設備的利用率,而且還加速了程序的運行,使每個用戶都感覺是自己在獨占該設備。

5.用戶接口

為了方便用戶使用操作系統,操作系統又向用戶提供了“用戶與操作系統的接口”。該接口通常以命令或系統調用的形式呈現在用戶面前,前者提供給用戶在鍵盤終端上使用,后者則提供給用戶在編程時使用。在較晚出現的操作系統中,又向用戶提供了圖形用戶接口。

(1)命令接口。為了便于用戶直接或間接地控制自己的程序,操作系統向用戶提供了命令接口。用戶可通過該接口向程序發出命令以控制程序的運行。該接口又可進一步分為聯機命令接口和脫機命令接口。

(2)程序接口。程序接口是為用戶程序在執行中訪問系統資源而設置的,是用戶程序取得操作系統服務的唯一途徑。它由一組系統調用組成。每一個系統調用都是一個能完成特定功能的子程序。

(3)圖形接口。圖形用戶接口采用了圖形化的操作界面,用非常容易識別的各種圖標來將系統的各項功能、各種應用程序和文件直觀、逼真地表示出來。用戶可通過鼠標、菜單和對話框來完成各種應用程序和文件的操作。

主站蜘蛛池模板: 壶关县| 延津县| 定南县| 昭觉县| 棋牌| 蒲江县| 磐安县| 微山县| 菏泽市| 荃湾区| 株洲县| 新余市| 商都县| 孙吴县| 高邑县| 嫩江县| 依安县| 芜湖市| 祁东县| 马边| 莱芜市| 潞城市| 张家口市| 大关县| 平利县| 夹江县| 遂平县| 洛宁县| 大同市| 家居| 庆城县| 浏阳市| 娄底市| 桃园县| 保靖县| 九寨沟县| 高安市| 鄂托克前旗| 长顺县| 岐山县| 商洛市|