系統架構設計師學習筆記 第二章

第二章 操作系統

掌握操作系統原理的關鍵在于深入理解“一個觀點,兩條線索”。一個觀點是以資源管理的觀點來定義操作系統;兩條線索是指操作系統如何管理計算系各類資源和控制程序的執行。

2.1 操作系統的類型與結構

操作系統的基本類型有:批處理操作系統、分時操作系統和實時操作系統。從資源管理的角度看:操作系統主要是對處理器、存儲器、文件、設備和作業進行管理。

2.1.1 操作系統的定義

OS是計算機系統中的核心系統軟件,負責管理和控制計算機系統中的硬件和軟件資源,合理的組織計算機工作流程和有效的利用資源,再計算機和用戶之間起到接口的作用。

2.1.2 操作系統分類

按照功能劃分,可以分為批處理操作系統、分時操作系統、實時操作系統、網絡操作系統、分布式操作系統、嵌入式操作系統、微內核操作系統等。

2.2 操作系統基本原理

主要功能是進行處理機與進程管理、存儲管理、設備管理、文件管理和作業管理的工作。

2.2.1 進程管理

進程是處理機管理中最基本、最重要的概念。進程是系統并發執行的體現。由于在多道程序系統中,眾多的計算機用戶都以各種各樣的任務,隨時隨地爭奪使用處理機。為了動態的看待操作系統,則以進程作為獨立運行的基本單位,以進程作為分配資源的基本單位。處理機管理也稱進程管理。

1. 進程的概念

順序程序是指程序中若干操作必須按照某種先后次序來執行,并且每次操作前和操作后的數據、狀態之間都有一定的關系。在多道程序系統中,程序的運行環境發生了很大的變化,主要體現在:

  1. 資源共享。為提高資源的利用率,計算機系統中的資源由多道程序共同使用。
  2. 程序的并發執行或并行執行。邏輯上講允許多道不同用戶的程序并行運行;允許一個用戶程序內部完成不同操作的程序段之間并行運行;允許操作系統內部不同的程序之間并行運行。物理上講:內存儲器中保存多個程序,I/O設備被多個程序交替的共享使用;在多處理機系統的情形下,表現為多個程序在各自的處理機上運行,執行時間是重疊的。單處理機系統時,程序的執行表現為多道程序交替的在處理機上相互空插運行。

實際上,在多道程序系統中,程序的并發執行和資源共享之間時相輔相成的。以方便,只有允許程序并行執行,才可能存在資源共享的問題;另一方面,只有有效的實現資源共享,才可能使得程序并行執行。

并發操作實際上是這樣的:大多數程序段只要求操作在時間上是有序的,也就是有些操作必須在其他操作之前,這是有序的,但其中有些操作卻可以同時進行。

2. 進程的狀態轉換

進程至少具有以下三種狀態:

  1. 就緒狀態。當進程已分配了除CPU意外的所有必要的資源后,只要能再獲得處理機,便能立即執行,這是的進程狀態為就緒狀態。在一個系統中,可以有多個進程同時處于就緒狀態,通常把它們排成一個隊列,稱為就緒隊列。
  2. 執行狀態。指進程已獲得處理機,其程序正在執行。在單處理機系統中,只能有一個進程處于執行狀態。
  3. 阻塞狀態。指進程因發生某事件(如請求I/O、申請緩沖空間等)而暫停執行時的狀態,即進程的執行受到阻塞,故稱這種暫停狀態為阻塞狀態,也稱“等待”狀態,或“睡眠”狀態。通常將處于阻塞狀態的進程排成一個隊列,稱為阻塞隊列。

進程狀態的變化情況如下:

  1. 運行態$\to$等待態:一個進程運行中啟動了外圍設備,它就變成等待外圍設備傳輸信息的狀態;進程在運行中申請資源得不到滿足時;進程在運行中出現了故障時
  2. 等待態$\to$就緒態:外圍設備工作結束后等待外圍設備傳輸信息的進程結束等待;等待的資源得到滿足時;故障排隊后讓等待干預的進程結束等待。任何一個結束等待的進程必須先變成就緒狀態,待分配到處理器后才能運行。
  3. 運行態$\to$就緒態:進程用完了一個使用處理器的時間后強迫該進程暫時讓出處理器,當有更優先權的進程要運行時也迫使正在運行的進程讓出處理器。由于自身或外界原因成為等待狀態的進程讓出處理器時,它的狀態就變成就緒狀態。
  4. 就緒態$\to$運行態:等待分配處理器的進程,系統按一種選定的策略從處于就緒狀態的進程中選擇一個進程,讓它占用處理器,哪個被選中的進程就變成了運行態。

