第2章-操作系統(tǒng)
2.1. 操作系統(tǒng)的類型與結構
計算機系統(tǒng)由硬件和軟件兩部分組成。操作系統(tǒng)是計算機系統(tǒng)中最基本的系統(tǒng)軟件,它 既管理計算機系統(tǒng)的軟、硬件資源,又控制程序的執(zhí)行。操作系統(tǒng)隨著計算機研究和應用的 發(fā)展逐步形成并日趨成熟,它為用戶使用計算機提供了一個良好的環(huán)境,從而使用戶能充分 利用計算機資源,提高系統(tǒng)的效率。操作系統(tǒng)的基本類型有: 批處理操作系統(tǒng)、分時操作系 統(tǒng)和實時操作系統(tǒng)。從資源管理的角度看,操作系統(tǒng)主要是對處理器、存儲器、文件、設備
和作業(yè)進行管理。
2.1.1. 操作系統(tǒng)的定義
操作系統(tǒng)(Operating System ,OS)是計算機系統(tǒng)中的核心系統(tǒng)軟件,負責管理和控 制計算機系統(tǒng)中的硬件和軟件資源,合理地組織計算機工作流程和有效地利用資源,在計算 機與用戶之間起接口的作用。操作系統(tǒng)為用戶提供的接口表現(xiàn)形式一般為:命令、菜單、窗 口之類的,而操作系統(tǒng)為應用程序提供的接口為API。操作系統(tǒng)與硬件/軟件的關系如圖2-1所示。

