2020 操作系统第零天复习(知识点总结)
生活随笔
收集整理的這篇文章主要介紹了
2020 操作系统第零天复习(知识点总结)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1:概論
- 2:處理器管理
1:概論
- 批處理系統
- 是第一個使用多道程序設計的系統
- 缺少交互性 但是效率提升
- 分時處理系統
- 把一臺計算機按照時間片輪轉的方式分配給多個用戶,使得用戶覺得是自己獨占計算機
- 必須在規定的時間進行響應
- 交互性增加 響應的時間和CPU的性能,聯機終端的數目,所用時間片的長短,系統調度開銷和兌換信息的多少
- 實時處理系統
- 能夠實時的查詢并且更新數據
- 機票系統 實時查詢系統 飛機 導彈
2:處理器管理
-
處理器狀態
- 核心態和用戶態,又叫管態和目態
- 核心態可以執行所有的指令,目態只能執行用戶指令
- X86 一種有四個特權級,0最高,3最低 但是Windows 中只有兩個特特權級
- 模式切換
- 用戶態到核心態:系統調用,中斷或者異常
- 程序狀態字的模式為設置為核心態
- 核心態到用戶態:加載程序狀態字特權指令
-
程序狀態字
- 指示處理器的狀態,控制指令的執行順序,并且指示與運行程序有關的信息,主要作用是實現程序狀態的保護和恢復
- 在X86總 PWS由標志寄存器和EIP組成
-
中斷的處理
- 發現中斷源
- 保護現場
- 轉向中斷/ 異常時間的處理程序
- 恢復現場
-
時鐘中斷是肯定是在用戶使用的哈 中斷程序是在內核
-
可再入 和可再用
- 可再入:只讀的代碼,能夠被多個程序同時調用 編譯程序
- 可再用:一次只能一個程序調用
-
進程的特征
- 【并發性 制約性】【 獨立性 共享性】【 結構性】【 動態性】
-
操作系統的特性
- 異步性 共享性 并發性
并發制約獨立動態結構共享
-
進程的狀態和轉換
- 三態模型
- 五態模型
- 七態模型
-
進程映像
- 進程控制塊
- 表示信息
- 現場信息
- 控制信息
- 進程程序塊
- 進程核心快
- 進程數據塊
- 進程控制塊
-
上下文切換和模式切換
- 上下文是不同的進程之間的轉換
- 模式切換是同一個進程下的 內核和用戶之間的轉變
- 上下文切換,進程切換一定是在內核空間中的
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CgfwqGsg-1610355301000)(C:%5CUsers%5CAdministrator.DESKTOP-CGIO78B%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210111095717447.png)]
-
進程的管理和控制
- 原語 關中斷,不能并發執行 是哦那個房管指令
-
線程
- 用戶級線程:無需模式切換,節省開銷
- 大多數系統調用是阻塞的,一個的阻塞導致整個進程的阻塞
- 內核級線程:能夠利用多個CPU
- 并且一個線程阻塞之后,也不會導致整個的堵塞
- 線程在用戶時,模式切換的開銷太大。用戶——內核——用戶
管程的實現代碼
type struct InterfaceModule{semaphore mutex;semaphore next;int next_count; }//enter mutex=1; next=0; next_count=0;process enter(){P(IM.mutex); }process leave(){if(IM.next_count>0){V(IM.next);}else{V(IM.NEXT);} }process singal(semaphore & x_sem, int & x_count,IM){next_count++;//喚醒當前信號量上的if(x_count>0){V(x_sem);P(IM.next);next_count--;} }process wait(semaphore & x_sem,int & x_count,IM){x_count++;if(IM.next_count>0){V(IM.next);}else{V(IM.mutex);}P(x_sem);x_count--; }哲學家就餐問題typedef philiosopher_dinner=monitorenum {hungry,eating,thinking} state[5]; semaphore self[5]; int selft[5]_count; for(int i=0;i<5;i++){state[i]=thinking; } define pickup,putdown; use enter,leave,putdown,singalvoid puton(int i){enter(IM);state[i]=hungry;test(i);if(state[i]!=eating){wait(self[i],self_count[i],IM);}拿到左右的兩邊筷子leave(IM); }void putdown(int i){enter(IM);state[i]=thinking;test((i-1)%5);test((i+1)%5);leave(IM); }void test(int i){if(state[i]== hungry && state[(i-1)%4]!=eating && state[(i+1)%5]!=eating){state[i]=eating;singal(self[i],self[i]_count,IM);} }生產者消費者問題process enter(){P(IM.mutex); }process leave(){if(IM.next_count>0){V(IM.next);}else{V(IM.NEXT);} }process singal(semaphore & x_sem, int & x_count,IM){next_count++;//喚醒當前信號量上的if(x_count>0){V(x_sem);P(IM.next);next_count--;} }process wait(semaphore & x_sem,int & x_count,IM){x_count++;if(IM.next_count>0){V(IM.next);}else{V(IM.mutex);}P(x_sem);x_count--; }typedef produce_customer=monitorsemaphore notfull,notempty; int notfull_count,not_empty; notfull=0,notempty=0; notfull_count=0;not_empty_count=0; int count = 0;void put(){enter(IM);if(count==M){wait(notfull,notfull_count,IM);}//進行產品的制作count++;singal(notempty,notempty_count,IM);leave(IM); }void putdown(){enter(IM);if(count==0){wait(notempty,notempty_count,IM);}count--;singal(notfull,notfull_count,IM);leave(IM); }讀者寫者問題typedef reader_writer=monitorsemaphore R,W; int R_count,W_count; int readcount,writecount;void startread(){enter(IM);if(writecount>0){wait(R,R_count,IM);}readcount++;leave(IM); }void endread(){enter(IM);readcount--;if(readcount==0) singal(W,W_count,IM);leave(IM); }void startwrite(){enter(IM);writecount++;if(writecount>1 || readcount>0 ){wait(W,W_count,IM);}leave(IM); }void endwrite(){enter(IM);writecount--;if(writecount>0){singal(W,W_count,IM);}else{singal(R,R_count,IM);}leave(IM); }- 進程通信
- 信號
- 管道
- 共享內存
- 消息傳遞
- 共享內存
死鎖防止:
破壞四個必要條件
互斥 保持與申請 不剝削 循環等待
保持與申請:靜態分配
不剝削:剝削
循環等待:按需分配 俺層次分配
死鎖避免 銀行家算法
如果可以收回來,那我才借給你
死鎖檢測和接觸 資源分配圖 和死鎖定理
設備管理 I/O 硬件原理
-
I/O控制方法
- 輪詢
- 中斷
- DMA
- 通道
- 對CPU的影響程度越來越小
-
I/O 軟件的設計目標 高效率和通用性
- 考慮的問題
- 設備通用性
- 出錯處理
- 同步/異步傳輸
- 緩沖技術
- IO軟件的四個層次
- I/O 中斷處理程序
- I/O 設備驅動程序
- 獨立于設備的 I/O軟件
- 用戶空間中的I/O 軟件
- 驅動程序的三功能
- 設備初始化
- 執行設備驅動歷程
- 執行中斷處理歷程
- 獨立于設備的 I/O軟件
- 設備命名和設備保護
- 提供與設備無關的塊尺寸
- 緩沖技術
- 設備分配和狀態跟蹤
- 錯誤處理與報告
- 用戶空間的 I/O軟件
- 庫函數
- SPOOLING
- 作業調度程序 井管理程序 運行作業
- 考慮的問題
-
緩沖技術
- 單緩沖
- 雙緩沖
- 多緩沖
-
移動臂調度
- FCFS 先進先出
- elevator 電梯調度
- SSTF 最短查詢時間 可能被黏
- 掃描算法 scan 需要 到頭
- circular scan 循環掃描 單方向
-
文件管理
-
文件的存取方式
- 順序
- 直接
- 索引
-
文件的邏輯結構
- 流失 無結構
- 記錄
-
文件的物理結構
- 順序
- 連接
- 直接文件
- 索引
-
標準化的操作接口
- 文件共享
- 靜態共享
- 動態共享
- 文件符號鏈接共享
- 文件共享
-
硬盤空間管理
- 連續分配
- 非連續分配
-
付村管理方法
- 位示圖
- 空閑區表
- 空閑塊鏈
- 成組鏈接發
總結
以上是生活随笔為你收集整理的2020 操作系统第零天复习(知识点总结)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (10)WEB复习
- 下一篇: 反置页表(1__操作系统)