3. 關于掛起狀態

引入刮起狀態的原因有:

  1. 對換的需要。為了緩和內存緊張的情況,而將內存中處于阻塞狀態的進程換至外存上,使進程又處于一種有別于阻塞狀態的新狀態。因為即使該進程所期待的事情發生,該進程仍不具備執行條件而不能進入就緒隊列,成這種狀態為掛起狀態。
  2. 終端用戶的請求。當終端用戶在自己的程序運行期間,發現有可以問題時,往往希望使自己的進程暫停下來。也就是說,使正在執行的進程暫停執行,若是就緒進程,則不接受調度以便研究其執行情況或對程序進行修改。把這種靜止狀態也稱為掛起狀態。
  3. 父進程請求。父進程常希望掛起自己的子進程,以便考察和修改子進程,或者協調各子進程之間的活動。
  4. 負荷調節的需要。當實時系統中的工作負荷較重,有可能影響到實時任務的控制時,可由系統吧一些不重要的進程掛起,以保證系統正常運行。
  5. 操作系統的需要。操作系統希望掛起某些進程,以便檢查運行中資源的使用情況及進行記賬。

綜上所述,掛起狀態具有以下三個屬性:

  1. 被掛起的進程,原來可能處于就緒狀態,此時進程(被掛起)的狀態稱為掛起就緒;若被掛起的進程原來處于阻塞狀態,此時的狀態稱為掛起阻塞。不論那種狀態,該進程都是不可能被調度而執行的。
  2. 處于掛起阻塞狀態的進程,其阻塞條件與掛起狀態無關;當進程所期待的事件出現后,進程雖不再被阻塞,但仍不能運行,這時,應將該進程從靜止阻塞狀態轉換為掛起就緒狀態。
  3. 進程可以由其自身掛起,也可由用戶或操作系統等將之掛起。其目的都在于組織進程繼續進行,被掛起的進程只能用顯示方式來激活,以便從掛起狀態中解脫出來。

4. 進程互斥與同步

進程互斥定義為:一組并發進程中一個或多個程序段,因為共享某一共有資源而導致必須以一個不允許交叉執行的單位執行。也就是說互斥是保證臨界資源在某一時刻只被一個進程訪問。

進程同步定義為:把異步環境下的一組并發進程因直接制約而互相發送消息而進行互相合作、互相等待,使得各進程按一定的速度執行的過程稱為進程同步。也就是說進程之間時異步執行的,同步即是使各進程按一定的制約順序和速度執行。

互斥時資源的競爭關系,同步是進程間的協作關系。

一次僅允許一個進程使用的資源稱為臨界資源。一個進程訪問臨界資源的那段程序代碼稱為臨界區。由此互斥可以描述為:禁止兩個或兩個以上的進程同時進入訪問同一臨界資源的臨界區。協調準則如下:

  1. 空閑讓進。無進程處于臨界區時,若有進程要求進入臨界區則立即允許其進入;
  2. 忙則等待。當已有進程進入臨界區時,其他試圖進入各自臨界區的進程必須等待,以保證各進程互斥的進入臨界區;
  3. 有限等待。有若干進程要求進入臨界區時,應在有限時間內使一進程進入臨界區,即它們不應相互等待而誰也不進入臨界區;
  4. 讓權等待。對于等待進入臨界區的進程必須釋放其占有的CPU。

信號量可以有效的實現進程的同步和互斥。在操作系統中,信號量是一個證書。當信號量大于等于0時,代表可供并發進程使用的資源實體數,當信號量小于0時則表示正在使用臨界區的近成熟。建立一個信號量必須說明所建信號量代表的意義和設置初值,以及建立相應的數據結構,以便指向那些等待使用該臨界區的進程。

對信號量只能施加特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子操作,稱為原語。因此,P操作和V操作執行期間不允許中斷發生。