2.1.2. 操作系統(tǒng)分類
按照操作系統(tǒng)的功能劃分,操作系統(tǒng)的基本類型有批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)、網(wǎng)絡操作系統(tǒng)、分布式操作系統(tǒng)、嵌入式操作系統(tǒng)、微內核操作系統(tǒng)等。
2.2. 操作系統(tǒng)基本原理
操作系統(tǒng)的主要功能是進行處理機與進程管理、存儲管理、設備管理、文件管理和作業(yè)管理的工作,本節(jié)討論操作系統(tǒng)是如何完成這些功能的。
2.2.1. 進程管理
處理機是計算機系統(tǒng)的核心資源。操作系統(tǒng)的功能之一就是處理機管理。隨著計算機的迅速發(fā)展,處理機管理顯得更為重要,這主要由于計算機的速度越來越快,處理機的充分利用有利于系統(tǒng)效率的大大提高;處理機管理是整個操作系統(tǒng)的重心所在,其管理的好壞直接影響到整個系統(tǒng)的運行效率;而且操作系統(tǒng)中并發(fā)活動的管理和控制是在處理機管理下實現(xiàn)的,處理機管理集中了操作系統(tǒng)中最復雜的部分,它設計的好壞關系到整個系統(tǒng)的成敗。
進程是處理機管理中最基本的、最重要的概念。進程是系統(tǒng)并發(fā)執(zhí)行的體現(xiàn)。由于在多道程序系統(tǒng)中,眾多的計算機用戶都以各種各樣的任務,隨時隨地爭奪使用處理機。為了動 態(tài)地看待操作系統(tǒng),則以進程作為獨立運行的基本單位,以進程作為分配資源的基本單位,從進程的角度來研究操作系統(tǒng)。因此,處理機管理也被稱為進程管理。處理機管理的功能就是組織和協(xié)調用戶對處理機的爭奪使用,把處理機分配給進程,對進程進行管理和控制,最大限度也發(fā)揮處理機的作用。
-
進程的概念
用靜態(tài)的觀點看,操作系統(tǒng)是一組程序和表格的集合。用動態(tài)的觀點看,操作系統(tǒng)是進程的動態(tài)和并發(fā)執(zhí)行的。而進程的概念實際上是程序這一概念發(fā)展的產物。因此,可以從分析程序的基本特征入手,引出“進程”的概念。
順序程序是指程序中若干操作必須按照某種先后次序來執(zhí)行,并且每次操作前和操作后的數(shù)據(jù)、狀態(tài)之間都有一定的關系。在早期的程序設計中,程序一般都是按順序執(zhí)行的。
在多道程序系統(tǒng)中,程序的運行環(huán)境發(fā)生了很大的變化。主要體現(xiàn)在:
- 資源共享。為了提高資源的利用率,計算機系統(tǒng)中的資源不再由一道程序專用,而是由多道程序共同使用。
- 程序的并發(fā)執(zhí)行或并行執(zhí)行。邏輯上講允許多道不同用戶的程序并行運行;允許一個用戶程序內部完成不同操作的程序段之間并行運行;允許操作系統(tǒng)內部不同的程序之間并行運行。物理上講:內存儲器中保存多個程序,I/O設備被多個程序交替地共享使用;在多處理機系統(tǒng)的情形下,表現(xiàn)為多個程序在各自的處理機上運行,執(zhí)行時間是重疊的。單處理機系統(tǒng)時,程序的執(zhí)行表現(xiàn)為多道程序交替地在處理機上相互空插運行。
實際上,在多道程序系統(tǒng)中,程序的并行執(zhí)行和資源共享之間是相輔相成的。一方面,只有允許程序并行執(zhí)行,才可能存在資源共享的問題;另一方面,只有有效地實現(xiàn)資源共享,才可能使得程序并行執(zhí)行。
這樣,可增強計算機系統(tǒng)的處理能力和提高機器的利用率。并發(fā)操作實際上是這樣的:大多數(shù)程序段只要求操作在時間上是有序的,也就是有些操作必須在其他操作之前,這是有序的,但其中有些操作卻可以同時進行。
-
進程的狀態(tài)轉換
由進程運行的間斷性,決定了進程至少具有以下三種狀態(tài):
- 就緒狀態(tài)。當進程已分配了除CPU以外的所有必要的資源后,只要能再獲得處理機,便能立即執(zhí)行,把這時的進程狀態(tài)稱為就緒狀態(tài)。在一個系統(tǒng)中,可以有多個進程同時處于就緒狀態(tài),通常把它們排成一個隊列, 稱為就緒隊列。
- 執(zhí)行狀態(tài)指進程已獲得處理機,其程序正在執(zhí)行。在單處理機系統(tǒng)中,只能有一個進程處于執(zhí)行狀態(tài)。
- 阻塞狀態(tài)指進程因發(fā)生某事件(如請求I/O、申請緩沖空間等)而暫停執(zhí)行時的狀態(tài),亦即進程的執(zhí)行受到阻塞,故稱這種暫停狀態(tài)為阻塞狀態(tài),有時也稱為“等待”狀態(tài),或“睡眠”狀態(tài)。通常將處于阻塞狀態(tài)的進程排成一個隊列,稱為阻塞隊列。
進程的狀態(tài)隨著自身的推進和外界的變化而變化。例如,就緒狀態(tài)的進程被進程調度程序選中進入執(zhí)行狀態(tài);執(zhí)行狀態(tài)的進程因等待某一事件的發(fā)生轉入等待狀態(tài);等待狀態(tài)的進程所等待事件來到便進入就緒狀態(tài)。進程的狀態(tài)可以動態(tài)地相互轉換,但阻塞狀態(tài)的進程不能直接進入執(zhí)行狀態(tài),就緒狀態(tài)的進程不能直接進入阻塞狀態(tài)。在任何時刻,任何進程都處于且只能處于這其中一種狀態(tài)。進程狀態(tài)的變化情況如下:
- 運行態(tài)→等待態(tài):一個進程運行中啟動了外圍設備,它就變成等待外圍設備傳輸信息的狀態(tài);進程運行中申請資源(主存儲空間及外圍設備因得不到滿足)時,變成等待資源狀態(tài),進程在運行中出現(xiàn)了故障(程序出錯或主存儲器讀寫錯誤等),變成等待干預狀態(tài)。
- 等待態(tài)→就緒態(tài):外圍設備工作結束后等待外圍設備傳輸信息的進程結束等待;等待的資源能得到滿足時(另一個進程歸還了資源),則等待資源者就結束等待;故障排隊后讓等待干預的進程結束等待,任何一個結束等待的進程必須先變成就緒狀態(tài),待分配到處理器后才能運行。
- 運行態(tài)→就緒態(tài):進程用完了一個使用處理器的時間后強迫該進程暫時讓出處理器,當有更優(yōu)先權的進程要運行時也迫使正在運行的進程讓出處理器。由于自身或外界原因成為等待狀態(tài)的進程讓出處理器時,它的狀態(tài)就變成就緒狀態(tài)。
- 就緒態(tài)→運行態(tài):等待分配處理器的進程,系統(tǒng)按一種選定的策略從處于就緒狀態(tài)的進程中選擇一個進程,讓它占用處理器,那個被選中的進程就變成了運行態(tài)。
圖2-2所示為進程的三種基本狀態(tài)及各狀態(tài)之間的轉換。
20240109184416 -
關于掛起狀態(tài)
在不少系統(tǒng)中,進程只有如圖2-2所示的三種狀態(tài)。但在另一些系統(tǒng)中,又增加了一些新狀態(tài),其中最重要的是掛起狀態(tài)。引入掛起狀態(tài)的原因有:
- 對換的需要。為了緩和內存緊張的情況,而將內存中處于阻塞狀態(tài)的進程換至外存上,使進程又處于一種有別于阻塞狀態(tài)的新狀態(tài)。因為即使該進程所期待的事件發(fā)生,該進程仍不具備執(zhí)行條件而不能進入就緒隊列, 稱這種狀態(tài)為掛起狀態(tài)。
- 終端用戶的請求。當終端用戶在自己的程序運行期間,發(fā)現(xiàn)有可疑問題時,往往希望使自己的進程暫停下來。也就是說,使正在執(zhí)行的進程暫停執(zhí)行,若是就緒進程,則不接受調度以便研究其執(zhí)行情況或對程序進行修改。把這種靜止狀態(tài)也稱為掛起狀態(tài)。
- 父進程請求。父進程常希望掛起自己的子進程,以便考查和修改子進程,或者協(xié)調各子進程間的活動。
- 負荷調節(jié)的需要。當實時系統(tǒng)中的工作負荷較重,有可能影響到對實時任務的控制時,可由系統(tǒng)把一些不重要的進程掛起,以保證系統(tǒng)正常運行。
- 操作系統(tǒng)的需要。操作系統(tǒng)希望掛起某些進程,以便檢查運行中資源的使用情況及進行記賬。
綜上所述,不難了解掛起狀態(tài)具有以下三個屬性。
- 被掛起的進程,原來可能處于就緒狀態(tài),此時進程(被掛起)的狀態(tài)稱為掛起就緒;若被掛起的進程原來處于阻塞狀態(tài),此時的狀態(tài)稱為掛起阻塞。不論哪種狀態(tài),該進程都是不可能被調度而執(zhí)行的。
- 處于掛起阻塞狀態(tài)的進程,其阻塞條件與掛起條件無關;當進程所期待的事件出現(xiàn)后,進程雖不再被阻塞,但仍不能運行,這時,應將該進程從靜止阻塞狀態(tài)轉換為掛起就緒狀態(tài)。
- 進程可以由其自身掛起,也可由用戶或操作系統(tǒng)等將之掛起。其目的都在于阻止進程繼續(xù)運行,被掛起的進程只能用顯式方式來激活,以便從掛起狀態(tài)中解脫出來。
如圖2-3所示為具有掛起操作的進程狀態(tài)的演變情況。
20240109210628 -
進程互斥與同步
進程互斥定義為:一組并發(fā)進程中一個或多個程序段,因共享某一共有資源而導致必須以一個不允許交叉執(zhí)行的單位執(zhí)行。也就是說互斥是要保證臨界資源在某一時刻只被一個進程訪問。
進程同步定義為:把異步環(huán)境下的一組并發(fā)進程因直接制約而互相發(fā)送消息而進行互相合作、互相等待,使得各進程按一定的速度執(zhí)行的過程稱為進程同步。也就是說進程之間是異步執(zhí)行的,同步即是使各進程按一定的制約順序和速度執(zhí)行。
系統(tǒng)中有些資源可以供多個進程同時使用,有些資源則一次僅允許一個進程使用,將一次僅允許一個進程使用的資源稱為臨界資源,很多物理設備如打印機、磁帶機等都屬于臨界資源,某些軟件的變量、數(shù)據(jù)、表格也不允許兩個進程同時使用,所以也是臨界資源。
進程在并發(fā)執(zhí)行中可以共享系統(tǒng)中的資源。但是臨界資源的訪問則必須互斥進行,即各進程對臨界資源進行操作的那段程序的執(zhí)行也必須是互斥的,只有這樣才能保證對臨界資源的互斥訪問。把一個進程訪問臨界資源的那段程序代碼稱為臨界區(qū),有了臨界區(qū)的概念,進程間的互斥就可以描述為:禁止兩個或兩個以上的進程同時進入訪問同一臨界資源的臨界區(qū)。
為此,必須有專門的同步機構來協(xié)調它們,協(xié)調準則如下:
- 空閑讓進:無進程處于臨界區(qū)時,若有進程要求進入臨界區(qū)則立即允許其進入;
- 忙則等待:當已有進程進入其臨界區(qū)時, 其他試圖進入各自臨界區(qū)的進程必須等待,以保證諸進程互斥地進入臨界區(qū);
- 有限等待:有若干進程要求進入臨界區(qū)時,應在有限時間內使一進程進入臨界區(qū),即它們不應相互等待而誰也不進入臨界區(qū);
- 讓權等待:對于等待進入臨界區(qū)的進程必須釋放其占有的CPU。信號量可以有效地實現(xiàn)進程的同步和互斥。在操作系統(tǒng)中,信號量是一個整數(shù)。當信號量大于等于0時,代表可供并發(fā)進程使用的資源實體數(shù),當信號量小于零時則表示正在等待使用臨界區(qū)的進程數(shù)。建立一個信號量必須說明所建信號量代表的意義和設置初值,以及建立相應的數(shù)據(jù)結構,以便指向那些等待使用該臨界區(qū)的進程。
對信號量只能施加特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子操作,也稱為原語。因此,P原語和V原語執(zhí)行期間不允許中斷發(fā)生。
P(sem)操作的過程是將信號量sem值減l,若sem的值成負數(shù),則調用P操作的進程暫停執(zhí)行,直到另一個進程對同一信號量做V操作。V(sem)操作的過程是將信號量sem值加1,若sem的值小于等于0,從相應隊列(與sem有關的隊列)中選一個進程,喚醒它。
一般P操作與V操作的定義如下所述。
P操作: P(sem){ sem = sem - 1; if(sem < 0)進程進入等待狀態(tài); else 繼續(xù)進行; } V操作: V(sem){ sem = sem + 1; if(sem≤ 0)喚醒隊列中的一個等待進程; else繼續(xù)進行;}為了保護共享資源(如公共變量),使它們不被多個進程同時訪問,就要阻止這些進程同時執(zhí)行訪問這些資源(臨界資源)的代碼段(臨界區(qū));進程互斥不允許兩個以上共享臨界資源的并發(fā)進程同時進入臨界區(qū)。利用P、V原語和信號量可以方便地解決并發(fā)進程對臨界區(qū)的進程互斥問題
設信號量mutex是用于互斥的信號量,初值為1,表示沒有并發(fā)進程使用該臨界區(qū)。
于是各并發(fā)進程的臨界區(qū)可改寫成下列形式的代碼段:P(mutex); 臨界區(qū) V(mutex);要用P,V操作實現(xiàn)進程同步,需要引進私用信號量。私用信號量只與制約進程和被制約進程有關,而不是與整組并發(fā)進程相關。與此相對,進程互斥使用的信號量為公用信號量。首先為各并發(fā)進程設置私用信號量,然后為私用信號量賦初值,最后利用P,V原語和私用信號量規(guī)定各進程的執(zhí)行順序。經典同步問題的例子是“生產者-消費者”問題。這要求存后再取,取后再存,即有兩個制約關系,為此,需要兩個信號量,表示緩沖區(qū)中的空單元數(shù)和非空單元數(shù),記為Bufempty和Buffull,它們的初值分別是1和0,相應的程序段形式是:
生產者 loop 生產一產品 next; P(Bufempty); next 產品存緩沖區(qū); V(Buffull); endloop 消費者 loop P(Buffulll); V(Bufempty); 從緩沖區(qū)中取產品;使用產品 endloop -
前趨圖
前趨圖是一個由結點和有向邊構成的有向無循環(huán)圖。該圖通常用于表現(xiàn)事務之間先后順序的制約關系。圖中的每個結點可以表示一個語句、一個程序段或是一個進程,結點間的有向邊表示兩個結點之間存在的前趨關系。
例:在計算機中,經常采用流水線方式執(zhí)行指令,每一條指令都可以分解為取指、分析和執(zhí)行三步。取指操作為Ai,分析操作為Bi和執(zhí)行操作為 Ci(i=1,2,3)。如圖2-4所示為三個任務各程序段并發(fā)執(zhí)行的前驅圖。
20240109232853圖中A1沒有前趨結點,稱為開始結點,它不受任何制約,可以直接執(zhí)行;而B1與A2只能在A1執(zhí)行完成之后才能開始,而B2必須在B1與A2完成之后才能開始C3 沒有后繼結點,稱為終止結點。
在前趨圖中,執(zhí)行先后順序的制約關系可分為兩種:直接制約和間接制約。
直接制約通常是指一個操作中,多個步驟之間的制約關系,也可以說是“同步的進程之間的制約關系”。如圖2-4所示,A1、B1、C1是一條指令的取指、分析、執(zhí)行的三個步驟,所以它們之間的關系是直接制約。
間接制約通常是指多個操作之間相同步驟的制約關系,也可以說是“互斥的進程之間的制約關系”。如圖2-4所示,A1、A2、A3之間就存在間接制約的關系。前趨圖的應用廣泛,在項目開發(fā)中,可用前趨圖來分析哪些活動可以并行完成。同時項目管理工具:Pert圖,單(雙)代號網(wǎng)絡圖等都融入了前趨圖的思想。
-
進程調度與死鎖
進程調度即處理器調度(又稱上下文轉換),它的主要功能是確定在什么時候分配處理器,并確定分給哪一個進程,即讓正在執(zhí)行的進程改變狀態(tài)并轉入就緒隊列的隊尾,再由調度原語將就緒隊列的隊首進程取出,投入執(zhí)行。
引起進程調度的原因有以下幾類:- 正在執(zhí)行的進程執(zhí)行完畢。
- 執(zhí)行中的進程自己調用阻塞原語將自己阻塞起來進入睡眠狀態(tài)。
- 執(zhí)行中的進程調用了P原語操作,從而因資源不足而阻塞;或調用V原語操作激活了等待資源的進程隊列。
- 在分時系統(tǒng)中, 當一進程用完一個時間片。
- 就緒隊列中某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級,也將引起進程調度。
進程調度的方式有兩類:剝奪方式與非剝奪方式。所謂非剝奪方式是指,一旦某個作業(yè)或進程占用了處理器,別的進程就不能把處理器從這個進程手中奪走,直到該進程自己因調 用原語操作而進入阻塞狀態(tài),或時間片用完而讓出處理機;剝奪方式是指,當就緒隊列中有進程的優(yōu)先級高于當前執(zhí)行進程的優(yōu)先級時,便立即發(fā)生進程調度,轉讓處理機。
進程調度的算法是服務于系統(tǒng)目標的策略, 對于不同的系統(tǒng)與系統(tǒng)目標, 常采用不同的
調度算法:
- 先來先服務(First Come and First Serverd,F(xiàn)CFS)調度算法,又稱先進先出(First Inand First Out ,F(xiàn)IFO)。就緒隊列按先來后到原則排隊。
- 優(yōu)先數(shù)調度。優(yōu)先數(shù)反映了進程優(yōu)先級,就緒隊列按優(yōu)先數(shù)排隊。有兩種確定優(yōu)先級的方法,即靜態(tài)優(yōu)先級和動態(tài)優(yōu)先級。靜態(tài)優(yōu)先級是指進程的優(yōu)先級在進程開始執(zhí)行前確定,執(zhí)行過程中不變,而動態(tài)優(yōu)先級則可以在進程執(zhí)行過程中改變。
- 輪轉法(Round Robin)。就緒隊列按FCFS方式排隊。每個進程執(zhí)行一次占有處 理器時間都不超過規(guī)定的時間單位(時間片)若超過, 則自行釋放自己所占有的 CPU 而排 到就緒隊列的末尾, 等待下一次調度。同時,進程調度程序又去調度當前就緒隊列中的第一個進程。
進程管理是操作系統(tǒng)的核心,在進程管理的實現(xiàn)中,如果設計不當,會出現(xiàn)一種尷尬的局面——死鎖。
當若干個進程互相競爭對方已占有的資源,無限期地等待,不能向前推進時會造成“死鎖”。例如,P1進程占有資源R1,P2進程占有資源R2,這時,P1又需要資源R2,P2也需要資源R1,它們在等待對方占有的資源時,又不會釋放自己占有的資源,因而使雙方都進入了無限等待狀態(tài)。
死鎖是系統(tǒng)的一種出錯狀態(tài),它不僅會浪費大量的系統(tǒng)資源,甚至還會導致整個系統(tǒng)的崩潰, 所以死鎖是應該盡量預防和避免的。
- 死鎖條件。產生死鎖的主要原因是供共享的系統(tǒng)資源不足,資源分配策略和進程 的推進順序不當。系統(tǒng)資源既可能是可重復使用的永久性資源,也可能是消耗性的臨時資源。產生死鎖的必要條件是: 互斥條件、保持和等待條件、不剝奪條件和環(huán)路等待條件。
- 解決死鎖的策略。處于死鎖狀態(tài)的進程不能繼續(xù)執(zhí)行但又占用了系統(tǒng)資源,從而阻礙其他作業(yè)的執(zhí)行。
解決死鎖有兩種策略: 一種是在死鎖發(fā)生前采用的預防和避免策略; 另一種是在死鎖發(fā)生后采用的檢測與恢復策略。
死鎖的預防主要是通過打破死鎖產生的 4 個必要條件之一來保證不會產生死鎖。采用的死鎖預防策略通常有資源的靜態(tài)分配法或有序分配法,它們分別打破了資源動態(tài)分配條件 和循環(huán)等待條件,因此不會發(fā)生死鎖。但這樣做會大大降低系統(tǒng)資源的利用率和進程之間的并行程度。
死鎖避免策略, 則是在系統(tǒng)進行資源分配時, 先執(zhí)行一個死鎖避免算法(典型的如銀行 家算法),以保證本次分配不會導致死鎖發(fā)生。由于資源分配很頻繁,因此死鎖避免策略要耗費大量的CPU和時間。
2.2.2. 存儲管理
存儲器是計算機系統(tǒng)中最重要的資源之一。因為任何程序和數(shù)據(jù)以及各種控制用的數(shù)據(jù)結構都必須占有一定的存儲空間,因此,存儲管理直接影響系統(tǒng)性能。
存儲器由內存和外存組成。內存是由系統(tǒng)實際提供的存儲單元(常指字節(jié))組成的一個 連續(xù)地址空間, 處理器可直接存取。外存(輔存) 是指軟盤、硬盤、光盤和磁帶等一些外部 存儲部件,常用來存放暫不執(zhí)行的程序和數(shù)據(jù)。處理器不能直接訪問外存,需通過啟動 I/O (Input/Output,輸入/輸出)設備才能進行內存、外存交換,其訪問速度慢,但價格便宜,常用作內存的后援設備。
內存大小由系統(tǒng)硬件決定,存儲容量受到實際存儲單元的限制。虛擬存儲器(簡稱虛存) 不考慮實際內存的大小和數(shù)據(jù)存取的實際地址,只考慮相互有關的數(shù)據(jù)之間的相對位置,其容量由計算機地址的位數(shù)決定。
系統(tǒng)中內存的使用一般分成兩部分,一部分為系統(tǒng)空間,存放操作系統(tǒng)本身及相關的系統(tǒng)程序;另一部分為用戶空間, 存放用戶的程序和數(shù)據(jù)。
存儲管理主要是指對內存儲器的管理,負責對內存的分配和回收、內存的保護和內存的 擴充。存儲管理的目的是盡量提高內存的使用效率。存儲管理的機制經歷了多次變遷,由以 前的單一連續(xù)區(qū)管理到分區(qū)存儲管理再發(fā)展為段頁式管理。目前前兩種技術已逐步被淘汰,下面我們將詳細解讀段頁式存儲管理。
-
頁式存儲管理
分頁的基本思想是把程序的邏輯空間和內存的物理空間按照同樣的大小劃分成若干頁 面, 并以頁面為單位進行分配。在頁式存儲管理中,系統(tǒng)中虛地址是一個有序對(頁號,位 移)。系統(tǒng)為每一個進程建立一個頁表,其內容包括進程的邏輯頁號與物理頁號的對應關系、狀態(tài)等。
頁式系統(tǒng)的動態(tài)地址轉換是這樣進行的:當進程運行時,其頁表的首地址已在系統(tǒng)的動態(tài)地址轉換機構中的基本地址寄存器中。執(zhí)行的指令訪問虛存地址(p,d)時,首先根據(jù)頁號p查頁表,由狀態(tài)可知,這個頁是否已經調入內存。若已調入內存,則得到該頁的內存位置p',然后,與頁內相對位移d組合,得到物理地址r。如果該頁尚未調入內存,則產生缺頁中斷,以裝入所需的頁,如圖2-5所示。
20240110003619頁式虛擬存儲管理是在頁式存儲管理的基礎上實現(xiàn)虛擬存儲器的。首先把作業(yè)信息作為 副本存放在磁盤上,作業(yè)執(zhí)行時,把作業(yè)信息的部分頁面裝入內存儲器,作業(yè)執(zhí)行時若所訪問的頁面已在內存中,則按頁式存儲管理方式進行地址轉換,得到欲訪問的內存絕對地址,若欲訪問的頁面不在內存中,則產生一個“缺頁中斷”,由操作系統(tǒng)把當前所需的頁面裝入內存儲器中。
為此,在裝入作業(yè)時,就應在該作業(yè)的頁表中指出哪些頁已在內存儲器中,哪些頁還沒有裝入內存??捎靡粋€標志位指示對應頁是否在內存儲器,可假設標志位為1表示該頁在內存,而標志位為0表示該頁尚未裝入內存。為了能方便地從磁盤上找到作業(yè)信息的副本,故在頁表中還可指出每一頁副本在磁盤上的位置。
當要裝入一個當前需要的頁面時,如果內存儲器中無空閑塊,則可選擇一個已在內存儲 器中的頁面,把它暫時調出內存。若在執(zhí)行中該頁面被修改過,則把該頁信息重新寫回到磁盤上,否則不必重新寫回磁盤。當一頁被暫時調出內存后,讓出的內存空間用來存放當前需要使用的頁面。以后再使用被調出的頁面時,可用同樣的方法調出另一個頁面而將其再裝入內存。頁面被調出或裝入之后都要對頁表中的相應表目做修改。
當內存中無空閑塊時,為了裝入一個頁面而必須按某種算法從已在內存的頁中選擇一頁,將它暫時調出內存,讓出內存空間以存放所需裝入的頁面,這個工作稱為“頁面調度”。如 何選擇調出的頁面是很重要的,如果采用了一個不合適的算法,就會出現(xiàn)這樣的現(xiàn)象:剛被調出的頁面又立即要用,因而又要把它裝入,而裝入不久又被選中調出,調出不久又被裝入,如此反復,使調度非常頻繁。這種現(xiàn)象稱為“抖動”。一個好的調度算法應減少或避免抖動現(xiàn)象。常用的頁面調度算法有:
- 最優(yōu)(OPT)算法。選擇不再使用或最遠的將來才被使用的頁,這是理想的算法,但是難以實現(xiàn),常用于淘汰算法的比較。
- 隨機(RAND)算法。隨機地選擇被淘汰的頁,開銷小,但是可能選中立即就要訪問的頁。
- 先進先出算法。選擇在內存駐留時間最長的頁似乎合理,但可能淘汰掉頻繁使用 的頁。另外,使用 FIFO算法時,在未給予進程分配足夠的頁面數(shù)時,有時會出現(xiàn)給予進程的頁面數(shù)增多,缺頁次數(shù)反而增加的異?,F(xiàn)象。FIFO算法簡單,易實現(xiàn)。可以把裝入內存 儲器的那些頁的頁號按進入的先后順序排成隊列,每次總是調出隊首的頁,當裝入一個新頁后,把新頁的頁號排到隊尾。
- 最近最少使用(Least Recently Used ,LRU)算法。選擇離當前時間最近的一段時間內使用得最少的頁。這個算法的主要出發(fā)點是,如果某個頁被訪問了,則它可能馬上就要被訪問;反之,如果某個頁長時間未被訪問, 則它在最近一段時間也不會被訪問。
-
段式存儲管理
段式存儲管理與頁式存儲管理相似。分段的基本思想是把用戶作業(yè)按邏輯意義上有完整意義的段來劃分,并以段為單位作為內外存交換的空間尺度。
一個作業(yè)是由若干個具有邏輯意義的段(如主程序、子程序、數(shù)據(jù)段等)組成。分段系 統(tǒng)中,容許程序(作業(yè))占據(jù)內存中許多分離的分區(qū)。每個分區(qū)存儲一個程序分段。這樣,每個作業(yè)需要幾對界限地址寄存器,判定訪問地址是否越界也就更困難了。在分段存儲系統(tǒng)中常常利用存儲保護鍵實現(xiàn)存儲保護。分段系統(tǒng)中虛地址是一個有序對(段號,位移)。系統(tǒng)為每個作業(yè)建立一個段表,其內容包括段號、段長、內存起始地址和狀態(tài)等。狀態(tài)指出這個段是否已調入內存,即內存起始地址指出這個段,狀態(tài)指出這個段的訪問權限。
分段系統(tǒng)的動態(tài)地址轉換是這樣進行的:進程執(zhí)行時,其段表的首地址已在基本地址寄 存器中,執(zhí)行的指令訪問虛存(s ,d)(取指令或取操作數(shù))時,首先根據(jù)段號s 查段表,若段已經調入內存,則得到該段的內存起始地址,然后與段內相對地址(段內偏移量 d)相加,得到實地址。如果該段尚未調入內存,則產生缺段中斷,以裝入所需要的段。段式存儲與頁式存儲的地址轉換方式類似,參看圖1-6。段式虛擬存儲管理仍然以段式存儲管理為基礎,為用戶提供比內存實際容量大的虛擬空 間。段式虛擬存儲管理把作業(yè)中的各個分段信息都保留在磁盤上,當作業(yè)可以投入執(zhí)行時,做如下操作:
- 首先把當前需要的一段或幾段裝入內存。
- 作業(yè)執(zhí)行時,如果要訪問的段已經在內存,則按照“段式存儲管理”中的方式進 行地址轉換;如果要訪問的段不在內存中,則產生一個“缺段中斷”,由操作系統(tǒng)把當前需要的段裝入內存。
因此,在段表中應增設段是否在內存的標志以及各段在磁盤上的位置, 已在內存中的段仍要指出該段在內存中的起始地址和占用內存區(qū)長度。
作業(yè)執(zhí)行要訪問的段時, 由硬件的地址轉換機構查段表。若該段在內存中, 則立即把邏 輯地址轉換成絕對地址;若該段不在內存中,則形成“缺段中斷”,由操作系統(tǒng)處理這個中斷。
處理的辦法是, 查內存分配表,找出一個足夠大的連續(xù)區(qū)以容納該分段,如果找不到足 夠大的連續(xù)區(qū)則檢查空閑區(qū)的總和,若空閑區(qū)總和能滿足該段要求,那么進行適當移動將分散的空閑區(qū)集中;若空閑區(qū)總和不能滿足該段要求,可把內存中的一段或幾段調出,然后把當前要訪問的段裝入內存中。段被移動、調出和裝入后都要對段表中的相應表目做修改。新的段被裝入后應讓作業(yè)重新執(zhí)行被中斷的指令,這時就能找到要訪問的段,也可以繼續(xù)執(zhí)行下去。
-
段頁式存儲管理
段頁式管理是段式和頁式兩種管理方法結合的產物,綜合了段式組織與頁式組織的特點,根據(jù)程序模塊分段,段內再分頁,內存被分劃成定長的頁。段頁式系統(tǒng)中虛地址形式是(段號、 頁號、頁內偏移),如圖2-6所示。系統(tǒng)為每個進程建立一個段表,為每個段建立一個頁表。段頁式管理采用段式分配、頁式使用的方法,便于動態(tài)連接和存儲的動態(tài)分配。這種存儲管理能提高內存空間的利用率。
20240110005104段式虛擬管理還是以段為單位分配內存空間,整段的調出、裝入,有時還要移動,這些都增加了系統(tǒng)的開銷。如果按段頁式存儲管理的方式,把每一段再分成若干頁面,那么,每一段不必占用連續(xù)的存儲空間;甚至當內存塊不夠時,可只將一段中的部分頁面裝入內存,這種管理方式稱為“段頁式虛擬存儲管理”。
段頁式虛擬存儲管理為每一個裝入內存的作業(yè)建立一張段表,還要為每一段建立頁表。段表中指出該段的頁表存放位置及長度,頁表中應指出該段的各頁在磁盤上的位置以及頁是否在內存中,若在內存中則填上占用的內存塊號。作業(yè)執(zhí)行時按段號查段表,找到相應的頁表再根據(jù)頁號查頁表,由標志位判定該頁是否已在內存,若是,則進行地址轉換;否則進行頁面調度。地址轉換過程如圖2-7所示。
20240110094908段頁式虛擬存儲管理結合了段式和頁式的優(yōu)點,但增加了設置表格(段表、頁表)和查表等開銷,段頁式虛擬存儲器一般只在大型計算機系統(tǒng)中使用。
2.2.3.設備管理
在計算機系統(tǒng)中,除了處理器和內存之外,其他的大部分硬設備稱為外部設備。它包括輸入/輸出設備,輔存設備及終端設備等。這些設備種類繁多,特性各異,操作方式的差異 很大,從而使操作系統(tǒng)的設備管理變得十分繁雜。在架構師考試中,設備管理需要掌握的知識內容較少,主要為兩個方面:
-
數(shù)據(jù)傳輸控制方式
設備管理的主要任務之一是控制設備和內存或CPU之間的數(shù)據(jù)傳送,本節(jié)介紹幾種常用的數(shù)據(jù)傳送控制方式。選擇和衡量控制方式的原則如下:
- 數(shù)據(jù)傳送速度足夠高,能滿足用戶的需要但又不丟失數(shù)據(jù)。
- 系統(tǒng)開銷小,所需的處理控制程序少。
- 能充分發(fā)揮硬件資源的能力,使得I/O設備盡量處于使用狀態(tài)中,而CPU等待時間少。
外圍設備和內存之間常用的數(shù)據(jù)傳送控制方式主要有以下幾種:
- 程序控制方式。處理器啟動數(shù)據(jù)傳輸,然后等設備完成。
- 中斷方式。程序控制方式不能實現(xiàn)并發(fā)。中斷方式的數(shù)據(jù)傳輸過程是這樣的,進 程啟動數(shù)據(jù)傳輸(如讀)后,該進程放棄處理器,當數(shù)據(jù)傳輸完成,設備控制器產生中斷請求,中斷處理程序對數(shù)據(jù)傳輸工作處理之后, 讓相應進程成為就緒狀態(tài)。以后,該進程就可以得到所需要的數(shù)據(jù)。
- 直接存儲訪問(Direct Memory Access ,DMA)方式。指外部設備和內存之間開辟直接的數(shù)據(jù)交換通路。除了控制狀態(tài)寄存器和數(shù)據(jù)緩沖寄存器外,DMA控制器中還包括傳輸字節(jié)計數(shù)器、內存地址寄存器等。DMA方式采用竊取(或挪用)處理器的工作周期和控 制總線而實現(xiàn)輔助存儲器和內存之間的數(shù)據(jù)交換。有的DMA方式也采用總線浮起方式傳輸大批量數(shù)據(jù)。
- 通道方式。通道又稱為輸入/輸出處理器(Input/Output Processor ,IOP),可以獨 立完成系統(tǒng)交付的輸入/輸出任務,通過執(zhí)行自身的輸入/輸出專用程序(稱通道程序)進行內存和外設之間的數(shù)據(jù)傳輸。主要有3種通道:字節(jié)多路通道、選擇通道和成組多路通道。
-
虛設備與SPOOLING技術
采用假脫機技術,可以將低速的獨占設備改造成一種可共享的設備,而且一臺物理設備可以對應若干臺虛擬的同類設備。假脫機(Simultaneous Peripheral Operation On Line,SPOOLING)的意思是外部設備同時聯(lián)機操作,又稱為假脫機輸入/輸出操作,采用一組程序或進程模擬一臺輸入/輸出處理器。
SPOOLING系統(tǒng)的組成如圖2-8所示。該技術利用了專門的外圍控制機將低速I/O設備上的數(shù)據(jù)傳送到高速設備上,或者相反。但是當引入多道程序后,完全可以利用其中的一道程序來模擬脫機輸入時的外圍控制機的功能,把低速的I/O設備上的數(shù)據(jù)傳送到高速磁盤上;再利用另一道程序來模擬脫機輸出時外圍控制機的功能,把高速磁盤上的數(shù)據(jù)傳送到低速的I/O設備上。這樣便可以在主機的控制下實現(xiàn)脫機輸入、輸出的功能。此時的外圍操作與CPU對數(shù)據(jù)的處理同時進行。
20240110100415采用假脫機技術,可以將低速的獨占設備改造成一種可共享的設備,而且一臺物理設備可以對應若干臺虛擬的同類設備。SPOOLING系統(tǒng)必須有高速、大容量并且可隨機存取的外存(例如,磁盤或磁鼓)支持。
2.2.4.文件管理
操作系統(tǒng)對計算機的管理包括兩個方面:硬件資源和軟件資源。硬件資源的管理包括CPU的管理、存儲器的管理、設備管理等,主要解決硬件資源的有效和合理利用問題。
軟件資源包括各種系統(tǒng)程序、各種應用程序、各種用戶程序,也包括大量的文檔材料、庫函數(shù)等。每一種軟件資源本身都是具有一定邏輯意義的相關信息的集合,在操作系統(tǒng)中它們以文件形式存儲。
計算機系統(tǒng)的重要作用之一是能快速處理大量信息,因此數(shù)據(jù)的組織、存取和保護成為一個極重要的內容。文件系統(tǒng)是操作系統(tǒng)中組織、存取和保護數(shù)據(jù)的一個重要部分。
文件管理的功能包括:建立、修改、刪除文件;按文件名訪問文件;決定文件信息的存 放位置、存放形式及存取權限;管理文件間的聯(lián)系及提供對文件的共享、保護和保密等。允 許多個用戶協(xié)同工作又不引起混亂。文件的共享是指一個文件可以讓多個用戶共同使用,它可以減少用戶的重復性勞動,節(jié)省文件的存儲空間,減少輸入/輸出文件的次數(shù)等。文件的保護主要是為防止由于錯誤操作而對文件造成的破壞。文件的保密是為了防止未經授權的用戶對文件進行訪問。
文件的保護、保密實際上是用戶對文件的存取權限控制問題。一般為文件的存取設置兩 級控制:第1級是訪問者的識別,即規(guī)定哪些人可以訪問;第2級是存取權限的識別,即有權參與訪問者可對文件執(zhí)行何種操作。
-
文件的邏輯結構
文件的結構是指文件的組織形式,從用戶角度所看到的文件組織形式,稱為文件的邏輯結構。
文件的邏輯組織是為了方便用戶使用。一般文件的邏輯結構可以分為兩種:無結構的字 符流文件和有結構的記錄文件。記錄文件由記錄組成,即文件內的信息劃分成多個記錄,以記錄為單位組織和使用信息。
記錄文件有順序文件、索引順序文件、索引文件和直接文件。 -
文件的物理結構
文件的物理結構是指文件在存儲設備上的存放方法。文件的物理結構側重于提高存儲器 的利用效率和降低存取時間。文件的存儲設備通常劃分為大小相同的物理塊,物理塊是分配 和傳輸信息的基本單位。文件的物理結構涉及文件存儲設備的組塊策略和文件分配策略,決定文件信息在存儲設備上的存儲位置。常用的文件分配策略有:
- 順序分配(連續(xù)分配)。這是最簡單的分配方法。在文件建立時預先分配一組連續(xù) 的物理塊,然后,按照邏輯文件中的信息(或記錄)順序,依次把信息(或記錄)按順序存儲到物理塊中。這樣,只需知道文件在文件存儲設備上的起始位置和文件長度,就能進行存取,這種分配方法適合于順序存取,在連續(xù)存取相鄰信息時,存取速度快。其缺點是在文件建立時必須指定文件的信息長度,以后不能動態(tài)增長,一般不宜用于需要經常修改的文件。
- 鏈接分配(串聯(lián)分配)。這是按單個物理塊逐個進行的。每個物理塊中(一般是最 后一個單元)設有一個指針,指向其后續(xù)連接的下一個物理塊的地址,這樣,所有的物理塊都被鏈接起來,形成一個鏈接隊列。在建立鏈接文件時,不需要指定文件的長度,在文件的說明信息中,只需指出該文件的第一個物理塊塊號,而且鏈接文件的文件長度可以動態(tài)地增長。只調整物理塊間的指針就可以插入或刪除一個信息塊。鏈接分配的優(yōu)點是可以解決存儲器的碎片問題,提高存儲空間利用率。由于鏈接文件只能按照隊列中的鏈接指針順序查找,因此搜索效率低,一般只適用于順序訪問,不適用于隨機存取。
- 索引分配。這是另一種對文件存儲不連續(xù)分配的方法。采用索引分配方法的系統(tǒng), 為每一個文件建立一張索引表,索引表中每一表項指出文件信息所在的邏輯塊號和與之對應的物理塊號。
索引分配既可以滿足文件動態(tài)增長的要求,又可以方便而迅速地實現(xiàn)隨機存取。對一些大的文件,當索引表的大小超過一個物理塊時,會發(fā)生索引表的分配問題。一般采用多級(間 接索引)技術,這時在由索引表指出的物理塊中存放的不是文件存放處而是存放文件信息的物理塊地址。這樣,如果一個物理塊能存儲n個地址,則一級間接索引將使可尋址的文件長度變成n2塊,對于更大的文件可以采用二級甚至三級間接索引(例如,UNIX操作系統(tǒng)采用三級索引結構,如圖 2-9所示)。
20240110105645索引文件的優(yōu)點是既適用于順序存取,又適用于隨機存取。缺點是索引表增加了存儲空間的開銷。另外,在存取文件時需要訪問兩次磁盤,一次是訪問索引表,另一次是根據(jù)索引表提供的物理塊號訪問文件信息。為了提高效率,一種改進的方法是,在對某個文件進行操作之前,預先把索引表調入內存。這樣,文件的存取就能直接從內存的索引表中確定相應的物理塊號,從而只需要訪問一次磁盤。
-
文件存儲設備管理
文件存儲設備管理,就是操作系統(tǒng)要有效地進行存儲空間的管理。由于文件存儲設備是分成許多大小相同的物理塊,并以塊為單位交換信息,因此,文件存儲設備的管理實質上是對空閑塊的組織和管理問題。它包括空閑塊的組織,空閑塊的分配與空閑塊的回收等問題。有3種不同的空閑塊管理方法,它們分別是索引法、鏈接法和位示圖法。
- 索引法:索引法把空閑塊作為文件并采用索引技術。為了有效,索引對應于一個 或 由幾個空閑塊構成的空閑區(qū)。這樣,磁盤上每一個空閑塊區(qū)都對應于索引表中一個條目,這個方法能有效地支持每一種文件分配方法。
- 鏈接法:鏈接法使用鏈表把空閑塊組織在一起,當申請者需要空閑塊時,分配程序從鏈首開始摘取所需的空閑塊。反之,管理程序把回收的空閑塊逐個掛入隊尾,這個方法適用于每一種文件分配方法??臻e塊的鏈接方法可以按釋放的先后順序鏈接,也可以按空閑塊區(qū)的大小順序鏈接。后者有利于獲得連續(xù)的空閑塊的請求,但在分配請求和回收空閑塊時系統(tǒng)開銷多一點。
- 位示圖法。該方法是在外存上建立一張位示圖(Bitmap),記錄文件存儲器的使用情況。每一位僅對應文件存儲器上的一個物理塊,取值0和1分別表示空閑和占用。文件存儲器上的物理塊依次編號為:0、1、2、…。假如系統(tǒng)中字長為32位,有4096個物理塊,那么在位示圖中的第1個字對應文件存儲器上的0、1、2、…、31號物理塊;第2個字對應文件存儲器上的32、33、34、…、63號物理塊;第128字對應文件存儲器上的4064、4065 、…、4095 號物理塊。這樣位示圖的大小為32字。
位示圖是利用二進制的一位來表示磁盤中一個盤塊的使用情況,如圖2-10所示。當其值為“0”時,表示對應的盤塊空閑;為“1”時表示已分配。由所有盤塊對應的位構成一個集合,稱為位示圖。位示圖也可描述為一個二維數(shù)組map:Varmap:array[1 .…m,1 .…n]ofbit;
20240110110237 -
樹型目錄結構
在計算機的文件系統(tǒng)中,一般采用樹型目錄結構。在樹型目錄結構中,樹的根結點為根目錄,數(shù)據(jù)文件作為樹葉,其他所有目錄均作為樹的結點。
根目錄隱含于一個硬盤的一個分區(qū)中,根目錄在最頂層。它包含的子目錄是一級子目錄。每一個一級子目錄又可以包含若干二級子目錄,…,這樣的組織結構就叫作目錄樹。
當前盤和當前目錄是系統(tǒng)默認的操作對象。如果用戶沒有指明操作對象,系統(tǒng)就將用戶命令指向當前盤和當前目錄。
路徑是指從根目錄或者當前目錄開始到訪問對象(目錄或者文件),在目錄樹中路經的 所有目錄的序列。例如“c:\dos\lmouse\mouse”就是Windows系統(tǒng)中的一條路徑。在樹型目錄結構中,從根目錄到任何數(shù)據(jù)文件之間,只有一條唯一的通路,從樹根開始,把全部目錄文件名與數(shù)據(jù)文件名,依次用“/”(UNIX/Linux系統(tǒng))或“\”(Windows系統(tǒng))連接起 來,構成該數(shù)據(jù)文件的路徑名,且每個數(shù)據(jù)文件的路徑名是唯一的。這樣,便可以解決文件重名問題。
從樹根開始的路徑為絕對路徑,如果文件系統(tǒng)有很多級時,使用不是很方便,所以引入相對路徑,即從當前目錄開始,再逐級通過中間的目錄文件,最后到達所要訪問的數(shù)據(jù)文件。
絕對路徑給出文件或目錄位置的完全描述,通常由層次結構的頂端開始(根目錄),通常第一個字符是“/”(UNIX/Linux系統(tǒng))或者是盤符(Windows系統(tǒng))。相對路徑通常由目錄結構中的當前位置開始,一般都比絕對路徑要短。
父目錄是指當前路徑的上一層目錄。每個目錄下都有代表當前目錄的“.”文件和代表當前目錄父目錄的“..”文件,相對路徑名一般就是從“..”開始的。
2.2.5.作業(yè)管理
從用戶的角度看,作業(yè)是系統(tǒng)為完成一個用戶的計算任務(或一次事務處理)所做的工作總和。例如,對于用戶編制的源程序,需經過對源程序的編譯、連接編輯或連接裝入及運行產生計算結果。這其中的每一個步驟,常稱為作業(yè)步,作業(yè)步的順序執(zhí)行即完成了一個作業(yè)。
從系統(tǒng)的角度看,作業(yè)則是一個比程序更廣的概念。它由程序、數(shù)據(jù)和作業(yè)說明書組成。系統(tǒng)通過作業(yè)說明書控制文件形式的程序和數(shù)據(jù),使之執(zhí)行和操作。而且,在批處理系統(tǒng)中,作業(yè)是占據(jù)內存的基本單位。
用戶的作業(yè)可以通過直接的方式,由用戶自己按照作業(yè)步順序操作;也可以通過間接的方式,由用戶率先編寫的作業(yè)步依次執(zhí)行的說明,一次交給操作系統(tǒng),由系統(tǒng)按照說明依次處理。前者稱為聯(lián)機方式,后者稱為脫機方式。
-
作業(yè)狀態(tài)及其轉換
一個作業(yè)從交給計算機系統(tǒng)到執(zhí)行結束退出系統(tǒng),一般都要經歷提交、后備、執(zhí)行和完成4個狀態(tài)。其狀態(tài)轉換如圖2-11所示。
- 提交狀態(tài)。作業(yè)由輸入設備進入外存儲器(也稱輸入井)的過程稱為提交狀態(tài)。處于提交狀態(tài)的作業(yè),其信息正在進入系統(tǒng)。
- 后備狀態(tài)。當作業(yè)的全部信息進入外存后,系統(tǒng)就為該作業(yè)建立一個作業(yè)控制塊(Job Control Block,JCB)。系統(tǒng)通過JCB感知作業(yè)的存在。JCB主要內容包括作業(yè)名、作業(yè)狀態(tài)、資源要求、作業(yè)控制方式、作業(yè)類型及作業(yè)優(yōu)先權等。
- 執(zhí)行狀態(tài)。一個后備作業(yè)被作業(yè)調度程序選中而分配了必要的資源并進入了內存,作業(yè)調度程序同時為其建立了相應的進程后,該作業(yè)就由后備狀態(tài)變成了執(zhí)行狀態(tài)。
- 完成狀態(tài)。當作業(yè)正常運行結束,它所占用的資源尚未全部被系統(tǒng)回收時的狀態(tài)為完成狀態(tài)。
20240110111034 -
用戶接口
用戶接口也稱為用戶界面,其含義有兩種,一種是指用戶與操作系統(tǒng)交互的途徑和通道,即操作系統(tǒng)的接口; 另一種是指這種交互環(huán)境的控制方式,即操作環(huán)境。
- 操作系統(tǒng)的接口。操作系統(tǒng)的接口又可分成命令接口和程序接口。命令接口包含 鍵盤命令和作業(yè)控制命令;程序接口又稱為編程接口或系統(tǒng)調用,程序經編程接口請求系統(tǒng) 服務, 即通過系統(tǒng)調用程序與操作系統(tǒng)通信。系統(tǒng)調用是操作系統(tǒng)提供給編程人員的唯一接 口。系統(tǒng)調用對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關功能。系統(tǒng)調用大致分為設備管理、文件管理、進程控制、進程通信和存儲管理等。
- 操作環(huán)境。操作環(huán)境支持命令接口和程序接口,提供友好的、易用的操作平臺。 操作系統(tǒng)的交互界面已經從早期的命令驅動方式,發(fā)展到菜單驅動方式、圖符驅動方式和視窗操作環(huán)境。









