第一章:
操作系統:位于硬件層之上,所有軟件層之下的一個系統軟件,是管理系統中各種軟硬件資源,方便用戶使用計算機系統的程序集合
并發:宏觀上是同時發生,但是再微觀是交替發生的(若干事件在同一時間間隔內發生,單CPU)
并行:微觀上同時發生(要求多個CPU)
共享:系統的資源可以提供內存中多個并發執行的程序共同使用
虛擬:把一個物理上實體變為若干個邏輯上的對應物.物理是指實際的存在,邏輯是用戶的感受.
異步:多個進程并不是一次運行到底的,而是一會執行這個,然后中斷去處理另外一個,然后再回來執行
OS的四大特征:并發,共享,虛擬,異步
核心是那兩個特征:并發,共享
多道批處理操作系統:系統中同時容納多個作業,作業分批進入系統,通過主機中作業合理搭配來提高資源利用率好吞吐量
分時操作系統:提供了交互式命令語言和圖形用戶界面兩個界面,以對話的形式,實現一個主機和多個終端連接,讓每一個終端用戶仿佛擁有一臺虛擬機
實時操作系統:為了實現實時控制與實時信息處理,時效性更高,可靠性高的操作系統
通用操作系統:同時具有:分時、實時、批處理功能,提高了處理能力和應用領域
絕對時鐘:記錄實際時間,不發中斷
間隔時鐘:定時發生中斷,一般間隔單位為“毫秒(多道程序的基礎,保證進入操作系統,不保證發生,實現邏輯時鐘)
系統棧:每個進程一個,位于操作系統區域(管態),用來保存中斷現場(PSW,PC,通用寄存器的值)和函數返回點,參數,局部變量,返回值
特權指令:只有在管態才能執行的指令 ?
特權指令:所有程序可用
地址映射:將邏輯地址轉換為物理地址
第二章:
進程:可參與并發執行的程序稱為進程.它是具有一定獨立功能的程序關于一個數據集合的一次運行活動,強調動態和并發兩 個方面
進程狀態:
-運行態:占有CPU,向前推進
-就緒態:可以運行,但沒獲得CPU
-等待態:等待某一事件的發生
進程的組成:進程控制塊(進程的控制,描述,資源信息) + 程序(代碼段+數據結構集)
PCB:標志進程存在的數據結構,其中保存系統管理進程所需的全部信息 (類比之后的FCB等)
進程上下文:進程的物理實體與支持進程運行的物理環境統稱為進程上下文(PCB+程序+系統環境)
系統開銷:運行操作系統程序->完成系統管理工作 所花費的時間和空間
進程的特性:
-并發:可以與其它進程一道向前推進
-動態:動態產生、消亡,生存期內狀態動態變化
-獨立:一個進程是可以調度的基本單位
-異步:進程以各自獨立,不可預知的速度向前推進
-交往:同時運行的進程可能發生相互作用
-結構:每個進程有一個PCB
進程創建:建立PCB,分配內存,加載程序,入就緒鏈
進程撤銷:去配資源,撤銷PCB,通知父進程
進程和程序:
-聯系:
--進程包括一個程序
--進程存在的目的就是執行這個程序
-區別:
--程序靜態,進程動態
--程序可長期保存,進程有生存期
--一個程序可對應多個進程,一個進程只能執行一個程序
線程:進程中一個相對獨立的執行流
進程和線程:
-進程是資源分配單位
-線程是執行單位
進程的優點
-切換速度快
-系統開銷小
-通訊容易
TCB:標志線程存在的數據結構,其中包含對線程管理需要的全部信息
用戶級別線程:
-基于library函數,系統不可見
-線程創建、撤銷、狀態轉換在目態完成
-TCB在用戶空間,每個進程一個系統棧
-進程的狀態復雜
-優點:
--不依賴于操作系統,調度靈活
--同一進程中多線程切換速度快
-缺點
--同一進程中多個線程不能真正并行
--一個線程進入系統受阻,進程中其它線程不能執行
核心級別線程:
-基于系統調用
-創建、撤銷、狀態轉換由操作系統完成
-線程是CPU調度的基本單位,進程狀態無意義
-優點:
--同一進程內多線程可以并行執行
--一線程進入核心等待,其它線程仍可執行
-缺點:
--系統開銷大,同一進程內多線程切換速度慢
--控制由系統實現,調度算法不能靈活控制
作業:用戶要求計算機系統為其完成的計算任務集合
作業步:作業處理過程中一個相對獨立的步驟(一般一個作業步可由一個進程完成,某些作業步之間可以并行)
JCB:標識作業存在的數據結構,其中包含系統對作業進行管理所需要的全部信息
JCL:描述批處理作業控制意圖的語言
作業與進程:作業進入內存后變為進程,一個作業通常與多個進程相對應
進程與線程:一個進程一般包含多個線程,至少一個,不支持多線程的系統,可視為單線程進程
第三章:
中斷:在程序運行過程中出現某緊急事件,必須中止當前正在運行的程序,轉去處理這個事件,然后再恢復原來運行的程序,這一過程稱為中斷。
中斷系統:分為中斷裝置(硬)和中斷處理程序(軟)
-中斷裝置:發現并響應中斷的硬件機構 ?,處理過程:First識別中斷源,當有多個中斷源時,按緊迫程度排隊; Second:保存現場; Third引出中斷處理程序。
--中斷源:引起中斷的事件
--中斷寄存器:保存與中斷事件相關信息的寄存器
--中斷字:中斷寄存器的內容
--中斷向量:中斷處理程序的運行環境與入口地址(PSW,PC)
--中斷嵌套:系統在處理一個中斷事件的過程中又響應了新的中斷,稱系統發生了中斷嵌套
--中斷優先級:根據引起中斷的事件的重要性和緊迫程度,硬件將中斷源分成若干個級別(依據:緊迫程度+處理時間)
--關中斷:盡管產生了中斷源且發出了中斷請求,但CPU內部的PSW中的中斷允許位被清除,此時不允許CPU響應任何中斷,此現象為關中斷。
--中斷屏蔽:暫時禁止一個或多個中斷源向處理機發出中斷請求,屏蔽所有中斷源就是關中斷
系統棧:每個進程一個,位于操作系統區域(管態),用來保存中斷現場(PSW,PC,通用寄存器的值)和函數返回點,參數,局部變量,返回值
作業調度:高級調度或長程調度,其職能是將一個作業由外存輸入井調入內存,并為其建立相應的進程,使其具有占據處理機運行的資格
剝奪式調度:就緒進程可以從運行進程手中搶占CPU
非剝奪式調度:就緒進程不可從運行進程手中搶占CPU
實時任務:具有明確時間約束的計算任務
實時調度: 合理安排就緒實時任務的執行次序,滿足每個實時任務時間約束條件的調度
硬實時:必須滿足任務截止期要求,否則產生嚴重后果,硬實施系統不多 .
軟實時:期望滿足截止期要求 .
周期性: 每隔固定時間發生一次
隨機性: 由隨機事件觸發,其發生時刻不確定
線程和CPU的親和關系:每個進程有一個處理器親合掩碼,缺省為所有處理器的集合,線程繼承其進程的親合掩碼,親合掩碼可以修改
第四章:
內部順序性:對于一個進程來說,它的所有指令是按序執行的
外部順序性:對于多個進程來說,所有進程的活動是依次執行的
順序性程序特性:
?-(1)連續性: 指令逐條執行
?-(2)封閉性: 不受其它程序及外界因素影響
?-(3)可再現性: 結果與推進速度無關
內部并發性:指一個程序內部的并發性。
外部并發性:指多個程序之間的并發性
并發程序特性:
-(1)間斷性:程序交叉執行。
-(2)非封閉性:一個進程的運行環境可能被其它進程所改變,從而相互影響。
-(3)不可再現性:由于交叉的隨機性,并發程序的多次執行可能對應不同的交叉,因而不能期望重新運行的程序能夠再現上次運行的結果。
共享變量:多個進程都需要訪問的變量。
臨界區域:訪問共享變量的程序段。把臨界區與其所對應的共享變量聯系起來稱為關于某一種共享變量的臨界區
進程互斥:多個進程不能同時進入關于同一組共享變量的臨界區域,否則可能發生與時間有關的錯誤,這種現象稱為進程互斥
互斥的內涵:
(1)任何時刻最多只能有一個進程處于同一組共享變量的相同的臨界區域;
(2)任何時刻最多只能有一個進程處于同一組共享變量的不同的臨界區域。
互斥的要求:互斥進入,空閑讓進,有限等待
進程同步:一組進程,為協調其推進速度,在某些關鍵點處需要相互等待與相互喚醒,進程之間這種相互制約的關系稱為進程同步。
同步機制:用于實現進程同步的工具稱為同步機制
進程合作:一組進程,如果它們單獨不能正常進行,但并發可以正常進行
合作進程:參與合作的進程
信號量:一種在多線程或多進程環境中用于實現同步和資源管理的機制,用于控制對共享資源的訪問數量,分為P和V操作,
P操作:執行此操作進程的PCB入s->queue尾(狀態改為等待),轉到處理機調度
V操作:S->queue鏈頭PCB出等待隊列,進入就緒隊列(狀態改為就緒)
組合資源:若干相對獨立的資源構成的資源集合, 其中每個相對獨立的資源稱為子資源
同種組合資源:相同類型子資源構成的組合資源
管程:是一種用于實現進程或線程同步的高級抽象概念
進程的高級通訊:進程之間的相互作用
第五章:
死鎖:一組進程中的每一個進程,均無限期地等待此組進程中某個其他進程占有的資源,因而永遠無法得到的資源,這種現象稱為進程死鎖
死鎖的結論:
-參與死瑣的進程至少有二個;
-每個參與死鎖的進程均等待資源;
-參與死鎖的進程中至少有兩個進程占有資源;
-死鎖進程是系統中當前進程集合的一個子集
死鎖的必要條件:1,資源獨占,2,不可搶占,3,保持申請,4,循環等待
(如果是單實例資源==>充要條件)
簡約算法:
--1:尋找一個非孤立且沒有請求邊的節點pi, 若無算法結束
--2:去除pi的所有分配邊使其成為一個孤立節點;
--3:尋找所有請求邊都可滿足的進程pj, 將pj的所有請求邊全部改為分配邊;
--4:轉步驟1
死鎖定理:
若算法結束時,所有節點均為孤點,則稱資源分配圖是完全可約簡的,否則稱為不可完全約簡的,死鎖的充分必要條件是資源分配圖不可完全簡約
死鎖預防:對進程有關資源的活動加限制,所有進程遵循這種限制,即可保證沒有死鎖發生
死鎖避免:對于可滿足的請求,胡檢測是否存在安全進程序列,存在就分配,否則不分配
饑餓:當等待時間給進程推進和響應帶來明顯影響時,稱發生了進程饑餓.
餓死:饑餓到一定程度的進程所賦予的使命即使完成也不再具有實際意義時稱該進程被餓死
兩種無上界等待:排隊等待/忙式等待
活鎖:忙式等待條件下發生的饑餓,稱為活鎖
饑餓和死鎖:
--死鎖進程處于等待狀態,忙式等待的進程并非處于等待狀態, 但卻可能被餓死;
--死鎖進程等待永遠不會釋放的資源, 餓死進程等待可能被釋放,但卻不會分給自己的資源,其等待時間沒有上界;
--死鎖一定發生了循環等待,餓死不然;
--死鎖至少涉及兩個進程, 餓死進程可能只有一個.(需要3個x,只有1個x)
第六章:
分區時刻
靜態分區:系統初始化時分;
動態分區:申請時分。
靜態等長分配:字位映象圖, 空閑頁面表, 空閑頁面鏈
動態異長分區的分配:最先適應,最佳適應,最壞適應
緊湊:移動占用區域,使所有空閑區域連成一片
分區大小
等長分區:2^i
異長分區:依程序、程序單位、對象大小。
界地址管理方式(一維地址):動態異長,一個進程一個區域,通過(b,l)確定,有內存分配表和空閑區域表,
地址映射過程:獲得邏輯地址a->比較a和l(合法)->a和b相加
雙對界:界地址分為代碼空間和數據空間,硬件能夠識別邏輯地址所屬空間,并使用對應的地址映射寄存器
交換技術:交換又稱換進換出,是指進程在內外存之間的動態調度,主要為了緩解內存空間不足的有效方法
重定位:被換出進程再次運行之前必須重新裝入內存,而再次進入內存的位置與換出前的位置一般不同,這就要求程序編址與內存存放位置無關,這種程序稱為可重定位程序
浮動程序:由0起始編址的程序都滿足重定位要求,這樣的程序也稱為浮動程序
覆蓋技術:將較大程序裝入較小進程空間的技術.具體是:first:只將全局代碼和數據靜態裝入內存, 其它部分動態裝入.Second后裝入的成分重復使用先裝入成分所使用的存儲區, 即覆蓋先裝入的成分
頁式管理方式(一維地址):靜態等長,對于內存2^i為一個頁框,對于進程2^i為一個頁面,進程和內存的頁框一一對應,通過頁表(進程),總頁表(系統)和頁表首址,頁表長度,快表(都是系統構成,通過(p,d)找到(f,d)
多級頁表:設計多個頁表,查找時先找低級,然后定位更高級或f
反置頁表:面向內存空間,每個內存頁架一個表項其大小固定
段式管理方式(二維地址):內存使用段(動態異長,一區一段),進程使用段,一個段一個程序單位,通過段表(進程),空閑表(系統),段表首址,長度,快表寄存器(s段號,b,l),通過(s,d)找到(b’),訪問(b’+d)
共享段表:記錄共享段的段表(進程->共享段表->共享段)
段頁式管理方式(二維地址):內存用頁(靜態等長f,d),進程用段(一個進程若干段,一個段若干頁) ,通過(s,p,d)來定位,有段表,頁表,總頁表,段表的寄存器,(基址和長度),快表(快段表和快頁表).
通過s查快表,如果不在快表,查(b,l)得到頁表的(b’,l’)然后比較p和l’得到f,合并f和d
第七章:
虛擬存儲:進程部分裝入內存,部分(或全部)裝入外存,運行時訪問在外存部分動態調入,內存不夠淘汰
外存塊的靜態分配:外存保持進程的全部頁面:
外存塊的動態分配:外存僅保持進程不在內存的頁面
請調:發生缺頁中斷時調入
預調:將要訪問時調入,必須輔以請調
工作集:進程在一段時間內所訪問頁面的集合
頁故障率=訪問內存缺頁次數/訪問內存總次數
第八章:
文件:具有符號名而且在邏輯上具有完整意義的信息項的序列
文件系統:文件與管理文件的程序集合。
順序訪問:從文件起始位置/中間某處開始順序訪問
隨機訪問:按記錄編號/關鍵字(key)隨機訪問
邏輯組織:用戶看到的文件組織形式,分為記錄文件和流式文件
物理組織:邏輯組織到磁盤塊的映射
文件控制塊:標識文件存在的標志,其中保存系統管理文件需要的全部信息
目錄項:目錄文件中的一項,內容為FCB
FCB分為主部(外存的inode中)和次部(目錄文件中)
文件的共享:通過公共目錄,共享說明,連接來實現節省內存/相互通信的一個模式
文件保護:防止用戶對文件進行非授權的訪問,通過存儲控制矩陣or訪問權限說明實現
文件保密:防止文件內容泄露,通過口令或密碼實現
文件安全:防止文件被破壞(人為or自然),主要通過備份(定期or故障),分為(海量轉儲和增量轉儲)
磁盤整理:利用轉儲和恢復可以對磁盤進行整理(使文件物理塊連續,空閑盤塊連續)
第九章:
共享型設備(塊型):多個進程的IO操作以塊為單位可以交叉
獨占型設備(塊型):多個進程的IO操作以塊為單位不宜交叉
獨占型設備(字符型):多個進程的IO操作以字符為單位不能交叉
通道:負責IO操作的處理機,有獨立的指令系統,運控部件,存儲區域
通道類型:
字節多路通道: 多個非分配型子通道,連接低速外圍設備
數組選擇通道: 一個分配型子通道,連接多臺高速設備
數組多路通道: 多個非分配型子通道,連接多臺高速設備
UCB設備控制塊,CCB通道控制塊..
尋道時間:將磁盤引臂移動到指定柱面所需要的時間;
旋轉延遲:指定扇區旋轉到磁頭下的時間;
傳輸時間:讀/寫一個扇區的時間。
輸入輸出進程:專門負責IO傳輸的進程,(C/S)服務模式
虛擬設備:利用共享型設備實現的數量較多、速度較快的獨占型設備,因為用戶直接使用獨占設備效率低,所以我們在進程與獨占型設備之間增加共享設備緩沖
歡迎大家補充,持續更新