操作系統(tǒng)復(fù)習(xí)

摘自《操作系統(tǒng)概念》(高等教育出版社)第七版
第一部分 概述
1暑塑、事件的發(fā)生通常通過硬件或軟件中斷表示谤绳。硬件可隨時通過總線向cpu發(fā)出信號,以觸發(fā)中斷蛇更;軟件可通過執(zhí)行特別的操作,如系統(tǒng)調(diào)用癞季,而觸發(fā)中斷歼跟。
2刑棵、一個典型的指令執(zhí)行周期:首先從內(nèi)存中獲取指令赏廓,并保存在指令寄存器中
3涵紊、多處理器系統(tǒng)的優(yōu)點:
a. 增加吞吐量
b. 規(guī)模經(jīng)濟
c. 增加可靠性
4、現(xiàn)代操作系統(tǒng)是由中斷驅(qū)動的
5幔摸、系統(tǒng)調(diào)用類可大致分為五大類:進程控制摸柄、文件管理、設(shè)備管理既忆、信息維護和通信

第二部分 進程管理

進程概念:
1驱负、進程包括代碼段、當(dāng)前活動(程序計數(shù)器的值和處理器寄存器的內(nèi)容)患雇、堆棧段跃脊、數(shù)據(jù)段(包括全局變量),堆(動態(tài)分配的內(nèi)存)
2苛吱、進程的狀態(tài):新的匾乓,運行,等待又谋,就緒拼缝,終止
3、進程控制塊pcb存儲如下信息:進程狀態(tài)彰亥、程序計數(shù)器咧七、cpu寄存器、cpu調(diào)度信息任斋、內(nèi)存管理信息继阻、記賬信息、I/O狀態(tài)信息

進程調(diào)度:
1废酷、進程進入系統(tǒng)時瘟檩,會被加入作業(yè)隊列中。駐留在內(nèi)存中就緒的澈蟆,等待運行的稱為就緒隊列墨辛,使用鏈表實現(xiàn),其頭結(jié)點指向第一個和最后一個PCB趴俘。
2睹簇、設(shè)備調(diào)度:等待特定I/O設(shè)備的列表稱為設(shè)備隊列。
3寥闪、長期調(diào)度程序(作業(yè)調(diào)度)從大容量存儲設(shè)備中選擇進程裝入內(nèi)存中太惠,以準(zhǔn)備執(zhí)行;短期調(diào)度從內(nèi)存中選擇進程疲憋,并為之分配cpu凿渊。
4、上下文切換:將cpu切換到另一個進程需要將當(dāng)前進程的狀態(tài)保存并恢復(fù)另一個進程的狀態(tài)缚柳,這一任務(wù)成為上下文切換埃脏。
5、進程上下文存儲在PCB中喂击,它包含cpu寄存器的值剂癌,進程狀態(tài)和內(nèi)存管理信息等。

進程間通信:
1翰绊、獨立進程:如果一個進程不能被其他進程影響且不能影響其他進程佩谷,則它是獨立進程;如果一個進程能被其他進程影響或影響其他進程监嗜,則為協(xié)作進程谐檀。
2、與其它進程共享數(shù)據(jù)的進程是協(xié)作進程裁奇。
3桐猬、進程間通信:
(1)共享內(nèi)存:協(xié)作進程通過在共享內(nèi)存中讀寫數(shù)據(jù)交換信息
(2)進程間通信機制(Interprocess communication ,IPC)
4、共享內(nèi)存:通信進程建立共享內(nèi)存區(qū)域刽肠,其它進程將該區(qū)域放到自己的地址空間上溃肪。
5免胃、為了說明協(xié)作進程這一概念,可研究生產(chǎn)者消費者問題惫撰。

