- 第一章
- 操作系統的定義
用來控制和管理計算機系統資源,方便用戶使用的程序和數據結構的集合。 - 操作系統的特徵
- 併發性
- 併發
併發是指在某一時間間隔內計算機系統中運行着多個程序 - 並行
並行是指在同一時刻計算機內有多個程序都在運行,這隻有在多CPU系統中才能實現。
- 併發
- 共享性
共享是指多個用戶或程序共享系統的軟、硬件資源。- 互斥共享
例如打印機 - 同時共享
例如磁盤
- 互斥共享
- 異步性
也叫隨機性,指在多道程序環境中,由於資源有限而程序衆多,進程的執行不是一下完成的,而是走走停停的。 - 虛擬性
虛擬性指用戶感覺到的,但是並不真實存在的操作系統向用戶提供了比直接使用裸機簡單方便的高級服務,從而對程序員隱藏了對硬件操作的複雜性,相當於在原先的物理計算機上覆蓋了一至多層系統軟件,將其改造成一臺功能更強大而且易於使用的擴展機或虛擬機。
- 併發性
- 操作系統的功能
- 處理機管理
處理機管理也可以認爲就是進程管理和作業管理- 進程控制
- 進程同步
- 進程通信
- 調度
- 存儲管理
主要是管理內存資源- 內存的分配與回收
- 存儲保護和共享
- 地址轉換
- 內存擴充
- 設備管理
設備是指除了CPU和內存以外的所有輸入、輸出設備- 緩衝管理
- 設備分配
- 設備處理
- 設備獨立性和虛擬設備
- 文件管理
系統中的信息資源都是以文件的形式存放在外存儲器上,需要的時候再把它們裝入到內存中。- 提供文件的組織方法
- 提供文件的存取和使用方法
- 實現文件存儲空間的管理
- 實現文件存儲空間的管理
- 實現文件的目錄管理
- 實現文件的共享和安全性控制
- 網絡與通信管理
- 網上資源管理
- 數據通信管理
- 網絡管理
- 用戶接口
- 操作接口
又稱爲作業級接口,是操作系統爲操作控制計算機工作並提供服務的手段的集合,通常可藉助操作控制命令、圖形操作界面和作業控制語言來實現 - 系統調用
就是用戶在程序中調用操作系統所提供的一些子功能,是一種特殊的過程調用,通常由特殊的機器指令實現。- 進程控制類
- 進程通信類
- 設備管理類
- 文件操作類
- 信息維護類
- 操作接口
- 處理機管理
- 操作系統的分類
- 批處理系統
- 分時系統
工作方式是一臺主機連接了多個終端,每個終端有一個用戶在使用 - 實時系統
指使計算機能及時響應外部事件的請求,在嚴格規定的時間內完成對該事件的處理,並控制所有實時設備和實時任務協調一致地工作的操作系統。 - 微機操作系統
- 網絡操作系統
- 分佈式操作系統
- 嵌入式操作系統
- 智能卡操作系統
- 操作系統的定義
- 第二章
- 進程的定義
- 是程序的一次執行
- 計算機中正在運行的程序的一個實列
- 可以分配給處理機並由處理機執行的一個實體
- 是一個可併發執行的具有獨立功能的程序,也是操作系統進行資源分配和保護的基本單位
- 狀態轉換
- 三狀態模型
- 五狀態模型
- 進程的描述
- 進程控制塊PCB
是系統爲描述進程而設計的一種數據結構,一個進程只有一個PCB,PCB是進程存在與否的唯一標記,一個進程的PCB結構都是全部或部分常駐在內存中的- 標識信息
- 現場信息
- 控制信息
- 有關程序段
描述進程所要完成的功能 - 與該程序段相關的數據結構集合
- 進程控制塊PCB
- 進程的控制
指系統使用一些就有特定功能的程序段來創建進程、撤銷進程以及完成進程各狀態間的轉換。 - 臨界區和臨界資源
- 臨界資源
一次只能允許一個進程訪問的共享資源稱爲臨界資源 - 臨界區
每次進程訪問臨界資源的那段程序稱爲臨界區,簡稱(CS區)。 - 使用準則
- 一次至多隻允許一個進程進入臨界區
- 不能讓一個進程無限期地在臨界區內執行
- 不能強迫一個進程無限期地在臨界區內執行
- 不能強迫一個進程無限地等待進入它的臨界區
- 不能假定處理機的速度和限制處理機的數量,也即公平競爭
- 臨界資源
- 信號量機制
信號量是一種控制進程互斥和同步的變量- 分類
- 按照用途
- 私有信號量
- 公有信號量
- 按照取值
- 二元信號量
- 一般信號量
- 按照用途
- 整型信號量
S爲一個整型變量,除初始化外,僅能通過P、V原語來訪問它 - 記錄型信號量
S爲一個記錄型數據結構,其中一個分量爲整型量value,另一個分量爲信號量隊列queue,value通常是一個具有非負初值的整型變量,queue是一個初始狀態爲空的進程隊列。 - 二元信號量
S爲一個記錄型數據結構,其中一個分量爲整型量value,它僅能取值0和1,另一個分量爲信號量隊列queue。 這時信號量上的P、V操作通常記爲BP和BV操作。
- 分類
- 死鎖
- 定義
系統中存在一組併發進程(兩個或多個進程),它們中的每一個進程都佔用了某種資源而又都在等待該組進程中另一些進程所佔用的資源,從而使該組進程都停止往前推進而陷入永久的等待狀態 - 原因
- 系統資源不足
- 進程推進的順序不合理
- 必要條件
- 互斥條件
- 申請與保持條件
- 不剝奪條件
- 循環等待條件
- 預防方法
- 預先靜態分配策略
指進程必須在開始執行前就申請它所需要的全部資源,僅當系統能滿足進程的所有資源請求並把資源分配給進程後,該進程才能執行。 - 層次分配策略
將系統中的所有資源分成多個層次,每個層次給出一個編號:L1,L2,…,Ln,每一層中可有幾類資源。進程在申請資源時,當得到某一層的一個資源後,它只能再申請較高一層的資源,或者它要想再申請該層中的另一個資源時,必須先釋放該層中已擁有的資源;進程要釋放資源時,如果要釋放某一層的一個資源,必須先釋放所擁有的較高層的所有資源。 - 剝奪式分配策略
可阻止產生死鎖的第三個必要條件的出現,指當一個進程申請資源得不到滿足時,可以從另一個佔有該類資源的進程那裏去搶奪資源
- 預先靜態分配策略
- 死鎖的檢測
最常用的檢測死鎖的方法是對進程資源分配圖(PRAG)進行化簡。 死鎖定理當且僅當系統某狀態S所對應的資源分配圖是不可完全化簡的,則稱S是死鎖狀態,而不可化簡的那些進程即是死鎖進程。反之,若狀態S對應的資源分配圖是可完全化簡的,則狀態S是安全的。 - 死鎖的恢復
- 撤銷進程法
- 剝奪資源法
- 進程回退法
- 銀行家算法
進程Pi發出對第j類資源的請求(Requestij)時,系統將執行如下的資源分配算法:①申請量超過最大需求時出錯,即Requestij+aij>cij;否則轉步驟②;②申請量超過目前系統擁有的可分配量時則阻塞該進程,即RequestijVj,否則轉步驟③;③系統對進程Pi發出的資源請求做試探性的分配,相應的數據結構修改如下,然後轉步驟④; aij=aij+Requestij; vj= vj-Requestij; ④做安全性檢查,如果安全則承認試分配,否則撤銷試分配,相應的數據結構作如下的修改,同時阻塞進程Pi。 aij=aij-Requestij; vj= vj+Requestij;
- 定義
- 互斥
- 同步
- 進程的定義
- 第三章
- 處理機調度定義
處理機調度(CPU scheduling)是指CPU資源在可運行實體間的分配。在多道程序系統中,通常會有多個進程或線程同時競爭CPU。如果只有一個CPU可用,就必須選擇下一個可用的進程或線程。在操作系統中,完成選擇工作的這一部分稱爲調度程序(scheduling),該程序使用的算法稱爲調度算法(scheduling algorithm)。 - 調度的三級層次
- 低級調度
- 中級調度
- 高級調度
- 作業調度
作業(Job)是用戶提交給操作系統計算的一個獨立任務。在批處理系統中,作業進入系統後先駐留在外存上,因此,需要由作業調度來將它們分批地裝入內存。因此作業調度是適用於批處理系統的一種調度方式。- 先來先服務算法(FCFS)
- 最短作業優先算法(SJF)
- 最高響應比優先算法(HRF)
- 進程調度
進程調度是任何一種操作系統都必須具有的功能,它在很大程度上決定了系統的性能。因此,如何把處理機有效地分配給進程、如何在多個請求進程中選擇某個進程運行,都是進程調度需要解決的問題。- 先來先服務算法(FCFC)
FCFS算法就是每次從就緒隊列中選擇一個最先進入該隊列的進程調度,把CPU分給它,令其投入運行。該進程一直運行下去,直至完成或者由於某些原因而被阻塞才放棄CPU。這樣,當一個進程就緒隊列時,它的PCB就鏈入就緒隊列的末尾。每次進程調度時就把隊頭進程從該隊列中摘下,分給它CPU,使它運行。 - 時間片輪轉算法(TRR)
主要用於分時系統中的進程調度。每當執行進程調度時,調度程序總是選出就緒隊列的隊首進程,讓它在CPU上運行一個時間片的時間。時間片是一個小的時間單位,通常爲10至100ms數量級。
- 先來先服務算法(FCFC)
- 處理機調度定義
- 第四章
- 物理地址
計算機主存中每個存儲單元都有一個編號與之對應,這些編號稱爲物理地址(絕對地址)。 - 邏輯地址
通常用戶程序是用高級語言編寫的,並以二進制的形式保存在計算機的輔存中,稱爲源程序,源程序經過編譯得到計算機能理解的目標程序,目標程序中的地址稱爲邏輯地址(相對地址) - 地址轉換
將用戶程序中的指令或數據的邏輯地址轉換爲存儲空間中物理地址的工作稱爲地址轉換或重定位。- 靜態重定位
在裝入用戶程序時,把程序中的邏輯地址全部轉換成物理地址。 - 動態重定位
裝入時沒有地址變換,在程序執行過程中,當CPU要訪問指令或數據時,先由硬件的地址轉換機構將邏輯地址轉換成物理地址。
- 靜態重定位
- 可變分區存儲管理分配策略
系統初啓後,在內存中除常駐操作系統,其餘空間爲一個完整的大空閒區。當有進程申請分配內存空間時,系統從該空閒區中劃分出一塊與進程大小相同的區域進行分配。- 最先適應算法 FF
每次分配時,總是從頭開始按順序查找空閒分區,將最先找到的滿足條件的空閒分區分配給用戶。這時找到的第一個滿足要求的空閒分區的大小,不一定正好等於用戶進程的大小。然後,將空間分爲兩部分,一個是分配給進程的,大小正好等於用戶進程的大小;剩餘部分是空閒分區,等待下一次的分配申請。 - 下次適應算法NF
每次爲用戶進程分配空閒分區時,總是從上次查找結束的地方開始,只要找到一個足夠大的空閒分區,就從中分割出一塊等於進程大小的內存空間把它分配給用戶,另一塊留作空閒分區。這種算法可以使內存空間中的空閒分區分佈比較均勻,減少查找的開銷,但也使空間中的大空閒分區減少 - 最佳適應算法BF
“最佳”的含義是指找到滿足條件且長度最小的空閒分區,即該算法每次都將進程分配到內存中與它所需大小最接近的一個空閒分區中。爲了實現這種算法要將空閒分區按由小到大的順序排列,每次查找都從頭開始,第一次找到的分區就是“最佳”的。 - 最壞適應算法
與最佳適應算法相反,該算法要求將空閒分區按由大到小的順序排列,當有進程提出申請時,就查看空閒分區表或空閒分區鏈中的第一個單元,也就是所有空閒分區中長度最大的空間。如果滿足進程的要求,就將其分配給提出申請的進程;否則分配失敗。因此這種分配算法的查找效率最高。
- 最先適應算法 FF
- 分頁存儲器管理的基本原理
- 分段存儲器管理的基本原理
- 虛擬存儲器
- 基本思想
僅把目前需要的部分程序加載到內存,其餘暫時不用的程序及數據還保留在輔存中。在進程運行過程中,如果所要執行的程序不在內存,系統將要執行的程序段自動調入內存。此時如果內存已滿,則要通過置換操作將暫時不用的程序段先調出到輔存,然後將所需的程序段調入內存,繼續執行該進程。 虛擬存儲器的引入,實際上是利用了存儲管理中邏輯地址空間和物理地址空間的關係,將計算機的內存和輔存結合起來,使得用戶感覺具有大容量的內存,但在物理上並沒有真正增加內存容量。
- 基本思想
- 物理地址
- 第五章
- 設備分類
- 按照信息交換的單位分類
- 字符設備
以字符爲單位與內存進行信息交換鍵盤、鼠標 - 塊設備
以塊爲單位與內存進行信息交換磁盤
- 字符設備
- 按照輸入輸出特性分類
- 輸入輸出設備
將信息輸送給計算機或者將計算機處理或加工好的信息輸出 - 存儲設備
爲順序存取存儲設備和直接存取存儲設備 - 通信設備
集輸入和輸出爲一體的設備,將信號傳輸到另一個地方
- 輸入輸出設備
- 按照所屬關係分類
- 系統設備
- 用戶設備
- 按照資源分配方式分類
- 獨佔設備
在一段時間內只允許一個進程使用 - 共享設備
在一段時間內允許多個進程同時訪問 - 虛擬設備
指通過虛擬技術,將一臺獨佔設備變換爲共享設備供多個進程同時使用
- 獨佔設備
- 按照傳輸速率分類
- 高速設備
- 中速設備
- 低速設備
- 按照信息交換的單位分類
- 設備控制器
設備由兩大部分組成:物理設備和電子部件,爲了達到設計的模塊性和通用性,一般將其分開。電子部件稱爲設備控制器(DeviceController)或適配器(Adapter),是和計算機系統直接聯繫的電子部件,在個人計算機中,它常常是一塊可以插入主板擴充槽的印刷電路板。- 功能
- 接收和識別CPU或通道發來的命令
- 實現數據交換
- 發現和記錄設備及自身的狀態信息
- 設備地址識別
- 數據緩衝
- 差錯控制
- 功能
- IO控制方式
- 程序直接控制IO方式
又稱程序查詢方式,輸入輸出完全由CPU控制,輸入輸出指令或查詢指令測試一臺設備的忙閒標誌位,每傳送一個字節或一個字,CPU都要循環地執行狀態檢查 - 中斷驅動方式
外圍設備有了反映其狀態的能力,僅當I/O操作正常或異常結束後,由設備控制器“自動地”通知設備驅動程序,這時才中斷CPU,實現了一定程度的並行操作,這就叫中斷驅動方式 - 直接存儲器存取方式 DMA
I/O設備能直接與主存交換數據而不佔用CPU具有DMA控制器的計算機系統。 - 通道方式
- 程序直接控制IO方式
- 緩衝
- 原因
- 改善CPU與外圍設備之間速度不匹配的矛盾
- 減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制
- 提高CPU和I/O設備的並行性
- 分類
- 設備自身帶的緩衝稱硬緩衝
- 由操作系統管理的在內存中的緩衝稱軟緩衝
- 原因
- 設備分類程序
- 分配設備
查找邏輯設備表LUTà系統設備表SDTà設備控制表DCT如果所有該類設備都忙,便將進程堵塞否則計算安全性,如果不會導致不安全,則分配 - 分配控制器
設備控制表DCTà控制器控制表COCT - 分配通道
控制器控制表COCTà通道控制表CHCT
- 分配設備
- 磁盤管理
- 磁盤工作原理
- 磁盤調度算法
- 先來先服務調度(FCFS)
- 最短尋道時間優先調度(SSTF)
- Ø掃描算法(SCAN)
- Ø尋查算法(Look)
- Ø循環掃描算法(C-SCAN)
- Ø循環尋查算法(C-Look)
- 設備分類
- 第六章
- 文件
文件是具有名字且在邏輯上具有完整意義的信息項的有序序列 - 記錄
是一組相關數據項的集合,用於描述一個對象某方面的屬性.一個記錄通常包含哪些數據項,取決於需要描述對象的哪個方面. - 邏輯結構
指文件的外部組織形式,是用戶所看到的文件的組織形式- 流式
- 記錄式
- 物理結構
指文件的內部組織形式,是文件在物理存儲設備上的存儲形式,所以又稱文件的存儲結構- 順序結構
- 鏈接結構
- 索引結構
- 常用的目錄結構
- 一級目錄
- 二級目錄
- 樹形目錄
- 無環圖目錄
- 通用圖目錄
- 文件的安全控制方法
- 限定訪問權限
- 限定訪問組
- 輔存空間的管理的方法
- 連續分配
- 鏈接分配
- 索引分配
- 文件