P(sem)操作的過程是將信號量sem值減1,若sem的值成負數,則調用P操作的進程暫停執行,直到另一個進程對同一信號量作V操作。V(sem)操作的過程是將信號量sem的值加1,若sem的值小于等于0,從相應隊列(與sem有關的隊列)中選擇一個進程,喚醒它。操作的定義如下:

P操作

P(sem) {
    sem = sem - 1;
    if (sem < 0) 進程進入等待狀態;
    else 繼續執行;
}

V操作

V(sem) {
    sem = sem + 1;
    if (sem <= 0) 喚醒隊列中的一個等待進程;
    else 繼續執行;
}

設信號量mutex是用于互斥的信號量,初值為1,表示沒有并發進程使用該臨界區。于是各并發進程的臨界區可以改寫成下列形式的代碼段:

P(mutex);
臨界區
V(mutex);

要用P,V操作實現進程同步,需要引進私用信號量。私用信號量只與制約進程和被制約進程有關,而不是與整組并發進程有關。與此相對,進程互斥使用的信號量為公用信號量。首先為各并發進程設置私用信號量,然后為私用信號量賦初值,最后利用P、V原語和私用信號量規定各進程的執行順序。

5. 前趨圖

前趨圖是一個由結點和有向邊構成的有向無循環圖。該圖通常用于表現事務之間先后順序的制約關系。圖中的每一個節點可以表示一個語句、一個程序段或是一個進程,節點間的有向邊表示兩個節點之間存在的前趨關系。

沒有前趨節點的稱為開始節點,沒有后繼節點的,稱為終止節點。

在前趨圖中,執行先后順序的制約關系可分為兩種:直接制約和間接制約。

直接制約通常是指一個操作中,多個步驟之間的制約關系,也可以說是“同步的進程之間的制約關系”。

間接制約通常是指多個操作之間相同步驟的制約關系,也可以說是“互斥的進程之間的制約關系”。

6. 進程調度與死鎖

進程調度即處理器調度,又稱上下文轉換,主要功能是確定在什么時候分配處理器,并確定分配給哪一個進程,即讓正在執行的進程改變狀態并轉入就緒隊列的隊尾,再由調度原語將就緒隊列的隊首進程取出,投入執行。

引起進程調度的原因有以下幾類:

  1. 正在執行的進程執行完畢
  2. 執行中的進程自己調用阻塞原語將自己阻塞起來進入睡眠狀態。
  3. 執行中的進程調用了P原語操作,從而因資源不足而阻塞;或調用V原語操作激活了等待資源的進程隊列。
  4. 在分時系統中,當一個進程用完了一個時間片。
  5. 就緒隊列中某進程的優先級變得高于當前執行進程的優先級,也將引起進程調度。

進程調度的方式有兩類:剝奪方式和非剝奪方式。非剝奪方式是指:一旦某個作業或進程占用了處理器,別的進程就不能把處理器從這個進程手中奪走,直到該進程自己因調用原語操作而進入阻塞狀態,或時間片用完而讓出處理機;剝奪方式是指:當就緒隊列中有進程的優先級高于當前執行進程的優先級時,便立即發生進程調度,轉讓處理機。

進程調度算法如下:

  1. 先來先服務FCFS調度算法,又稱先進先出。就緒隊列按先來后到原則排隊。
  2. 優先數調度。優先數反映進程優先級,就緒隊列按優先數排列。有兩種確定優先級的方法,即靜態優先級和動態優先級。靜態優先級是指進程的優先級在進程開始執行前確定,執行過程中不變,而動態優先級則可以在進程執行過程中改變。
  3. 輪轉法。就緒隊列按FCFS方式排隊。每個進程執行一次占有處理器時間都不超過規定的時間單位(時間片)若超過,則自動釋放自己所占有的CPU而排到就緒隊列的隊尾,等待下一次調度。同時,進程調度程序又去調度當前就緒隊列中的第一個進程。