線程:
1羔沙、線程是CPU使用的基本單元,由線程ID厨钻,程序計數(shù)器扼雏,寄存器集合和棧組成。它與進程中的其它線程共享代碼段夯膀、數(shù)據(jù)和其它系統(tǒng)資源诗充。
2、線程的優(yōu)點:
(1)響應(yīng)度高
(2)資源共享
(3)經(jīng)濟
(4)多處理器體系結(jié)構(gòu)的利用
3诱建、線程分為用戶級的用戶線程和內(nèi)核線程蝴蜓。

cpu調(diào)度:
1、進程執(zhí)行有cpu區(qū)間和I/O等待周期組成涂佃。
2励翼、每當(dāng)CPU空閑時,操作系統(tǒng)就必須從就緒隊列中選擇一個進程來執(zhí)行辜荠。進程選擇由短期調(diào)度程序來執(zhí)行汽抚,從內(nèi)存中選擇進程并為之分配CPU區(qū)間。
3伯病、分派程序是一個模塊造烁,用于將cpu的控制分派給短期調(diào)度程序選擇的進程,其功能包括切換上下文午笛,切換到用戶模式惭蟋,跳轉(zhuǎn)到用戶程序的合適位置,以重新啟動程序药磺。
4告组、衡量cpu調(diào)度算法的標(biāo)準(zhǔn):
(1)CPU使用率
(2)吞吐量:cpu在單位時間內(nèi)完成進程的數(shù)量
(3)周轉(zhuǎn)時間:從進程提交到進程完成的時間稱為周轉(zhuǎn)時間。周轉(zhuǎn)時間包括等待進入內(nèi)存癌佩、在就緒隊列中等待木缝、在cpu上執(zhí)行和I/O執(zhí)行的時間。
(4)等待時間:由于調(diào)度算法并不影響進程的cpu執(zhí)行和I/O等待時間围辙,所以用等待時間衡量我碟,即進程在就緒隊列中的等待時間。
(5)響應(yīng)時間:從提交請求到產(chǎn)生響應(yīng)的第一時間姚建。
5矫俺、cpu調(diào)度算法:
(1)先到先服務(wù)調(diào)度:先請求cpu的進程分配到cpu。會產(chǎn)生護航效果(所有進程都在等待一個大進程釋放cpu)
(2)最短作業(yè)優(yōu)先調(diào)度(sjf):將cpu控制提供給具有最短cpu區(qū)間的進程。若可搶占厘托,則稱為最短剩余時間優(yōu)先調(diào)度友雳。
(3)優(yōu)先級調(diào)度:每一個進程與一個優(yōu)先級關(guān)聯(lián),具備最高優(yōu)先級的進程會分配到cpu催烘。會遇到無窮阻塞問題沥阱,解決辦法之一是老化。
(4)輪轉(zhuǎn)法調(diào)度:類似于FCFS調(diào)度伊群,增加了搶占以切換進程、定義一個較小時間單元策精,稱為時間片舰始。cpu調(diào)度程序循環(huán)就緒隊列,為每個進程分配不超過一個時間片的cpu咽袜。
(5)多級隊列調(diào)度:將就緒隊列分為多個獨立隊列丸卷,每個隊列有自己的調(diào)度算法。隊列之間可以按優(yōu)先級劃分询刹,也可以按照時間片劃分谜嫉。
(6)多級反饋隊列調(diào)度:允許進程在隊列之間移動。

進程同步:
1凹联、競爭條件:多個進程同時訪問和操作統(tǒng)一數(shù)據(jù)且執(zhí)行結(jié)果與訪問的特定順序有關(guān)沐兰,稱為競爭條件。
2蔽挠、臨界區(qū)問題的三項條件:互斥住闯,前進,有限等待澳淑。peterson算法比原。
3、信號量:可以用來控制訪問具有若干個實例的某種資源杠巡。自旋鎖:忙等待量窘。

