軟體設計師25-作業系統
思維導圖,不存在的
作業系統
看圖,其他掠過
1 作業系統定位
2 作業系統作用
- 作為使用者和計算機間的介面
- 作為實現計算機系統資源的管理者
- 實現了對計算機資源的抽象
3 作業系統分類
批處理系統、分時作業系統、實時作業系統、網路作業系統、分散式作業系統
4 作業系統的功能(2.2)
處理機管理功能、儲存器管理功能、裝置管理功能、檔案管理功能、使用者介面
處理機管理
又稱程式管理(4.1)
程式
1 程式概念:程式關於某個資料集合的一次執行過程
2 程式特徵
1)結構:程式控制塊(PCB)+程式+資料=程式實體
2)動態性:程式是實體的一次執行過程,有生命週期
程式是一組有序指令的集合,是靜態的
3 程式的三種基本狀態
就緒態 萬事俱備,只欠CPU
執行態 正在CPU執行
阻塞態/等待態 正執行的程式由於發生某事而無法執行
4 程式的互斥與同步
1)程式制約關係
間接相互制約關係–資源共享(臨界/獨佔資源,如印表機)
直接相互制約關係–程式合作(訪問同一變數,如倉庫的賣生產者和消費者)
5 臨界資源
1)臨界資源:把一段時間內只允許一個程式訪問的資源稱為臨界資源或獨佔資源
2)臨界區:每個程式中訪問臨界資源的那段程式碼
訊號量
6 訊號量機制
1)訊號量使所有的程式互斥的訪問臨界資源
2)訊號量是當前可使用資源數(大於零時),小於零阻塞
7 訊號量的應用
1)利用訊號量實現程式互斥
訊號量為資源個數
2)利用訊號量實現前驅關係
- 訊號量0
- 程式p1在p2前執行
程式p1 S1;
signal(S); V(S)
程式p2 wait(S); P(S)
S2;
3) 利用訊號量實現同步
確儲存取不同時執行,兩個變數
程式排程
程式排程:決定哪個CPU獲得處理機,所有作業系統都有
8 排程方式
1)非搶佔方式
當前程式完成,才能執行其他程式
簡單、開銷小,僅適合批處理OS
2)搶佔方式
根據某一原則,搶佔正在執行的程式的CPU
搶佔原則:時間片原則、短作業(程式)優先原則、優先權原則
9 排程演算法
1)先來先服務FCFS
永遠給隊首的作業,利於長作業,不利於短作業
2)短作業優先SJ(P)F
同一時間誰短誰先來
降低平均等待時間,對長作業不利,未考慮緊迫程度,估計的作業時間(不一定做到短作業優先)
3)高優先權優先
靜態優先權:建立程式時確定,值越小優先順序越高
動態優先權:建立程式時的優先順序在執行過程中變化
如 高響應比優先演算法
優先權=(等待時間+要求服務時間)即系統響應時間/要求服務時間(值越大優先順序越高)
等待時間相同,利於短作業;要求服務時間相等,先來先服務;長作業
4)時間片輪轉
時間片結束,程式未完成置於隊尾;時間片內程式結束或阻塞,CPU切換。
死鎖
10 死鎖概念:執行過程中因爭奪資源而造成的僵局,無外力作用則無法繼續執行
11 死鎖產生原因
1)競爭資源不足
資源分類:
可剝奪性資源:高優先順序程式搶佔,如CPU、主存
不可剝奪性資源:(臨界資源)必須程式用完後才能釋放,如磁帶、印表機
只有不可剝奪性資源才會引起死鎖
2)程式間推進順序非法
12 產生死鎖必要條件
1)互斥條件
程式訪問的是臨界資源,其他程式只能等待當前程式完成
2)請求和保持條件
程式在請求新資源的同時,保持對已有資源的佔有
3)不剝奪條件
程式獲得的資源,只能由程式使用完成後主動釋放
4)環路等待條件
發生死鎖時,必定存在一個程式-資源環(互相等待對方資源)
13 處理死鎖
1)預防死鎖
事先預防,破壞產生思索的一個或幾個條件(互斥條件除外)
2)避免死鎖
銀行家演算法、採取事先預防的策略,防止系統進入不安全狀態
3)檢測死鎖(檢查)
4)解除死鎖(有則改之)
撤銷或掛起一些程式再將這些程式分配給阻塞狀態的程式
有可能是系統獲得較好的資源利用率和吞吐率,但難度較大
記憶體管理
1 主要指對記憶體的管理,負責記憶體分配和回收,記憶體的保護和擴充
2 目的:儘量提高記憶體的使用率
3 分配方式
- 連續的分配方式
使用者程式分配在連續的記憶體空間
1)單一連續分配
DOS 分為作業系統和使用者,且只能分配給一個作業(單使用者單任務)
2)固定分割槽分配
分為作業系統和若干個大小不等的區域(按作業大小分配,每個區域存在浪費(內缺陷))
3)動態分割槽分配
分為作業系統和使用者區域,來一個劃出一部分空間
首次適應演算法(從低地址開始找能盛下作業的空閒分割槽,劃出)
迴圈首次適應演算法(從上次分配過的地方往下搜尋)
最佳適應演算法(找出與作業差值相差最小的(把分割槽按從小到大的順序排序),太小會無法分配,產生外缺陷)
最壞適應演算法(找出與作業差值相差最大的)
4)可重新定位分割槽分配
把記憶體中所有作業向低地址移動,使他們全部臨界,原來的小分割槽變成大分割槽(拼接)
對換
1 概念:把記憶體中暫時不能執行的程式或暫時不能使用的程式、資料,調到外存,把具備執行條件的從外存呼叫記憶體
2 分類
1 整體對換:整個程式為單位對換
2 頁內對換/分段對換 以頁或段為單位
離散分配方式
允許將一個程式直接分散的裝入許多不相鄰的分割槽中
1 分類
分頁儲存管理方式
1 分頁式儲存管理的原理
頁面
將一個程式分為若干個大小相等的片稱為頁面或頁(暑假數學作業,有5張卷子);加以編號(從0開始)(分別為數學1、數學2..);把記憶體空間分配成與頁面相同大小的若干個儲存塊,稱為塊或頁框(頁和塊大小相同)(裡面為許多透明袋檔案袋(一個透明袋可以裝一份卷子))
將卷子隨機裝入這些透明袋中(多個不相鄰的物理塊),程式的最後一頁經常裝不滿一塊而形成頁內碎片
地址變換
實現
頁表 實現了從頁號到物理塊號的地址對映
地址變換機構實現了從邏輯地址到實體地址的轉換
所以實體地址= b x 頁大小/塊大小+頁內地址
具有塊表的地址變換機構
訪問兩次記憶體(訪問頁面,計算實體地址;根據實體地址找資料)
存取器利用率高,CPU處理速度低
分段儲存管理方式
段表 作用類似頁表,區別(組成):段號;段在業內中的起始地址;段長
段頁式儲存管理方式
頁面置換演算法
- 最佳置換演算法
效能最好,最難實現:選以後再也不用的或未來最長時間不用的
可以用來衡量其他演算法,與此演算法越接近越好
- 先進先出(FIFO)置換演算法 最直觀,效能最差,可能會出現踢出先進(經常使用的頁面)的
- 最近最久未使用(LRU)
過去預測未來,為每個頁面增加一個訪問欄位,訪問一次,欄位值加1
裝置管理
I/O系統組成:輸入、輸出裝置;儲存功能的裝置;裝置控制器
1 裝置管理概念
- 裝置管理程式功能
1)提供和程式管理系統的介面
2)進行裝置分配
3)實現裝置和裝置之間、裝置和CPU之間的並行操作
4)進行緩衝區管理
2 I/O控制方式
1)程式I/O方式
2)中斷控制方式
3)直接儲存器訪問(DMA)方式 分塊傳
4)I/O通道(專門小型CPU)控制方式
位元組多路通道
選擇通道
成組多路通道
3 緩衝管理
1)單緩衝 類似 生產者-消費者
2)雙緩衝
要求輸入輸出速度匹配 兩個桶(始終有桶在接水)交替倒水
常用3 4
3)迴圈緩衝
n個大小相同的緩衝區,分為
裝入資料的空緩衝區R
裝滿資料的緩衝區G
正在輸出的緩衝區C(繞成圈)
4)緩衝池
既可輸入又可輸出的公用緩衝池,分為
空緩衝區
裝滿輸入資料的緩衝區
裝滿輸出資料的緩衝區
4 引入緩衝目的
1)緩和CPU與I/O裝置之間的速度不匹配
2)減少CPU的終端頻率,放寬對CPU中斷響應的時間限制
3)提高CPU和I/O裝置之間的並行性
5 裝置分配
1)裝置分配原則
靜態分配 執行前分配好,不會造成死鎖
動態分配 需要時提出申請(按需分配),易造成死鎖
2)裝置分配策略
先請先分配、優先順序高者先分配
磁碟管理
6 磁碟
儲存位置:由柱面號(磁軌號)、盤面號(第幾個磁碟)(磁頭號)、扇區組成
7 磁碟訪問時間(1+2+3)
1)尋道時間Ts:把磁臂從當前位置移到指定磁軌上所經歷的時間
2)旋轉延遲時間Tr:市面流通10000轉/min 7200轉/min 5200轉/min,指定扇區移動到磁頭下面所經歷的時間
1 2 機械結構時間,佔比大;集中有利於減少此時間
3)傳輸時間Tt:資料從磁碟都出或向磁碟寫u他資料所經歷的時間 電氣時間
8 磁碟排程演算法
1)先來先服務(FCFS)
2)最短尋道時間優先SSTF
優先滿足與磁頭最近,會出現程式飢餓(離磁頭遠的得不到滿足),平均時間不一定最短
3)掃描(SCAN)演算法(電梯排程演算法)
從初始磁軌開始,向磁軌號遞增方向訪問(上樓)。然後再從大向小(下樓)
錯過電梯,只能等待下來時帶上自己
4)CSAN 迴圈掃描演算法
電梯向上,降到最低,迴圈
9 虛裝置與SPOOLing技術/假離線技術
1)作用:提高I/O速度、將獨佔裝置改為共享裝置、實現了虛擬裝置功能
檔案管理
1 檔案:具有檔名的若干相關元素的集合
2 檔案系統
1)負責管理檔案的系統軟體
2)被管理的物件-檔案
3 檔案的結構
1)檔案的邏輯結構
1 有結構的檔案
由一條條資料構成
包括:順序檔案、索引檔案、索引順序檔案、直接檔案
2 無結構的檔案
由字元流構成(如mp3)
源程式、可執行檔案、庫函式、mp3等,UNIX系統把所有檔案都看作流式檔案
2)檔案的物理結構
磁碟可直接訪問
外存分配方法(一個系統通常只採用一種):
1 連續分配
順序檔案儲存,每個檔案分配一組相鄰的盤塊,緊湊消除建立刪除善生的碎片
2 連結分配
連結檔案:通過每個盤塊上的連結指標,將一個檔案的多個離散的盤塊連結成一連結串列
缺點:不支援高效存取、FAT佔用記憶體較大
3 索引分配
單級索引
多級索引
混合索引
3 磁碟的空間管理
1)空閒表法 空閒連結串列法
2)位檢視法
用一個位表示磁碟塊的空閒狀態
如 用0表示未使用,1表示已使用
0-31是第一個字
4096/32=128
200 x 1024×1024/1 x 1024 x 32 =6400
3)成組連結法
作業管理
1 作業狀態
批處理型作業經歷:提交 後備 執行 完成
2 排程層次
1)高階排程/作業排程/長程排程
決定後備佇列中哪幾個作業呼叫記憶體,僅用於多道批處理系統,週期最長
2)中級排程/對換排程
提高記憶體利用率和系統吞吐率。將不用的從 記憶體調出外存,用的調回來
3)低階排程/程式排程/短程排程
根據某種演算法,決定就緒佇列中的哪個程式應獲得CPU,分給他,基本排程,應用於所有系統(多道批處理系統、分時、實時),週期最短
3 排程演算法
先來先服務、短作業優先、高優先權優先、高響應比優先
4 使用者介面
作業系統介面:命令介面、程式介面
相關文章
- 軟體作業系統作業系統
- 軟體設計師:計算機系統知識計算機
- 軟體設計師23-儲存器系統02
- 程式設計作業——系統管理程式設計
- 軟考 - 系統架構設計師(基於中介軟體的開發)架構
- 軟體設計師:UML
- 系統分析設計小組作業1
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- 計算機作業系統|作業系統引論計算機作業系統
- 沒有任何程式設計基礎可以製作系統軟體嗎?程式設計
- 2024秋軟體工程現場程式設計作業軟體工程程式設計
- SAPGUI軟體裡做的設定,本地作業系統儲存的具體位置GUI作業系統
- 統信軟體何以登上國產作業系統“鐵王座”?作業系統
- 軟考資料-軟體設計師
- 作業系統實驗(一)-Shell程式設計作業系統程式設計
- 作業系統精髓設計原理 程式排程作業系統
- 作業系統體系結構作業系統
- 在作業系統、晶片領域跌倒的中國程式設計師,如何崛起?作業系統晶片程式設計師
- 作為ui設計師,你必須要熟練的幾款設計軟體UI
- 軟體工程作業--ATM自助銀行服務系統軟體工程
- 作為程式設計師的你,常用的工具軟體有哪些?程式設計師
- 軟體工程第二次作業(原型設計)軟體工程原型
- 2024秋軟體工程iman現場程式設計作業軟體工程程式設計
- 軟體設計師:演算法演算法
- 軟體設計師:軟體工程基礎知識軟體工程
- 計算機作業系統計算機作業系統
- 團隊作業3——需求改進&系統設計
- 火車售票軟體系統的設計方案
- 程式設計師你是如何解決軟體系統的易排錯性?程式設計師
- 軟體設計師:計算機網路計算機網路
- 作業系統(1)——作業系統概述作業系統
- 作業系統(一):作業系統概述作業系統
- 系統架構設計師學習(二)系統架構設計師緒論架構
- 作業系統-記憶體管理作業系統記憶體
- 作業系統——記憶體管理作業系統記憶體
- 系統設計:如何設計一個分散式作業排程器 ?- Rakshesh分散式
- 軟體設計師:資料結構資料結構
- 重讀經典《作業系統:設計與實現》作業系統