當若干個進程互相競爭對方已占有的資源,無限期的等待,不能向前推進時會造成“死鎖”。

  1. 死鎖條件。產生死鎖的主要原因是供共享的系統資源不足,資源分配策略和進程的推進順序不當。系統資源既可能時可重復使用的永久性資源,也可能時消耗性的臨時資源。產生死鎖的必要條件是:互斥條件、保持和等待條件、不剝奪條件和環路等待條件。
  2. 解決死鎖的策略。處于死鎖狀態的進程不能繼續執行但又占用了系統資源,從而阻礙其他作業的執行。
    解決死鎖有兩種策略:一種是在死鎖發生前采用的預防和避免策略;另一種是在死鎖發生后采用的檢測和恢復策略。
    死鎖的預防主要是通過打破死鎖產生的4個必要條件之一來保證不會產生死鎖。采用的死鎖預防策略通常有資源的靜態分配法或有序分配法,他們分別打破了資源動態分配條件和循環等待條件,因此不會發生死鎖,但是會大大降低系統資源的利用率和進程之間的并行程度。
    死鎖避免策略,則是在系統進行資源分配時,先執行一個死鎖避免算法,以保證本次分配不會導致死鎖發生。由于資源分配很頻繁,所以死鎖避免策略要耗費大量的CPU和時間。

2.2.2 存儲管理

系統中內存的使用一般分為兩部分,一部分為系統空間,存放操作系統本身及相關的系統程序;另一部分為用戶空間,存放用戶的程序和數據。

存儲管理主要是針對內存儲器的管理,負責對內存的分配和回收、內存的保護和內存的擴充。目的是盡量提高內存的使用效率。

1. 頁式存儲管理

分頁的基本思想是把程序的邏輯空間和內存的物理空間按照同樣的大小劃分成若干頁面,并以頁面為單位進行分配。在頁式存儲管理中系統中虛地址是一個有序對(頁號,位移)。系統為每一個進程建立一個頁表,其內容包含進程的邏輯頁號于物理頁號的對應關系、狀態等。

頁式系統的動態地址轉換方式如下:當進程運行時,其頁表的首地址已在系統的動態地址轉換機構中的基本地址寄存器中。執行的指令訪問虛存地址時,首先根據頁號查詢頁表,若已調入內存,則得到該頁的內存位置,然后,同頁內位移值組合,得到物理地址。如果該頁尚未調入內存,則產生缺頁中斷,以裝入所需的頁。

頁式虛擬存儲管理是在頁式存儲管理的基礎上實現虛擬存儲器的。

當裝入一個當前需要的頁面時,如果內存儲器中無空閑塊,則可選擇一個已在內存儲器中的頁面,把它暫時調出內存。若在執行中該頁被修改過,則把該頁信息重新協會到磁盤上,否則不必重新寫回磁盤。當一頁被暫時調出內存后,讓出的內存空間用來存放當前需要使用的頁面。頁面被調出或裝入之后都要對頁表中的相應表目作修改。這稱之為頁面調度。如果頁面調度不合理,導致同一內容反復調出調入,稱為“抖動”。

常見的頁面調度算法有:

  1. 最優算法OPT:選擇不再使用或者最遠的將來才被使用的頁,這時理想的算法,但是難以實現,常用于淘汰算法的比較。
  2. 隨機算法RAND:隨機選擇被淘汰的頁,開銷小,但是可能酸中立即就要訪問的頁。
  3. 先進先出算法FIFO
  4. 最近最少使用算法LRU

2. 段式存儲管理

與頁式存儲管理相似。分段的基本思想是把用戶作業按邏輯意義上有完整意義的段來劃分,并以段為單位作為內外存交換的空間尺度。

分段系統中,允許程序(作業)占據內存中許多分離的分區。沒個分區存儲一個程序分段。分段系統中虛地址是一個有序對(段號,位移)。地址轉換方式同頁內存儲管理方式相似。

3. 段頁式存儲管理

是段式和頁式兩種管理方法的結合。根據程序模塊分段,段內再分頁,內存被劃分成定長的頁。虛地址形式為(段號、頁號、頁內位移)。

段頁式虛擬存儲管理結合了段式和頁式的優點,但增加了設置表格(段表、頁表)和查表等開銷,段頁式虛擬存儲器一般只在大型計算機系統中使用。

2.2.3 設備管理

1. 數據傳輸控制方式

主要任務之一是控制設備和內存或CPU之間的數據傳送。選擇和衡量控制方式的原則如下:

  1. 數據傳送速度足夠高,能滿足用戶的需要但又不丟失數據。
  2. 系統開銷小,所需的處理控制程序少。
  3. 能充分發揮硬件資源的能力,使得I/O設備盡量處于使用狀態中,而CPU等待時間少。

