作業系統【概述篇】
秋招復習專用,純屬個人整理重點筆記。如果你在看,希望也對你有所幫助。所有筆試都是來自《計算機作業系統》湯小丹的第四版,如果想深入瞭解fdsjfk,請閱讀原書。
因為本文主要是面向秋招,所以針對秋招高頻會重點標記(標⭐)並會多整理一些,其他一些知識會稍微補充一下,不會重點介紹。
作業系統的目標與作用
基本概念
作業系統是指控制和管理整個計算機系統的硬體和軟體資源,併合理地組織排程計算機的工作和資源的分配,以提供給使用者和其他軟體方便的介面和環境的程式集合。
作業系統的目標
不同的作業系統,其目標的側重點不相同。不過一般來說,可以分為以下幾點
(1)有效性。
- 提高系統資源利用率。
- 提高系統的吞吐量。
(2)方便性。因為配置了作業系統的可以使我們的計算機更容易被使用。
(3)可擴充性。方便增加新的功能和模組,並能修改老的功能和模組。
(4)開放性。開放性是指系統能遵循世界標準規範,特別是遵循開放系統互連(OSI)國際標準。
作業系統的作用
(1)OS作為使用者與計算機硬體系統之間的介面。常用的三種使用方式如下:
- 命令方式
- 系統呼叫方式
- 圖形、視窗方式。
(2)OS作為計算機系統資源的管理者。
- 處理機管理。用於分配和控制處理機
- 儲存器管理。主要負責記憶體的分配和回收
- I/O裝置管理。負責I/O裝置的分配和操縱
- 檔案管理。負責檔案的存取、共享和保護
(3)OS實現了對計算機資源的抽象。對使用者提供了一個對硬體操作的抽象模型,隱藏了那些不友好的互動操作。(使用者只需要這些IO操作命令它來進行資料輸入或輸出,而無需關心 I/O 是如何實現的)
作業系統的發展動力
(1)不斷提高計算機資源的利用率。
(2)方便使用者。
(3)器件的不斷更新換代。
(4)計算機體系結構的不斷髮展。
作業系統的發展過程
手工操作階段
(1)人工操作方式
程式設計師將對應於程式和資料的已穿孔的紙帶(或卡片)裝入輸入機,然後啟動輸入機把程式和資料輸入計算機記憶體。
缺點:
- 使用者獨佔全機。計算機及其全部資源只能由上機使用者獨佔。
- CPU等待人工操作。大大降低了計算機資源的利用率(當用戶進行裝帶(卡)、卸帶(卡)等人工操作時,CPU 及記憶體等資源是空閒的。)。
(2)離線輸入/輸出方式
目的是為了解決人機矛盾及CPU和I/O裝置之間速度不匹配的矛盾。主要是利用機器來解決人工操作慢的過程。
優點:
- 減少了CPU的空閒時間。
- 提高了IO速度。
單道批處理系統
單道批處理系統主要是把一批作業以離線方式輸入到磁帶上,並在系統中配上監督程式,在它的控制下使這這批作業能一個接一個地連續處理。
特徵
(1)自動性。在磁帶上的作業自動地逐個地依次執行,而無需人工干預。
(2)順序性。磁帶上的各道作業是順序進入記憶體中。
(3)單道性。記憶體中僅有一道程式執行,即監督程式每次從磁帶上只調入一道程式進入記憶體執行。
優缺點
優點:引入批處理一定程度緩解了人機速度矛盾。
缺點:記憶體僅有一道作業執行,執行結束才調入下一道程式,CPU大量時間在等待IO完成,資源利用率依然很低。
多道批處理系統
概念
所謂多道批處理就是將使用者所提交的作業都優先存放的外存上並排成一個佇列(“後備佇列”),然後由作業排程程式按一定的演算法從後備佇列中選擇若干個作業調入記憶體,使它們共享CPU和系統中的各種資源。
引入的好處
(1)提高CPU的利用率。
(2)可提高記憶體和I/O裝置利用率。
(3)增加系統吞吐量。
優缺點
優點:1、資源利用率高;2、系統吞吐量大。
缺點:1、平均週轉時間長;2、無互動能力。
需要解決的問題
(1)處理機管理問題;(2)記憶體管理問題;(3)I/O裝置管理問題;(4)檔案管理問題;(5)作業管理問題。
分時系統
分時系統是指在一臺主機上連線了多個帶有顯示器和鍵盤的終端,同時允許多個使用者通過自己的終端,以互動方式(時間片輪轉)使用計算機,共享主機中的資源。
特徵
(1)多路性。巨集觀上,是多個使用者同時工作,共享系統資源;而微觀上,則是每個使用者作業輪流執行一個時間片。多路性即同時性,它提高了資源利用率,降低了使用費用,從而促進了計算機更廣泛的應用。
(2)獨立性。每個使用者各佔一個終端,彼此獨立操作,互不干擾。
(3)及時性。使用者可以在很短的時間內獲得響應。
(4)互動性。使用者可以請求系統提供多方面的服務,如檔案編輯,資料處理和資源共享等。
缺點:因為不能實時處理一些資訊引入實時系統。
實時系統
實時系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有實時任務協調一致地執行。
實時與分時的特徵比較
(1)多路性。實時控制系統的多路性則主要表現在系統週期性地對多路現場資訊進行採集,以及對多個物件或多個執行機構進行控制。
(2)獨立性。實時控制系統中,對資訊的採集和對物件的控制也都是彼此互不干擾。
(3)及時性。等待的時間都是 人所能接收的。
(4)互動性。實時系統的互動僅限於訪問系統中某些特定的專用服務程式。
(5)可靠性。要求系統具有高度的可靠性,採取了多級容錯措施來保障系統的安全性以及資料的安全性。
其他系統
網路作業系統
各臺計算機結合實現網路中各種資源共享通訊
分散式作業系統
通訊交換資料、同等低位、資源共享、構成子系統、任務可分佈在多個計算機並行工作協同完成。
特徵:(1)分佈性;(2)並行性。
作業系統的基本特性⭐
併發性
並行與併發
我們一定要切記不要搞混了併發與並行這兩個不同的概念:並行性市值兩個或多個事件在同一時刻發生;而併發性是指兩個或多個事件在同一時間間隔內發生。
(1)並行需要硬體支援,如多流水線、多核處理器或者分散式計算系統。
(2)而併發則是作業系統通過引入程序和執行緒才能去實現的。程序是指在作業系統中能獨立執行並作為資源分配的基本單位。而執行緒則是獨立執行和獨立排程的基本單位。
共享性
所謂共享是指系統中的資源可供記憶體中多個併發執行的程序或者執行緒共同使用。而把這種資源共同使用則稱為資源共享或者資源複用。
目前主要實現資源共享的方式有如下兩種。
(1)互斥共享方式
一般來說,我們把一個程序訪問完並釋放該資源後,才允許另一程序對該資源進行訪問的這種資源共享方式稱為互斥式共享。而把在一段時間內只允許一個程序訪問的資源稱為臨界資源或獨佔資源。
(2)同時訪問方式
作業系統還有另一類資源可以由多個程序同時對它們進行訪問。這裡的同時指的是交替地對該資源進行訪問。典型的資源就是我們的“磁碟裝置”。
併發和共享是作業系統的兩個最基本的特徵,它們又是互為存在的條件。
虛擬技術
所謂的虛擬技術就是指通過某種技術把一個物理實體變為若干個邏輯上的對應物。在作業系統上利用了兩種方式實現虛擬技術,即時分複用技術和空分複用技術。
時分複用技術
多個程序能在同一個處理器上併發執行使用了時分複用技術,讓每個程序輪流佔用處理器,每次只執行一小個時間片並快速切換。
空分複用技術
虛擬記憶體使用了空分複用技術,它將實體記憶體抽象為地址空間,每個程序都有各自的地址空間。地址空間的頁被對映到實體記憶體,地址空間的頁並不需要全部在實體記憶體中,當使用到一個沒有在實體記憶體的頁時,執行頁面置換演算法,將該頁置換到記憶體中。(同樣的還有虛擬磁碟和虛擬儲存器技術)
非同步性
多個程式併發執行,資源有限,執行不是一貫到底,而是走走停停(爭搶到資源和CPU才執行)
作業系統的主要功能⭐
處理機管理功能
處理機管理的主要功能是建立和撤銷程序(執行緒),對諸程序(執行緒)的執行進行協調,實現程序(執行緒)之間的資訊交換,以及按照一定的演算法把處理機分配給程序(執行緒)。具體的功能如下:
(1)程序控制。主要是為了作業建立程序,撤銷已經結束的程序,以及控制程序在執行過程中的狀態轉換。現在還多了一個為程序建立多個執行緒和撤銷已經完成任務的執行緒的功能。
(2)程序同步。程序同步的主要任務是為多個程序(包括執行緒)的執行進行協調。主要包括兩種方式:程序互斥方式和程序同步方式。具體在後面篇幅會具體整理到相關知識點。
(3)程序通訊。主要任務就是用來實現在相互合作的程序之間的資訊交換。
(4)排程。主要分為作業排程和程序排程。作業排程的基本任務是從後備佇列中按照一定的演算法,選擇出若干個作業,為它們分配執行所需的資源(首先是分配記憶體)。程序排程的任務是從程序的就緒佇列中,按照一定的演算法選出一個程序,把處理機分配給它,併為它設定執行現場,使程序投入執行。
儲存器管理功能
儲器管理的主要任務是為多道程式的執行提供良好的環境,方便使用者使用儲存器,提高儲存器的利用率以及能從邏輯上擴充記憶體。儲存器管理應具有記憶體分配、記憶體保護、地址對映和記憶體擴充等功能。
(1)記憶體分配。記憶體分配主要就是為每道程式分配記憶體空間,提高儲存器的利用率。同時也允許動態增加記憶體的需求(允許正在執行的程式申請附加的記憶體空間)。為了實現記憶體分配,在機制中應具有這樣的結構的功能:1、記憶體分配資料結構;2、記憶體分配功能;3、記憶體回收功能。
(2)記憶體保護。記憶體保護的主要任務是確保每道使用者程式都只在自己的記憶體空間內執行,彼此互不干擾。一個簡單的的記憶體保護機制就是設定兩個界限暫存器。
(3)地址對映。儲存器管理必須提供地址對映功能,以將地址空間中的邏輯地址轉換為記憶體空間中與之對應的實體地址。
(4)記憶體擴充。從邏輯上去擴充記憶體容量,讓使用者感受到的記憶體容量比實際記憶體容量大得多。系統必須具有記憶體擴充機制,用於實現請求調入功能和置換功能。
裝置管理功能
完成使用者的 I/O 請求,方便使用者使用各種裝置,並提高裝置的利用率。主要包括緩衝管理、裝置分配、裝置處理、虛擬裝置等。
檔案管理功能
檔案管理的主要任務是對使用者檔案和系統檔案進行管理,以方便使用者使用,並保證檔案的安全性。為此,檔案管理應具有對檔案儲存空間的管理、目錄管理、檔案的讀/寫管理,以及檔案的共享與保護等功能。
系統與使用者的介面
(1) 使用者介面。它是提供給使用者使用的介面,使用者可通過該介面取得作業系統的服務。
(2) 程式介面。它是提供給程式設計師在程式設計時使用的介面,是使用者程式取得作業系統服務
的惟一途徑。
作業系統的體系結構⭐
大核心: 大核心是將作業系統主要功能模組都作為一個緊密結合的整體執行在核心態,具有很高的效能。
微核心: 由於作業系統不斷複雜,因此將一部分作業系統功能移出核心,從而降低核心的複雜性。移出的部分根據分層的原則劃分成若干服務,相互獨立。在微核心結構下,作業系統被劃分成小的、定義良好的模組,只有微核心這一個模組執行在核心態,其餘模組執行在使用者態。因為需要頻繁地在使用者態和核心態之間進行切換,所以會有一定的效能損失。
參考資料
《計算機作業系統》—— 湯小丹