作業系統主要知識點
下面小編為大家講解,歡迎大家閱讀,一起跟著小編來,多學點知識,終身受益。
掌握作業系統的型別、功能、層次結構和程序概念,以及作業、處理機、儲存、檔案和裝置等管理的原理和方法。
1.1 作業系統型別和功能
根據使用環境和對使用者作業的處理方式劃分,作業系統的基本型別可以分為批處理作業系統、分析作業系統和實時作業系統3大型別。
分時作業系統使多個使用者同時以會話方式控制自己程式的執行,每個使用者都感到似乎各自有一臺獨立的、支援自己請求服務的系統。
實時系統往往是專用的,系統與應用很難分離,常常緊密結合在一起。實時系統並不強調資源利用率,而更關心及時性***時間緊迫性***、可靠性和完整性。實時系統又分成實時過程控制與實時資訊處理兩種。
網路環境下的作業系統又分成網路作業系統和分散式作業系統。分散式作業系統要求一個統一的作業系統,負責全系統的資源分配和排程,為使用者提供統一的介面。它是一個邏輯上緊密耦合的系統。而網路作業系統使用者則需指明欲使用哪一臺計算機上的哪個資源。
作業系統主要有5個功能模組:處理器管理、儲存管理、裝置管理、檔案管理和使用者介面。
1.2 程序和程序管理
***1***程序
程序是一個程式關於某個資料集的一次執行。也就是說,程序是執行中的程式,是程式的一次執行活動。相對於程式,程序是一個的概念,而程式是靜態的概念,是指令的集合,因而程序具有動態性和併發性。
在作業系統中程序是進行系統資源分配、排程和管理的最小單位,注意,現代作業系統中還引入了執行緒***Thread***這一概念,它是處理器分配資源的最小單位。
***2***程序的狀態及其轉換
多道系統中,程序的執行是時走時停的。它在處理器上的交替執行,使它的執行狀態不斷地變化著,最基本的狀態有3種,即執行、就緒和阻塞。
·執行:正佔用處理器。
·就緒:只要獲得處理器即可執行。
·阻塞:正等待某個事件的發生。
***3***程序控制塊
程序是一個動態的概念,在作業系統中,引入資料結構--程序控制塊***簡記為PCB***來標記程序。PCB是程序存在的唯一標誌,PCB描述了程序的基本情況。從靜態的觀點看,程序由程式、資料和程序控制塊組成;從動態的觀點看,程序是計算機狀態的一個有序集合。
程式是程序執行所對應的執行程式碼,一個程序對應於一個程式,一個程式可以同時對應於多個程序,這個程式程式碼在執行過程中不會被改變,常稱為純碼程式或可重入程式,他們是可共享的程式。
程序控制塊儲存程序狀態、程序性質***如優先程度***、與程序有關的控制資訊***如引數、訊號量和訊息等***、相應佇列和現場保護區域等。程序控制塊隨著程序的建立而產生,隨著程序的完成而撤消。
PCB是作業系統核心中最主要的資料結構之一,它既是程序存在的標誌和排程的依據,又是程序可以被打斷並能恢復執行的基礎。作業系統核心通過PCB管理程序,一般PCB是常駐記憶體的,尤其是排程資訊必須常駐記憶體。
***4***程序管理
在作業系統中有許多程序,它們對應著不同的或相同的程式,競爭地使用著系統的資源。程序管理涉及到程序控制、佇列管理和程序排程等。
程序的生命過程從它被建立時開始,直至任務終止而撤消,其間會經歷各種狀態的轉換,它們都是在作業系統控制下完成的。作業系統提供了對程序的基本操作,也稱為原語。這些原語包括建立原語、阻塞原語、終止原語、優先順序原語和排程原語。
程序排程即處理器排程,它的主要功能是確定在什麼時候分派處理器,並確定分給哪一個程序。在分時系統中,一般有一個確定的時間單位***時間片***。當一程序用完一個時間單位時,就發生程序排程,即讓正在執行的程序改變狀態並轉入就緒佇列的隊尾,再由排程原語將緒佇列的首程序取出,投入執行。
程序排程的方法基本上分為兩類:非剝奪排程與剝奪排程。所謂非剝奪排程是指一旦某個作業或程序佔有了處理器,別的程序就不能把處理器從這個程序手中奪走;相反,如果別的程序可將處理器從這個程序手中奪走則是剝奪排程。
程序排程的演算法採用服務於系統目標的策略,對於不同的系統與系統目標,常採用不同的排程演算法,如先來先服務、優先數排程和輪轉法等。
***5***管程
管程是一種併發性的構造,包括用於分配一個特定的共享資源或一組共享資源的資料和過程。為了完成分配資源的功能,程序必須呼叫特定的管程***。許多程序可能打算在不同的時間進入管程,但在管程邊界上嚴格地實施互斥,在某一時刻,只允許一個程序進入。當管程中已有一個程序時,其他希望進入管程的程序必須等待。這種等待是由管程自動管理的。
管程中的資料或者是管程中所有的全域性變數,或者是某個特定過程的區域性變數。所有這些資料只能在管程內訪問,在管程外的程序無法訪問管程內的資料,這叫做資訊掩蔽。
1.3 儲存管理
現代計算機系統中的儲存系統常是多級儲存體系,至少有主存***記憶體***和輔存***外存***兩級,有的系統有更多級數。主存大小由系統硬體決定,是實實在在的儲存,它的儲存容量受到實際儲存單元的限制。虛擬儲存***簡稱虛存***不考慮實際主存的大小和資料存取的實際地址,只考慮相互有關的資料這間的相對位置,其容量由計算機的地址的位數決定。
1.4 裝置管理
裝置管理是對計算機輸入/輸出系統的管理。其主要任務有:實現對外部裝置的分配和回收;啟動外部裝置;控制輸入/輸出裝置與處理器或主存間交換資料;實現對磁碟的排程;處理裝置的中斷;實現虛擬裝置等。
外部和主存之間常用的傳輸控制方式有4種:程式控制方式、中斷方式、直接儲存訪問***DMA***方式和通道方式。
1.5 檔案管理
***1***檔案系統
作業系統的檔案系統包括兩個方面:一方面包括負責管理檔案的一組系統軟體,另一方面包括被管理的物件檔案。檔案系統的主要目標是提高儲存器的利用率,接受使用者的委託,實施對檔案的操作。主要問題是管理輔助儲存器,實現檔案叢名字空間到輔存地址空間的轉換,決定檔案資訊的存放位置、存放形式和存放許可權,實現檔案和目錄的操作,提供檔案共享能力和安全設施,提供友好的使用者介面。
***2***檔案的結構和組織
檔案的結構是指檔案的組織形式。從使用者觀點所看到的檔案組織形式,稱為檔案的邏輯結構;從實現觀點考查檔案在輔助儲存器上的存放方式,常稱為檔案的物理結構。
檔案的邏輯組織是為了方便使用者使用。一般檔案的邏輯結構可以分為兩種:無結構的字元流
檔案和有結構的記錄檔案,後者也稱為有格式檔案。優化檔案的物理結構是為了提高儲存器的利用效率和降低存取時間。檔案的儲存裝置通常被劃分為大小相同的物理塊,物理塊是分配和傳輸資訊的基本單位。檔案的物理結構是指檔案在儲存裝置上的儲存主法。檔案的物理結構涉及檔案儲存裝置的組塊策略和檔案分配策略,決定檔案資訊在儲存裝置上的儲存位置。
1.6 作業管理和使用者介面
作業***Job***是系統為完成一個使用者的計算任務或一次事務處理所做的工作的總和。作業系統中用來控制作業的進入、執行和撤消的一組程式稱為作業管理程式,這些控制功能也能通過把作業步細化、通過程序的執行來實現。
使用者的作業可以通過直接的方式,由使用者自己按照作業步順序操作;也可以通過間接的方式,由使用者事先編寫作業步依次執行的說明,一次交給作業系統,由系統按照說明依次處理。前者稱為聯機方式,後者稱為離線方式。
一般作業系統提供兩種作業控制方式,一種為聯機作業方式,另一種為離線作業方式。聯機作業方式是通過直接輸入作業控制命令來提交和執行使用者作業。離線作業方式是通過作業控制語言***JCL,也稱為作業控制命令***編寫使用者作業說明書。在這種方式中,使用者不直接干預作業的執行,而是把作業與作業說明書一起交給系統***稱為提交***。
作業排程主要是從後備狀態的作業中挑選一個***或一些***作業投入執行。根據不同的排程目標,有不同的演算法。作業排程演算法有許多種,它們與程序排程相似,有的適宜於單道系統,有的適宜於多道系統。它們是先來先服務***FCFS***、短作業優先***SJF***、響應比***HRN***高者優先和成先級排程等。
1.7 其他管理
***1***死鎖問題
如果一個程序正在等待一個不可能發生的事件,則稱該程序處於死鎖狀態。系統發生死鎖是指一個或多個程序處於死鎖狀態。產生死鎖的主要原因是共享的系統資源不足,資源分配策略和程序的推進順序不當。系統資源既可能是可重用的永久性資源,也可能是消耗性的臨時資源。處於死鎖狀態的程序不能繼續執行又佔有了系統資源,阻礙其他程序的執行。對待死鎖的策略
主要有:
①死鎖的預防。不讓任一產生死鎖的必要條件發生就可以預防死鎖。
②死鎖的避免。這種策略不對使用者程序的推進順序加以限制,在程序申請資源時先判斷這次分配安全否,只有安全實施分配,典型的演算法是銀行家演算法。
③死鎖的檢測。這種策略採用資源請求分配圖的化簡方法來判斷是否發生了不安全狀態。資源請求分配圖是一種有向圖,表示程序與資源之間的關係。死鎖的檢測是在需要的時刻執行的,當發現系統處於不安全狀態時,即執行死鎖的解除策略。
④死鎖的解除。解除死鎖的基本方法是剝奪。一種方法是把資源從一些程序處剝奪分給別的程序,被剝奪資源的程序則需回退到請***處重新等待執行;另一種主法是終止一個程序,剝奪其全部資源,以後再重新執行被終止的程序。
***2***多重處理器系統與執行緒
多重處理系統的主要目標是為了提高系統的處理能力,也是為了提高系統的可靠性。多重處理系統的作業系統除了具有單處理器作業系統的功能以外,還應提供處理器的負載平衡、處理器發生故障後的結構重組等功能。一般多重處理系統的作業系統可以分為主從式、分離執行式和移動執行式3類。
對稱多處理器系統SMP是由若干同構甚至相同的處理器構成的一個系統。Solaris和Windows NT等作業系統支援SMP系統。作業系統提供了執行緒***Thread***機制以發揮多個處理器的作用。在多執行緒系統中,一個程序可以由一個或多個執行緒構成。程序是資源分配的基本單位,也是被保護的基本單位。一個程序對應於一個儲存程序映象的虛地址空間,每一執行緒可以獨立執行一個程序的執行緒共享這個程序的地址空間。有多種方法可以實現多執行緒系統,一種方法是核心級執行緒,另一種方法是使用者級執行緒,也可以把兩者組合起來。
1.8 作業系統的結構
***1***無序結構法,又稱整體結構或模組組合結構。它以大型表格和佇列為中心,作業系統的各部分程式圍繞著表格執行,整個系統是一個程式。這種作業系統常稱為面向過程的作業系統。
***2***層次結構法是把一個大型複雜的作業系統分解成若干個單向依賴的層次,由多層的正確性保證作業系統的可靠性。層次結構清晰,且有利於系統功能的增加或刪改。
***3***面向物件的作業系統基於面向物件程式設計的概念,採用了各種不同的物件技術。在計算機系統中物件是作業系統管理的資訊和資源的抽象,是一種抽象的資料型別。可以把物件作為系統中的最小單位,由物件、物件操作、物件保護組成的作業系統,就是面向物件的作業系統。如Windows NT中有執行體物件***程序、執行緒、檔案和令牌等***和核心物件***時鐘、事件和訊號等***。
***4***微核心結構法把系統的公共部分抽象出來,形成一個底層核心,提供最基本的服務,其他功能以伺服器形式建立在微核心之上。它具有良好的模組化和結構化特徵,模組之間和上
下層之間通過訊息來通訊。建立在微核心上的伺服器可以根據不同的需要構造,從而形成不同的作業系統,如Windows NT作業系統。
1.9 常用作業系統
UNIX系統是一個分時作業系統。它利用最內層硬體提供的基本服務,向外層提供全部應用程式所需要的服務。應用程式組可以構成應用子系統,如UNIX系統的原始碼控制系統***SCCS***、圖形***X-Window、Motif***等。
Windows NT系統是20世紀90年代的作業系統技術,適用於高檔工作站平臺、區域網伺服器或者主幹計算機。Windows NT支援對稱處理器結構,支援多執行緒並行,採用90年代作業系統技術***即微核心技術***,在體系結構上採用客戶機/伺服器模式。