常用的數據傳送方式主要有如下幾種:

  1. 程序控制方式。處理器啟動數據傳輸,然后等設備完成。
  2. 中斷方式。程序控制方式不能實現并發。中斷方式的數據傳輸過程為,進程啟動數據傳輸(如讀)后,該進程放棄處理器,當數據傳輸完成,設備控制器產生中斷請求,中斷處理程序對數據傳輸工作處理之后,讓相應進程成為就緒狀態。以后,該進程得到所需要的數據。
  3. 直接存儲訪問方式DMA。指外部設備和內存之間開辟直接的數據交換通路。除了控制狀態寄存器和數據緩沖寄存器外,DMA控制器中還包括傳輸字節計數器、內存地址計數器等。
  4. 通道方式。又稱為輸入/輸出處理器IOP,可以獨立完成系統交付的輸入/輸出任務,通過執行自身的輸入/輸出專用程序(稱通道程序)進行內存和外設之間的數據傳輸,主要有3種通道:字節多路通道、選擇通道和成組多路通道。

2. 虛設備與SPOOLING技術

采用假脫機技術,可以將低速的獨占設備改造成一種可獨占的設備,而且一臺物理設備可以對應若干臺虛擬的同類設備。假脫機(SPOOLING)的意思是外部設備同時聯機操作,又稱為假脫機輸入/輸出操作,采用一組程序或進程模擬一臺輸入/輸出設備。

SPOOLING技術必須有高速、大容量并且可隨機存取的外存(如磁盤或磁鼓)支持。例如現在電腦中的多窗口技術。

2.2.4 文件管理

操作系統對計算機的管理包括兩個方面:硬件資源和軟件資源。硬件資源的管理包括CPU的管理、存儲器的管理、設備管理等。主要解決硬件資源的有效和合理利用問題。

軟件資源包括各種系統程序、各種應用程序、各種用戶程序,也包括大量的文檔材料、庫函數等。每一種軟件資源本身都是具有一定邏輯意義的相關信息的集合,在操作系統中它們以文件形式存儲。

文件系統是操作系統中組織、存取和保護數據的一個重要部分。

文件管理的功能包括:建立、修改、刪除文件;按文件名訪問文件;決定文件信息存放的位置、存放形式及存放權限;管理文件件的聯系及提供對文檔的共享、保護、保密等。允許多個用戶協同工作又不引起混亂。文件的共享是指一個文件可以讓多個用戶共同使用,他可以減少用戶的重復性勞動,節省文件的存儲空間,減少輸入/輸出文件的次數等。文件的保護主要是為防止由于錯誤操作而對文件造成的破壞。文件的保密是為了防止未經授權的用戶對文件進行訪問。

文檔的保護、保密實際上是用戶對文件的存取權限控制問題。一般為文件的存取設置兩級控制:第1級是訪問者的識別,即規定哪些人可以訪問;第2級是存取權限的識別,即有權參與訪問者可對文件執行何種操作。

1. 文件的邏輯結構

指文件的組織形式。一般可分文兩種:無結構的字符流文件和有結構的記錄文件。記錄文件由記錄組成,即文件內的信息劃分成多個記錄,以記錄為單位組織和使用信息。

記錄文件有順序文件、索引順序文件、索引文件和直接文件。

  1. 順序文件。大多數文件是順序文件。順序文件的記錄定長,記錄中的數據項和類型長度與次序固定,一般還有一個可以唯一標識記錄的數據項,稱為鍵(Key),記錄是按鍵值的約定次序組織的。常用于批處理應用,用于查詢或更新某個記錄的處理性能不太好。
  2. 索引順序文件。是基于鍵的約定次序組織的,而且維護鍵的索引和溢出區域。鍵的索引也可以是多級索引。索引順序文件既適用于交互方式應用,也適用于批處理方式應用。
  3. 索引文件。是基于記錄的一個鍵數據項組織的。許多應用需按照別的數據項訪問文件,為此,常采用索引文件方法,即對主文件中的記錄按需要的數據項(一個或幾個)建索引,索引文件本身是順序文件組織。
  4. 直接文件。又稱哈希(Hash)文件。記錄以他們在直接訪問存儲設備上的物理地址直接(隨機的)訪問。常用于需要高速訪問文件而且每次僅訪問一條記錄的應用中。

