自己整理的哈,有錯誤還請各位大哥指正!
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.記錄型信号量實作同步互斥(同步:有先後制約關系。互斥:互相搶占資源)
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裝置速度差問題。