死鎖:
1、死鎖的四個條件:互斥氢拥、占有并等待蚌铜、循環(huán)等待、非搶占兄一。同時滿足則有可能出現(xiàn)死鎖厘线。
2、若資源分配圖中出現(xiàn)環(huán)出革,則有可能發(fā)生死鎖造壮。
3、死鎖的處理辦法:避免、檢測并恢復(fù)耳璧、忽視成箫。
4、資源分配圖算法
5旨枯、銀行家算法

內(nèi)存管理:
1蹬昌、內(nèi)存由很大一組字或者字節(jié)組成,每一組字或者字節(jié)都有自己的地址攀隔。cpu根據(jù)程序計數(shù)器的值從內(nèi)存中提取指令皂贩。
2、通過基地址寄存器和界限地址寄存器確保進程具有獨立的內(nèi)存空間昆汹。
3明刷、將指令和數(shù)據(jù)綁定到內(nèi)存地址分為如下三種情況:
(1)編譯時,生成絕對代碼
(2)加載時满粗,生成可重定位代碼
(3)執(zhí)行時辈末,需要特定硬件
4、邏輯地址:cpu所生成的地址映皆。由程序生成的邏輯地址的集合稱為邏輯地址空間挤聘。
物理地址:內(nèi)存單元中的地址,即加載到內(nèi)存地址寄存器中的地址捅彻。邏輯地址空間對應(yīng)的物理地址的集合稱為物理地址空間组去。
5、虛擬地址到物理地址的映射是由內(nèi)存管理單元管理的沟饥,也就是memory_management_unit.
6添怔、動態(tài)加載:子程序以可重定位的形式保存在磁盤中。使用時才加載子程序贤旷,可獲得更好的內(nèi)存空間使用率广料。
7、內(nèi)存通常分為兩部分:一個用于駐留操作系統(tǒng)幼驶,一個用于用戶進程
8艾杏、連續(xù)內(nèi)存分配:每個進程位于一個連續(xù)的內(nèi)存區(qū)域
9、動態(tài)存儲分配的常用方法:首次適應(yīng)盅藻,最佳適應(yīng)购桑,最差適應(yīng)
10、首次適應(yīng)算法和最佳適應(yīng)算法都有外部碎片問題
11氏淑、解決外部碎片的方法:
(1)緊縮:要求執(zhí)行時綁定指令和數(shù)據(jù)到內(nèi)存勃蜘,且開銷大
(2)允許物理空間地址非連續(xù):分頁和分段
12、實現(xiàn)分頁:將物理內(nèi)存分為固定大小的塊假残,稱為幀缭贡;將邏輯內(nèi)存分為固定大小的塊炉擅,稱為頁。當(dāng)需要執(zhí)行進程時阳惹,將頁從備份存儲調(diào)用到可用的內(nèi)存幀中谍失。分頁增加了切換時間。
13莹汤、當(dāng)頁變表過大以至于無法在內(nèi)存中連續(xù)地分配該頁表時快鱼,可以采用多級頁表。
14纲岭、分段:分段是支持用戶視角的內(nèi)存管理方案抹竹。通過段名稱和偏移來確定段的地址。
15止潮、段表的每個地址都有段基地址和段界限柒莉。