2. 文件的物理結構

指的是文件在存儲設備上的存儲方法。文件的存儲設備通常劃分為大小相同的物理塊,物理塊是分配和傳輸信息的基本單位。文件的物理結構涉及文件存儲設備的組塊策略和文件分配策略,決定文件信息在存儲設備上的存儲位置。常用的文件分配策略有:

  1. 順序分配(連續分配)。最簡單的分配方法。在文件建立時預先分配一組連續的物理塊,然后,按照邏輯文件中的信息(或記錄)順序,依次把信息(或記錄)按順序存儲到物理塊中。這樣,只需知道文件在文件存儲設備上的起始位置和文件長度,就能進行存取。這種分配方式適合于順序存取,在連續存取相鄰信息時,存取速度快。其缺點是在文件建立時必須指定文件的信息長度,以后不能動態增長,一般不宜用于需要經常修改的文件。
  2. 鏈接分配(串聯分配)。這是按單個物理塊逐個進行的。每個物理塊中(一般是最后一個單元)設有一個指針,指向其后續鏈接的下一個物理塊的地址,這樣,所有的物理塊都被鏈接起來,形成一個鏈接隊列。在建立鏈接文件時,不需要指定文件的長度,在文件的說明信息中,只需支出該文件的第一個物理塊塊號,而且鏈接文件的文件長度可以動態的增長。只需調整物理塊間的指針就可以插入或刪除一個信息塊。
    鏈接分配的優點是可以解決存儲器的碎片問題,提高存儲空間利用率。由于鏈接文件只能按照隊列中的鏈接指針順序查找,因此搜索效率低,一般只適用于順序訪問,不適用于隨機存儲。
  3. 索引分配。是另外一種對文件存儲不連續分配的方法。采用索引分配方法的系統,為每一個文件建立一張索引表,索引中的每一項指出文件信息所在的邏輯塊號和與之對應的物理塊號。
    索引分配既能滿足文件動態增長的要求,又可以方便而迅速的實現隨機存取。對一些大的文件,當索引表的大小超過一個物理塊時,會發生索引表的分配問題。一般采用多級(間接索引)技術,這時在由索引表指出的物理塊中存放的不是文件存放處,而是文件存放信息的物理塊地址。這樣,如果一個物理塊能存放$n$個地址,則一級間接索引將使可尋址的文件長度變成$n^2$塊,對于更大的文件可以采用二級甚至三級是間接索引(UNIX系統使用三級索引結構)。
    索引文件的優點是既適用于順序存儲,又適用于隨機存儲,缺點是索引表增加了存儲空間的開銷。另外,在存取文件時需要訪問兩次磁盤,一次是訪問索引表,一次是根據索引表提供的物理塊號訪問文件信息。為了提高效率,一種改進的方法是,在對某個文件進行操作之前,預先把索引表調入內存。這樣文件的存取就能直接從內存的索引表中確定相應的物理塊號,從而只需要訪問一次磁盤。

3. 文件存儲設備管理

文件存儲設備的管理實質上是對空閑塊的組織和管理問題。它包括空閑塊的組織,空閑塊的分配與空閑塊的回收等問題,空閑塊管理方法如下:

  1. 索引法。把空閑塊作為文件并采用索引技術。為了有效,索引對應一個或由幾個空閑塊組成的空閑區。這樣,磁盤上的每一個空閑塊區都對應索引表中的一個條目,這個方法能有效的支持每一種文件分配方法。
  2. 鏈接法。使用鏈表把空閑塊組織在一起,當申請者需要空閑塊時,分配程序從鏈首開始摘取所需的空閑塊。反之,管理程序把回收的空閑塊逐個掛入隊尾,這個方法適用于每一種文件分配方法??臻e塊的鏈接方法可以按釋放的先后順序鏈接,也可以按空閑塊區的大小順序鏈接。后者有利于獲得連續的空閑塊的請求,但在分配請求和回收空閑塊時系統開銷多一點。
  3. 位示圖法。該方法是在外存上建立一個位示圖,記錄文件存儲器的使用情況。每一位僅對應文件存儲器上的一個物理塊,取值0和1分別表示空閑和占用。
    位圖是利用二進制的一位來表示磁盤中的一個盤塊的使用情況。當其值為0時,表示對應的盤塊空閑;當為1時,表示已分配。

