操作系統學習總結(用于考研復試)
1.os特性:
并發(并發:同一時間間隔內;并行:同一時刻)共享;虛擬;異步
2.os定義及功能:
定義:計算機資源的管理者。處理機管理;存儲器管理;文件管理;設備管理的功能。
3.os為用戶提供的接口:命令接口;程序接口(即系統調用)
4.用戶態轉向核心態的例子(本質:將cpu控制權交給os)
中斷;系統調用;發生錯誤;企圖執行特權指令。
5.中斷和異常
中斷:外中斷(如時間片到);異常:內中斷/例外/陷入(如運算溢出)
區分依據:是否由指令引起,是則屬于內中斷
6.系統調用:他是用戶程序取得os服務的唯一途徑。凡是會影響到其他進程(與資源有關的)的操作都應通過系統調用請求os代為完成。
7.中斷處理過程:
硬件自動完成(中斷隱指令):關中斷(使后幾步不被打斷),保存斷點,中斷服務程序尋址
程序完成:保存現場和屏蔽字,開中斷,執行中斷服務程序(目的),關中斷(使后一步不被打斷),恢復現場和屏蔽字,中斷返回(同時開中斷)
8.為什么引入進程、線程以及他們的區別:
進程:程序這個靜態概念已經不能如實反映并發執行過程的特征,而且進程也可以更好地使多道程序并發執行提高資源利用率。進程=程序+數據+PCB
線程:屬于“輕量級的進程”,可以減少時空開銷,提高資源利用率。
區別:
進程:擁有資源的基本單位。系統開銷相比線程大得多。
線程:獨立調度的基本單位。(線程可以訪問其隸屬的進程的資源)
9.用戶級線程與內核級線程:
用戶級線程中內核意識不到線程的存在,進程仍為基本調度單位,所以即使在多核處理器中也不能實現線程的并發執行,而內核級線程可以。
10.進程的狀態:
就緒(無處理機有其他);運行(處理機和其他都有);阻塞(處理機和其他都無)

11.進程的管理、通信:(將進程控制用的程序成為原語,它不可中斷不可分割)
進程的管理:
①進程的創建(創建原語):申請PCB及初始化;分配資源。
②進程的撤銷(撤銷原語):刪除PCB,回收資源。
③進程的阻塞(阻塞原語):PCB插入阻塞隊列。
④進程的喚醒(喚醒原語):PCB插入就緒隊列。
進程的通信:(區分高級低級看傳輸效率)
低級方式:PV操作
高級方式:共享存儲。消息隊列。管道通信。
12.三級調度(高級=作業調度:分配資源,建立進程。中級=內存調度:掛起激活進程。低級=處理機調度:分配CPU)

作業與進程:要求計算機完成的一串任務稱為作業。作業調度時將其從后備隊列調入內存,為其建立根進程,根進程又會創建子進程去完成指定任務。
處理機調度算法:
先來先服務(不利于短作業)
短作業優先(不利于長作業)
高響應比優先(綜合上述兩種的優點):響應比=(等待時間+處理時間)/處理時間
優先級調度
時間片輪轉
多級反饋隊列(最優,短作業優先且長作業不會餓死):①設置多個隊列,1~n隊列的優先級逐級遞減,而時間片逐級遞增。②進入等待的隊列先去1級隊列的隊尾,按先進先出原則。若運行完后進程未結束則去下一級隊列的隊尾...③當1級隊列空時才輪到2級隊列。
13.互斥的四種軟件實現方式:
單標志(必須交替進入,違背空閑讓進)
雙標志先檢查(可能同時進入臨界區,違背忙則等待)
雙標志后檢查(可能兩個都進不了,違背空則讓進)
皮特森算法:turn表示謙讓標志,=0表讓P0先進,=1表讓P1先進,最后誰進取決于最后謙讓的是誰;flag[2]表示兩個進程是否想進入。(違背讓權等待)