虛擬內(nèi)存:
1、通常情況下沽翔,并不需要將進程全部放入內(nèi)存中,且不是同時需要全部的內(nèi)容窿凤。比如仅偎,錯誤處理的代碼就很少使用;某些功能很少用到雳殊;
2橘沥、虛擬內(nèi)存將用戶邏輯內(nèi)存與物理內(nèi)存分開,為用戶提供了巨大的虛擬內(nèi)存夯秃。
3座咆、按需調(diào)頁:在需要時才將進程對應(yīng)的頁調(diào)入內(nèi)存中。
4仓洼、當(dāng)換入進程時介陶,調(diào)頁程序會推測在換出進程前將用到的頁。并非將整個進程調(diào)入內(nèi)存空間色建,而是將必需的頁調(diào)入內(nèi)存哺呜。這樣,調(diào)頁程序就避免了讀入不使用的頁箕戳,減少了交換時間和占用的物理內(nèi)存某残。
5、若進程試圖訪問未調(diào)入內(nèi)存的頁陵吸,也就是訪問標(biāo)記為無效的頁玻墅,則會產(chǎn)生也錯誤陷阱(page-fault trap)
6、寫時復(fù)制:可以快速創(chuàng)建子進程壮虫,且最小化創(chuàng)建新進程需要分配的頁的數(shù)量澳厢。
7、內(nèi)存的過度分配:在多道程序系統(tǒng)中,有可能發(fā)生頁錯誤后赏酥,卻沒有空閑幀用于存儲頁喳整。
8、可以使用修改位(臟位)降低額外開銷裸扶。若某頁被選中為替換頁框都,且其修改位表明并未修改過,則直接覆蓋即可呵晨。
9魏保、為了實現(xiàn)按需調(diào)頁,需要幀分配算法和頁置換算法摸屠。
10谓罗、頁置換算法:
(1)FIFO:
belady異常:隨著幀數(shù)的增加,頁錯誤率有可能會增高季二。
(2)最優(yōu)置換算法:置換最長時間不會被使用的頁
(3)LRU置換:最長時間未被使用的頁將被置換檩咱,為了給頁幀確定排序序列,可以使用計數(shù)器或者棧胯舷。
11刻蚯、幀分配:
(1)平均分配:給每個進程分配相同多的幀
(2)比例分配:根據(jù)進程大小,將內(nèi)存分配給每個進程桑嘶。
12炊汹、全局分配與局部分配:
(1)全局置換:允許進程從所有幀集合選擇一個置換幀,而不管該幀是否已經(jīng)分配給其它進程逃顶。
(2)局部置換:進程僅從自己的分配幀中進行選擇讨便。
13、系統(tǒng)顛簸:頻繁的頁錯誤導(dǎo)致頻繁的調(diào)頁以政,稱為顛簸霸褒。如果一個進程的換頁時間多于執(zhí)行時間,那么該進程就在顛簸妙蔗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末傲霸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子眉反,更是在濱河造成了極大的恐慌昙啄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寸五,死亡現(xiàn)場離奇詭異梳凛,居然都是意外死亡,警方通過查閱死者的電腦和手機梳杏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門韧拒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淹接,“玉大人,你說我怎么就攤上這事叛溢∷艿浚” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵楷掉,是天一觀的道長厢蒜。 經(jīng)常有香客問我,道長烹植,這世上最難降的妖魔是什么斑鸦? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮草雕,結(jié)果婚禮上巷屿,老公的妹妹穿的比我還像新娘。我一直安慰自己墩虹,他們只是感情好嘱巾,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诫钓,像睡著了一般浓冒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尖坤,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音闲擦,去河邊找鬼慢味。 笑死,一個胖子當(dāng)著我的面吹牛墅冷,可吹牛的內(nèi)容都是我干的纯路。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼寞忿,長吁一口氣:“原來是場噩夢啊……” “哼驰唬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腔彰,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤叫编,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霹抛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搓逾,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年杯拐,在試婚紗的時候發(fā)現(xiàn)自己被綠了霞篡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片世蔗。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖朗兵,靈堂內(nèi)的尸體忽然破棺而出污淋,到底是詐尸還是另有隱情,我是刑警寧澤余掖,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布寸爆,位于F島的核電站,受9級特大地震影響浊吏,放射性物質(zhì)發(fā)生泄漏而昨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一找田、第九天 我趴在偏房一處隱蔽的房頂上張望歌憨。 院中可真熱鬧,春花似錦墩衙、人聲如沸务嫡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽心铃。三九已至,卻和暖如春挫剑,著一層夾襖步出監(jiān)牢的瞬間去扣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工樊破, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留愉棱,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓哲戚,卻偏偏與公主長得像奔滑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子顺少,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容