操作系統的分類:
批處理操作系統、分時操作系統、實時操作系統、網絡操作系統、分布式操作系統、個人計算機操作系統。
批處理操作系統:
優:資源共享,自動調度,提高了資源利用率和系統分吞吐量。
劣:無交互,周轉時間較長。
多道批處理程序要處理的問題:同步互斥,內存大小,使用效率,內存保護
分時系統:聯機多用戶交互式操作系統,中斷技術,時間片輪轉
優:人機交互性好,共享主機 ,用戶獨立性
實時操作系統:聯機系統,對外部請求能夠在規定的時間內完成。
特點:有限等待
有限響應
用戶控制
可靠性高
出錯處理能力強
考慮因素:實時時鐘管理,連續的人機對話,過載,高可靠性和安全性采取冗余措施
通用操作系統:
同時兼有多道批處理系統,分時,實時處理功能。
個人計算機操作系統:
聯機交互單用戶,以windows和linux為主。
網絡操作系統:
特征:
互聯計算機群體,物理上分散
自治,每台計算機有自己的操作系統,獨立工作,在網絡協議下協同工作。
系統互聯靠通信設施(軟硬件)實現
系統通過通信設施進行信息交換,資源共享,互操作和協作處理。
分布式系統:
特征:
功能分布
堅韌性
高可靠性
操作系統功能:
處理器管理,
存儲管理(內存分配,內存保護,內存擴充),
設備管理(通道,控制器,輸入輸出設備分配與管理,設備獨立性管理)
信息管理(文件系統管理)
用戶接口管理
操作系統用戶接口:
命令接口,程序接口,圖形接口
通道:
用於控制I/O設備與內存數據的傳輸,啟動後獨立於CPU,實現CPU與I/O並行
中斷:
CPU在收到外部請求中斷信號後停止原來的工作,保存現場,轉去處理中斷事件,完畢後返回斷點繼續工作。
中斷請求->中斷響應->現場保護->中斷處理->中斷返回
計算機硬件組成:
處理器,存儲器,I/O設備,外設
幾種主要的寄存器:
地址寄存器
數據寄存器
程序計數器
指令計數器
程序狀態字PSW
中斷現場保護寄存器
過程調用堆棧
訪問速度排序:
寄存器 > 高速緩存 > 內存 > 硬盤緩存 > 硬盤 > 光盤,磁盤
操作系統啟動順序:
啟動電源->中斷信號->系統引導->導入內存執行代碼->操作系統加載->初始化硬件
系統調用:
設備管理
文件管理
進程管理
進程通信
存儲管理
線程管理
陷進處理機構:在系統中為控制系統調用服務的機構稱為陷進處理機構。
陷進指令:把由於系統調用引起處理機中斷的指令稱為陷進指令。
順序程序的特點:
順序性,封閉性,可再現性
執行環境特點:獨立性,隨機性,資源共享性
並發程序執行:
程序執行時間上重疊
進程:
是程序對數據集的執行過程,是資源分配的基本單位。
進程和程序的區別:
進程是程序的一次執行,有生命周期,動態概念
程序是可以作為軟件資料長期保存時靜態概念
進程是獨立運行的單位,能與其他進程並發活動
進程是競爭計算機資源的基本單位,也是資源調度的基本單位
不同進程可以包含同一程序。
作業和進程的區別:
作業是用戶相應計算機提交任務的任務實體
一個作業可以包含多個進程
作業的概念主要用於批處理系統中
進程描述:
1、進程控制塊PCB:
(1)PCB描述信息:進程標識,用戶標識,家族關系
(2)PCB控制信息:進程當前狀態,優先級,程序入口,計時信息,通訊信息
(3)資源管理信息:內存,對換覆蓋信息,共享程序段信息,輸入輸出設備,文件指針等
(4) CPU現場保護區
2、程序段
3、數據結構集
進程狀態:
執行 ,就緒,等待(阻塞)
進程狀態轉換:
運行到等待 等待某事件的發生如等待I/O完成
等待到就緒 事件已經發生如I/O完成
運行到就緒 時間片到例如兩節課時間到下課
新建進程到就緒 新創建的進程進入就緒狀態
就緒到運行 當處理機空閉時由調度分派程序從就緒進程隊列中選擇一個進程占用CPU。
進程控制:
系統使用一些具有特定功能的程序段來創建、撤銷進程以及完成進程各狀態的轉換從而達到多進程高效率並發執行和協調、實現資源共享的目的。
原語:
把系統態下執行的某些具有特定功能的程序段稱為原語。
用於進程控制的原語有:
創建原語、撤銷原語、阻塞原語、喚醒原語。
進程創建方式:
由系統程序模塊統一創建
由父進程創建。進程創建系統調用
create(name,priority,start-addr)
UNIX系統fork()
進程撤銷:
1、該進程已完成所要求的功能而正常終止
2、由於某種錯誤導致非正常終止
3、祖先進程要求撤銷某個子進程。
在一般操作系統中進程撤消的系統調用是kill UNIX系統中是exit() 如果撤銷進程有自己的子進程,則撤銷原語先撤銷其子進程的PCB結構並釋放子進程所釋放的資源後,再撤銷當前進程的PCB結構和釋放其資源。
進程互斥:
產生原因:資源共享,進程協同
臨界資源:一次只允許一個進程使用資源
臨界區:進程訪問臨界資源的程序段
間接制約:協同進程不能同時訪問臨界資源
直接制約:互斥進程不能同時訪問臨界資源
進程同步 :
異步環境下的一組並發進程因直接制約而互相發送消息而進行互相合作、互相等待,使得各進程按一定的速度執行的過程稱為進程間的同步。
進程通訊方式:
#管道( pipe ):管道是一種半雙工的通信方式,數據只能單向流動,而且只能在具有親緣關系的進程間使用。進程的親緣關系通常是指父子進程關系。
# 有名管道 (named pipe) : 有名管道也是半雙工的通信方式,但是它允許無親緣關系進程間的通信。
# 信號量( semophore ) : 信號量是一個計數器,可以用來控制多個進程對共享資源的訪問。它常作為一種鎖機制,防止某進程正在訪問共享資源時,其他進程也訪問該資源。因此,主要作為進程間以及同一進程內不同線程之間的同步手段。
# 消息隊列( message queue ) : 消息隊列是由消息的鏈表,存放在內核中並由消息隊列標識符標識。消息隊列克服了信號傳遞信息少、管道只能承載無格式字節流以及緩沖區大小受限等缺點。
# 信號 ( sinal ) : 信號是一種比較復雜的通信方式,用於通知接收進程某個事件已經發生。
# 共享內存( shared memory ) :共享內存就是映射一段能被其他進程所訪問的內存,這段共享內存由一個進程創建,但多個進程都可以訪問。共享內存是最快的 IPC 方式,它是針對其他進程間通信方式運行效率低而專門設計的。它往往與其他通信機制,如信號兩,配合使用,來實現進程間的同步和通信。
# 套接字( socket ) : 套解口也是一種進程間通信機制,與其他通信機制不同的是,它可用於不同及其間的進程通信。
死鎖:
指個並發進程彼此互相等待對方所擁有的資源,且這些並發進程在得到對方的資源之前不會釋放自己所擁有的資源。從而造成大家都想得到資源而又得不到資源,個並發進程不能繼續向前推進的狀態。
死鎖產生的四個必要條件:
互斥,不可剝奪條件,請求與保持,環路等待
解除死鎖:
剝奪資源
殺死進程
處理器調度機制:
作業調度:高級調度或宏觀調度
交換調度:中級調度
進程調度:低級調度
線程調度:
周轉時間:作業從提交時刻到完成的時間
包括等待時間和完成時間
進程調度的功能:
①用PCB塊記錄系統中所有進程的執行情況
②按照一定的調度算法,選擇一個處於就緒狀態的進程,給它分配處理機(這是最重要的功能)
③實施進行進程上下文的切換
引起進程調度的原因:
1、 正在執行的進程執行完畢。這時如果不選擇新的就緒進程執行將浪費處理機資源。
2、 執行中進程自己調用阻塞原語將自己阻塞起來進入睡眠等待狀態。
3、 執行中進程調用了P原語操作從而因資源不足而被阻塞或調用了V原語激活了等待資源的進程隊列。
4、 執行中進程提出了I/O請求後被阻塞。
5、 在分時系統中時間片已經用完。
6、 在執行完系統調用在系統程序返回用戶進程可認為系統進程執行完畢從而可調度選擇一新的用戶程序執行。
以上都是CPU執行不可剝奪方式下做引起的進程調度的原因,在CPU執行方式是可剝奪時,還有
7、 就緒隊列中的某進程的優先級變得高於當前執行進程的優先級,從而也將發生進程調度。
可剝奪方式,即就緒隊列中一旦有優先級高於當前進程優先級的進程存在時,便立即發生進程調度,轉讓處理機。
非剝奪方式,不可剝奪方式,即使在就緒隊列存在有優先級高於當前執行進程時,當前進程仍將繼續占有處理機,直到該進程因自己調度調用原語操作或、等待I/O進入阻塞狀態或時間片用完時才重新發生調度讓出處理機。
進程調度性能評價:
1、進程調度性能是衡量操作系統性能的重要指標
2、可采用測試或模擬系統相應時間的方式評價調度性能
調度算法:
1、FCFS 先來先服務
2、RR 時間片輪轉法
3、多級反饋輪轉法
4、優先級法
5、最短作業優先法
6、最高響應比優先法:響應比R=(等待時間W+執行時間T)/執行時間T
存儲器分類:
內存,外存
虛擬存儲器:
為用戶提供一種不受物理存儲器結構和容量限制的存儲器的技術稱為虛擬存儲器或稱虛擬存儲技術。虛擬存儲器需要大容量的外存儲器的支持或稱物資基礎。
程序地址:
用戶編程序時所用的地址或稱邏輯地址 、虛地址基本單位可與內存的基本單位相同也可以不相同。
程序地址空間:
邏輯地址空間、虛地址空間:用戶的程序地址的集合稱為邏輯地址空間它的編址總是從0開始的可以是一維線性空間也可以是多維空間。
物理地址:
把內存分成若干個大小相等的存儲單元,每個單元給一個編號,這個編號稱為內存地址,物理地址、絕對地址、實地址存
儲單元占8位,稱作字節byte。
物理地址空間:
物理地址的集合稱為物理地址空間,主存地址空間,它是一個一維的線性空間。
地址映射的三種方式:
1、編程或編譯時確定地址映射關系
2、靜態地址映射
3、動態地址映射
內存管理策略:
1、分配結構
2、放置策略
3、交換策略
4、調入策略
5、回收策略
存儲保護策略:
(1)上下界保護
(2)保護鍵
(3)界限寄存器與CPU用戶態或核心態工作方式結合
分區存儲管理:
1、固定分區
2、動態分區
動態分區策略:
首次適應法
最佳適應發
最壞適應法
分區存儲管理的優缺點
優點:
1、 實現了多個作業或進程對內存的共享,有助於多道程序設計,從而提高了系統的資源利用率
2、 該方法要求的硬件支持少,管理算法簡單,因而容易實現 缺點
1、 內存利用率仍然不高
2、 作業或進程的大小受分區大小控制,除非配合采用覆蓋技術和交換技術
3、 無法實現各分區之間的信息共享
覆蓋技術:
要求程序員提供一個清楚地覆蓋結構。即程序員必須完成把一個程序劃分成不同的程序段,並規定好它們的執行和覆蓋順序的工作。操作系統根據程序員提供的覆蓋結構來完成程序段之間的覆蓋。
交換技術:
是指先將內存某部分的程序或數據寫入外存交換區,再從外存交換區中調入指定的程序或數據到內存中來,並讓其執行的一種內存擴充技術。
交換技術不要求程序員給出程序段之間的覆蓋結構,交換主要是在進程或作業之間進行,覆蓋則主要是在同一個作業或進程內執行覆蓋只能覆蓋那些與覆蓋程序段無關的程序段。
交換進程由換入和換出兩個過程組成。
記錄空閒存儲區的方法:
位圖法和鏈表法
動態頁式管理分為:
請求頁式管理和預調入頁式管理。
抖動現象:
置換算法選擇不當,有可能產生剛被調出內存的頁又馬上被調回內存,調回內存不久又馬上被調出內存,如此反復的局面。這使得整個系統的頁面調度非常頻繁,以致大部分時間花費在主存和輔存之間的來回調入調出上的現象。
常用的頁面置換算法:將頁面從外存置換到內存,提升訪問速度
隨機淘汰法
輪轉法
先進先出
最近最久未使用
最近最少使用淘汰算法
Belady現象:
對於一個作業或進程,如果給他的頁面數越接近於它要求的頁面數,則剛發生缺頁次數會越小,但是,使用FIFO算法是,就會出現分配頁越多,缺頁越多的奇怪現象。
頁面管理可以為內存提供兩種方式的保護:
1、地址越界保護
2、通過頁表控制對內存信息存取操作方式提供保護。
頁式管理的優缺點
優點 :
1、由於它不要求作業或進程的程序段和數據在內存中連續存放,從而有效地解決了碎片問題
2、動態頁式管理提供了內存和外存統一管理的虛存實現方式,使用戶可以利用的存儲空間大大增加。這既提高了主存的利用率,又有利於組織多道程序執行。
缺點 :
1、要求有相應的硬件支持。例如地址變換機構,缺頁中斷的產生和選擇淘汰頁面等都要求有相應的硬件支持。這增加了機器成本。
2、增加了系統開銷,例如缺頁中斷處理。
3、請求調頁的算法如選擇不當,有可能產生抖動現象。
4、雖然消除了碎片,但每個作業和進程的最後一頁總有一部分空間得不到利用失仍然較大。
段式與頁式的比較:
段的保護:
1、地址越界保護法
2、存取方式控制保護法
段式管理的優缺點
優點
提供了內外存統一管理的虛存實現。
段長可根據需要動態增長。
便於對具有完整邏輯功能的信息段進行共享。
便於實現動態鏈接。
缺點
需要更多的硬件支持。
處理碎片比較麻煩。
給系統管理帶來一定的難度和開銷。
每個段的長度受內存可用區大小的限制。
選擇不恰當的淘汰算法,可能會產生抖動現象。
綜合段式和頁式的段頁式內存管理兼具段和頁管理的優點。