14.記錄型信號量實現同步互斥(同步:有先后制約關系?;コ猓合嗷屨假Y源)
P操作:資源數-1,當其<0時加入阻塞隊列
V操作:資源數+1,當其<=0時喚醒隊頭進程
同步中:在需要用到資源的行為前面P,會釋放資源的行為后面V。
互斥中:PV操作緊夾使用資源的行為。
15.生產者-消費者問題(既有互斥又有同步):
同步時:需要用前P一下,提供之后V一下。互斥時:PV夾緊資源。
16.讀者寫者問題(寫者與大家都互斥,讀者只與寫者互斥)
用一個count計數器表示是否是第一個/最后一個讀者,是則需要進行資源的請求/釋放。
對count的操作需要用mutex進行互斥訪問達到一氣呵成的效果,否則會死鎖。
17.死鎖
定義:多個進程因資源競爭而造成的僵局
原因:系統資源的競爭;進程推進非法
必要條件(不滿足任意一個則不發生死鎖):互斥;不可剝奪;請求并保持;循環等待
解決死鎖:
預防:破壞必要條件
避免:銀行家算法和安全性算法(先用銀行家算法預先分配資源再用安全性算法檢測這次分配是安全,安全則正式分配,否則撤回之前的分配)
檢測與解除:看資源分配圖是否可簡化(死鎖定理:如果資源分配圖可以化簡則沒有死鎖)
18.死鎖和饑餓的區別
死鎖是多個進程因資源競爭而造成的僵局,而饑餓是進程發生無窮等待的情況。
區別:死鎖的進程必須>=2個,而饑餓可以只有一個。死鎖進程必須是阻塞狀態,而饑餓可以是就緒狀態 一直得不到運行。
19.源程序->可執行文件
編譯:形成匯編語言
匯編:形成機器語言
鏈接:形成可執行文件(此時在磁盤上,裝入內存才會形成物理地址)
20.鏈接和裝入的三種方式
鏈接:靜態鏈接,裝入時動態鏈接,運行時動態鏈接。
裝入:絕對裝入(編譯時產生絕對地址的目標代碼);靜態重定位(裝入時修改指令和數據);動態重定位(需要重定位寄存器的支持,其存放裝入模塊的起始地址,只有在程序運行時才將相對地址加上寄存器地址得到物理地址)
21.連續內存分配
單一連續分配(內存只有一道程序)
固定分區分配(分區大小可以相等可以不等)
可變分區分配:首次適應(從第一個開始找);循環首次適應(從上次結束的位置開始找);最佳適應(找最小適合的);最壞適應(找最大適合的)
22.非連續內存分配:分頁;分段;段頁式;
分頁的邏輯地址->物理地址:頁表寄存器中的頁表起始地址+(頁號*頁表項長度)=塊號的地址;塊號*塊的大小+偏移地址=物理地址。
分段的邏輯地址->物理地址:段表寄存器中的段表起始地址+(段號*段表項長度)=該段的始址;始址+偏移地址=物理地址。
23.分頁和分段管理的地址空間維度
分頁:一維。分段:二維。
因為頁面大小P固定,邏輯地址/P=頁號,邏輯地址%P=偏移地址。所以只需給出一個整數即可確定物理地址。
而段的大小不固定,所以需要顯示給出段號和段內偏移,即地址空間為二維。
24.分段和分頁的區別:
分頁:產生內部碎片;邏輯地址一維;頁面大小相等;為提高內存利用率。
分段:產生外部碎片;邏輯地址二維;段長不等;為方便編程。
25.虛擬內存管理
為什么引入虛擬內存:在物理上擴展內存相對有限的條件下,可以在邏輯上擴展內存。
虛存空間:min【內外存之和,2^計算機的地址位數】若32位則是2^32,若大于該數則無法尋址,沒有意義。
實現方式:請求分頁、請求分段、請求段頁式。
26.TLB(快表):
采用虛存后,需要訪問內存的頁表,訪存的次數因此增加。為了減少訪存的次數,往往將頁表中最活躍的幾個頁表項復制到高速緩沖存儲器中(CPU中的寄存器)。這種在高速緩沖存儲器中的頁表項稱為快表。
27.頁面置換算法
最佳置換(找最久被使用到的頁面換出);先進先出(會出現belady異常即分配的物理塊增多而缺頁次數也增加的情況);最近最久未使用(往左找);
時鐘置換算法(訪問位和修改位按00 01 10 11的優先級換出)
28.抖動:
定義:頻繁進行頁面調度的行為。
原因:內存空間不足;置換算法選擇不當;對換信息量過大。
29.磁盤讀寫操作所需時間
尋道時間+延遲時間+傳輸時間
磁盤調度算法:先來先服務;最短尋找時間優先;掃描算法(左到右 右到左一直循環);循環掃描算法(左到右一直循環);
30.I/O控制方式:
程序I/O方式(CPU不斷測試);
中斷驅動方式(允許外設中斷CPU,但每個字的傳輸都需要經過CPU);
DMA方式(以塊為單位直接傳輸數據到內存,只有塊的開始和結束需要CPU干預);
通道控制方式(專門負責輸入輸出的處理機,最大程度減少CPU干預);
31.SPOOLing技術:
是以空間換時間,將獨占設備改造為共享設備的技術。
在磁盤上開辟空間用作輸入輸出井,使得CPU可以不用等待I/O設備,以緩和CPU和I/O設備速度差問題。

浙公網安備 33010602011771號