4. 樹形目錄結構

在樹形目錄結構中,樹的根節點為根目錄,數據文件作為樹葉,其他所有目錄均作為樹的結點。

根目錄隱含在磁盤的一個分區中,根目錄在最頂層,它包含的子目錄是一級子目錄,每一個一級子目錄又可以包含二級子目錄等,這樣的目錄結構稱為目錄樹。

當前盤和當前目錄是系統默認的操作對象。如果用戶沒有指明操作對象,那么系統就將用戶命令指向當前盤和當前目錄。

路徑是指從根目錄或者當前目錄開始到訪問對象(目錄或文件),在目錄樹中路徑的所有目錄的序列。在樹形目錄結構中,從根目錄到任何數據文件之間,只有一條唯一的通路,從樹根開始,把全部目錄文件名與數據文件名,依次用“/”(UNIX/Linux系統)或“\”(Windows系統)連接起來,構成該數據文件的路徑名,且每個數據文件的路徑名是唯一的。

從樹根開始的路徑為絕對路徑。從當前目錄開始,在逐級通過中間的目錄文件,最后到達所要訪問的數據文件。

絕對路徑給出文件或目錄位置的完全描述,通常由層級結構的頂端開始(根目錄),通常第一個字符是“/”(UNIX/Linux系統)或盤符(Windows系統)。相對路徑通常是由目錄結構中的當前位置開始,一般都比絕對路徑要短。

父目錄是指當前路徑的上一層目錄。每個目錄都有代表當前目錄的“.”文件和代表當前目錄父目錄的“..”文件,相對路徑名一般就是從“..”開始的。

2.2.5 作業管理

從用戶的角度看,作業是系統為完成一個用戶的計算任務(或一次事務處理)所做的工作總和。過程中的每一個步驟,成為作業步,作業步的順序執行即完成了一個作業。

從系統的角度看,作業則是一個比程序更廣的概念。它由程序、數據和作業說明書組成。系統通過作業說明書控制文件形式的程序和數據,使之執行和操作。而且,在批處理系統中,作業是占據內存的基本單位。

用戶的作業可以通過直接的方式,由用戶自己按照作業步驟順序操作;也可以通過間接的方式,由用戶率先編寫的作業步依次執行的說明,一次交給操作系統,由系統按照說明依次處理。前者稱為聯機方式,后者稱為脫機方式。

1. 作業狀態及其轉換

一個作業從交給計算機系統到執行結束退出系統,一般都要經歷提交、后后備、執行和完成四個狀態。

  1. 提交狀態。作業由輸入設備進入外存儲器(也稱輸入井)的過程稱為提交狀態。處于提交狀態的作業,其信息正在進入系統。
  2. 后備狀態。當作業的全部信息進入外存后,系統就為該作業建立一個作業控制塊JCB。系統通過JCB感知作業的存在。JCB主要內容包括作業名、作業狀態、資源要求、作業控制方式、作業類型及作業優先權等。
  3. 執行狀態。一個后備狀態被作業調度程序選中二分配了必要的資源并進入了內存。作業調度程序同時為其建造了相應的進程后,該作業就由后備狀態變成了執行狀態。
  4. 完成狀態。當作業正常運行結束,它所占用的資源尚未完全被系統回收時的狀態為完成狀態。

2. 用戶接口

也稱用戶界面,其含義有兩種,一種是指用戶與操作系統交互的途徑和通道,即操作系統的接口;另一種是指這種交互環境的控制方式,即操作環境。

  1. 操作系統的接口。操作系統的接口又可分成命令接口和程序接口。命令接口包含鍵盤命令和作業控制命令;程序接口又稱編程接口或系統調用,程序經編程接口請求系統服務,即通過系統調用程序與操作系統通信,系統調用是操作系統提供給編程人員的唯一接口。系統調用對用戶屏蔽了操作系統的具體動作而只提供有關功能。系統調用大致分為設備管理、文件管理、進程控制、進程通信和存儲管理等。
  2. 操作環境。操作環境支持命令接口和程序接口,提供友好的、易用的操作平臺。操作系統的交互界面已經從操起的命令驅動方式,發展到菜單驅動方式、圖形驅動方式和視窗操作環境。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容