欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      操作系統(tǒng)總結(jié)(5篇可選)

      時間:2019-05-12 06:19:47下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《操作系統(tǒng)總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《操作系統(tǒng)總結(jié)》。

      第一篇:操作系統(tǒng)總結(jié)

      第一部分概述

      一、導(dǎo)論

      1.操作系統(tǒng)做什么

      ① 馮諾依曼體系結(jié)構(gòu) ② OS角色:對上:控制程序正確執(zhí)行,使用方便;對下:資源分配器 ③ 核心功能:進程管理,內(nèi)存管理,文件管理,輸入輸出,保護和安全 2.計算機系統(tǒng)組織

      ① 中斷 ② 存儲結(jié)構(gòu):寄存器→高速緩存→主存→電子磁盤→光盤→磁帶 ③ I/O結(jié)構(gòu):I/O的同步、異步;慢速設(shè)備(中斷)快速設(shè)備(DMA)3.操作系統(tǒng)結(jié)構(gòu):多道(使CPU總有一個任務(wù)執(zhí)行)、分時(高頻率切換任務(wù))4.進程管理

      ① 進程有其生命周期,進程是執(zhí)行中的程序 ② 管理活動:創(chuàng)建或刪除用戶或系統(tǒng)進程;掛起或重啟進程;防死鎖;提供進程同步、通信機制 ③ 目的:使進程可以運行,相互協(xié)調(diào)不死鎖 5.內(nèi)存管理

      ① 目標(biāo):內(nèi)核健壯 ② 保護方法:獨立操作模式:用戶模式,內(nèi)核模式;計數(shù)器定時中斷防止死循環(huán) 6.存儲管理

      ① 解決問題:速度匹配→緩存(緩存的命中率)② 等級問題:一致性;多處理器下各緩存的一致性

      二、操作系統(tǒng)結(jié)構(gòu)

      1.操作系統(tǒng)服務(wù):用戶界面,程序執(zhí)行,I/O操作,文件系統(tǒng)操作,通信,錯誤檢測,資源分配,統(tǒng)計,保護和安全。

      2.操作系統(tǒng)的用戶界面:命令解釋程序,圖形用戶界面

      3.系統(tǒng)調(diào)用類型:進程控制,文件管理,設(shè)備管理,信息維護,通信

      4.系統(tǒng)程序分類:文件管理,狀態(tài)信息,文件修改,程序設(shè)計語言支持,程序裝入和執(zhí)行,通信,系統(tǒng)工具,應(yīng)用程序。5.操作系統(tǒng)結(jié)構(gòu):

      ① 簡單結(jié)構(gòu)(MS-DOS):小空間多功能,應(yīng)用程序直接操作硬件,不安全,無模塊,接口和功能層次沒有區(qū)分 ② 分層法:難劃分,效率低,但是構(gòu)造和調(diào)試簡單化 ③ 微內(nèi)核:包括最小的進程和內(nèi)存管理以及通信,便于擴充操作系統(tǒng)。④ 模塊化:動態(tài)加載模塊,允許內(nèi)核提供核心服務(wù),也能動態(tài)的實現(xiàn)特定的功能 ⑤ 組合結(jié)構(gòu)

      第二部分進程管理

      一、進程

      1.進程的概念

      ① 進程通常包括:程序計數(shù)器,棧,數(shù)據(jù)段 ② 進程狀態(tài):新建,運行,等待,就緒,終止 ③ 進程控制塊PCB:進程狀態(tài),程序計數(shù)器,CPU寄存器,CPU調(diào)度信息,內(nèi)存管理信息,記賬信息,I/O狀態(tài)信息 ④ 2.進程調(diào)度

      ① 調(diào)度隊列:作業(yè)隊列,就緒隊列,設(shè)備隊列

      P80 ② 調(diào)度程序:長期調(diào)度程序(作業(yè)調(diào)度程序):從作業(yè)池中選擇進程,并裝入內(nèi)存準(zhǔn)備執(zhí)行。短期調(diào)度程序(CPU調(diào)度程序):從準(zhǔn)備執(zhí)行的進程中選擇進程,并為之分配CPU時間。中期調(diào)度程序:能將進程從內(nèi)存中移出。

      長短期的區(qū)別是執(zhí)行頻率;長期調(diào)度控制多道程序設(shè)計的程度,中期調(diào)度可以降低多道。③ I/O綁定進程,CPU綁定進程 ④ 上下文切換:將CPU切換到另一個進程需要保存當(dāng)前進程的狀態(tài)和恢復(fù)另一進程的狀態(tài)。

      3.進程操作

      ① 進程創(chuàng)程:創(chuàng)建新進程的執(zhí)行方式(父子進程并發(fā)執(zhí)行;父進程等待直到某個或全部子進程執(zhí)行完畢)

      新進程地址空間(子進程是父進程的副本;子進程裝入另一個新程序)資源共享(所有/子集/不共享)② 進程終止

      父進程終止子進程的原因(子進程使用了超過它分配的資源;分配給子程序的任務(wù)不需要了;父進程結(jié)束)

      4.進程間通信

      ① 通信基本模型:共享內(nèi)存,消息傳遞 ② 共享內(nèi)存:消費者可能等待生產(chǎn)者;無限緩沖區(qū),有限緩沖區(qū)的區(qū)別 ③ 消息傳遞:

      命名:直接通信(對稱尋址:接受者命名發(fā)送者;非對稱尋址:接受者不需要命名發(fā)送者)間接通信(郵箱、端口的參與)同步:阻塞與非阻塞(發(fā)送,接收),同步與異步 緩沖:零容量(無緩沖);有限容量、無限容量(自動緩沖)

      5.客戶機-服務(wù)器通信:套接字SOCKET,RPC遠程調(diào)用,RMI遠程方法調(diào)用

      二、線程

      1.概述:多線程優(yōu)點:響應(yīng)度高,資源共享,經(jīng)濟,多處理器體系結(jié)構(gòu)的利用

      2.多線程模型:用戶層的用戶線程或內(nèi)核層的內(nèi)核線程,用戶線程受內(nèi)核支持,而無需內(nèi)核管理,而內(nèi)核線程由操作系統(tǒng)直接支持和管理,這兩種方法支持多線程。① 多對一模型(效率比較高,阻塞系統(tǒng)調(diào)用的后果)② 一對一模型(更好的并發(fā)功能,缺點是創(chuàng)建一個用戶線程就需要一個內(nèi)核進程)③ 多對多模型(用戶可以創(chuàng)建任意多的線程;二級模型=多對多+一對一)3.多線程問題

      ① 系統(tǒng)調(diào)用fork().exex()② 線程取消異步取消(立即終止),延遲取消(檢查是否應(yīng)該終止)③ 信號處理:信號必須有一個處理程序 ④ 線程池:優(yōu)點(處理請求速度快,線程數(shù)量可控制)

      三、CPU調(diào)度

      1.基本概念

      ① CPU區(qū)間和I/O區(qū)間的概念 ② 搶占與非搶占調(diào)度的概念(發(fā)生在:一個進程從運行切換到等待、運行切換到就緒、等待切換到就緒、以及終止,1,4非搶占,2,3搶占)2.調(diào)度準(zhǔn)則:CPU利用率(使CPU盡量忙),吞吐量(測量工作的方法),周轉(zhuǎn)時間(從進程提交到完成的時間),等待時間,響應(yīng)時間 3.調(diào)度算法

      ① 先到先服務(wù)調(diào)度FCFS(非搶占的)② 最短作業(yè)優(yōu)先調(diào)度SJF(搶占,最優(yōu)算法,難知道下一CPU區(qū)間長度,用于長期調(diào)度)③ 最短剩余時間優(yōu)先調(diào)度SRTF(強占式的SJF,適合長期調(diào)度)④ 優(yōu)先級調(diào)度(問題:無窮阻塞或饑餓,老化來解決;非搶占方式不用占用CPU切換)⑤ 輪轉(zhuǎn)調(diào)度RR(專為分時系統(tǒng)設(shè)計,是可搶占的,時間片過大變?yōu)镕CFS,時間片過小等待時間段,但是切換頻繁)⑥ 多級隊列調(diào)度(前臺與后臺的調(diào)度算法不同,RR與FCFS)? ⑦ 多級反饋隊列調(diào)度 ⑧ 實時調(diào)度:硬實時(在特定硬件上保證時間),軟實時:盡力而為,優(yōu)先級不變,沒有饑餓現(xiàn)象

      4.算法評估

      ① 確定性模型甘特圖 ② 排隊模型 N=入*W(N平均隊列長度,W為隊列的平均等待時間,入為新進程到達隊列的平均到達率)③ 模擬 ④ 實現(xiàn)

      四、進程同步

      1. 背景:競爭條件:共享內(nèi)存,共享變量 2. 臨界區(qū)問題

      ① 臨界區(qū)解決方案:進入去,臨界區(qū),退出區(qū),剩余區(qū) ② 效果:互斥,有空讓進,有限等待 ③ 證明:1.互斥,臨界區(qū)一個時間只能有一個進程2.前進,臨界區(qū)內(nèi)無進程執(zhí)行,那么只有那些不在剩余區(qū)內(nèi)執(zhí)行的進程可參加選擇,這種選擇不能無限延遲3.有限等待,從一個進程做出進入臨界區(qū)的請求,知道該請求允許為止,其他進程允許進入其臨界區(qū)的次數(shù)有上限。④ PETERSON算法

      3. 信號量:計數(shù)信號量,二進制信號量

      ① 技術(shù)信號量用于控制訪問:當(dāng)每個線程需要使用資源時,需要對該信號量執(zhí)行acquire()操作,當(dāng)線程釋放資源時,需要對該信號執(zhí)行release()操作。② 用信號量解決同步問題

      4. 管程:管程結(jié)構(gòu)確保一次只有一個進程能在管程內(nèi)活動 5. 經(jīng)典同步問題

      ① 生產(chǎn)者消費者問題 ② 讀者寫者問題 ③ 哲學(xué)家吃飯問題

      五、死鎖

      1.死鎖特征

      ① 必要條件:互斥,占有并等待,非搶占,循環(huán)等待 ② 資源分配圖:分配圖沒有環(huán)則沒有死鎖,有環(huán)則有死鎖;有環(huán)則可能有死鎖。2.死鎖預(yù)防

      ① 互斥:通常不能通過否定互斥條件來預(yù)防死鎖:有的資源本身就是非共享的。② 占有并等待:協(xié)議一:每個進程在執(zhí)行前申請并獲得所有資源;協(xié)議二,允許進程在沒有資源時才可以申請資源。協(xié)議缺點:資源利用率低,可能發(fā)生饑餓。③ 非搶占:協(xié)議:如果一個進程占有資源并申請另一個不能立即分配的資源,那么其現(xiàn)在已分配的資源都可被搶占。④ 循環(huán)等待:對所有資源類型進行完全排序,且要求每個進程按遞增順序來申請資源。

      3.死鎖避免

      ① 安全狀態(tài):如果系統(tǒng)能按某個順序為每個進程分配資源并能避免死鎖,那么系統(tǒng)狀態(tài)就是安全的。② 單實例:資源分配圖:申請邊,分配邊,需求邊 ③ 多實例:銀行家算法Available(向量),Max(矩陣),Allocation(矩陣),Need(矩陣), 4.死鎖檢測

      ① 單實例:等待圖:當(dāng)且僅當(dāng)?shù)却龍D中有一個環(huán)時,系統(tǒng)存在死鎖 ② 多實例:類似銀行家算法 5.死鎖恢復(fù)

      ① 進程終止:終止所有死鎖進程;一次只終止一個進程,直到取消死鎖循環(huán)為止 ② 資源搶占:問題:選擇一個犧牲品;回滾;饑餓

      第三部分內(nèi)存管理

      一、內(nèi)存管理

      1.背景

      ① 地址綁定:編譯時(編譯時就知道進程將在內(nèi)存中的駐留地址,那么就可以生成絕對代碼),加載時(生成可重定位的代碼),運行時(如果進程在執(zhí)行時可以從一個內(nèi)存段移到另一個內(nèi)存段,那么綁定必須延遲到執(zhí)行時才進行)② 邏輯地址(CPU所生成的地址)物理地址(內(nèi)存單元所看到的地址)③ 動態(tài)加載(子程序只在調(diào)用時加載,優(yōu)點不用的子程序絕不會被加載)④ 動態(tài)鏈接與共享庫(將連接延遲到運行時)2.交換(沒看)

      3.連續(xù)內(nèi)存分配:單分區(qū),多分區(qū)

      4.非連續(xù)內(nèi)存分配:分頁(分頁技術(shù)不會產(chǎn)生外部碎片)5.動態(tài)存儲分配問題:首次適應(yīng),最佳適應(yīng),最差適應(yīng) 6.頁表結(jié)構(gòu):層次頁表,哈希頁表,反向頁表

      二、虛擬內(nèi)存

      1.背景

      ① 多道盡可能多的程序,這也是內(nèi)存管理的目標(biāo) ② 虛擬內(nèi)存好處:可以運行比物理內(nèi)存大的程序;更快的啟動和響應(yīng)(載入更快);更多的多道;更容易的共享文件盒地址空間;更少的輸入輸出。

      2.按需調(diào)頁:在需要時才調(diào)入頁

      ① 有效位-無效位來來確定頁是否在內(nèi)存 ② 有幀就加入,無幀就換頁,頁錯誤處理流程:檢查內(nèi)部表確定引用是否合法→非法則終止,合法則調(diào)入→找到空閑幀,裝入內(nèi)存→修改內(nèi)部表→重啟指令 ③ 按需調(diào)頁的有效訪問時間:effective access time=(1-p)*ma+p*處理頁錯誤的時間 3.頁面置換(引用串)

      ① FIFO 先入先出 ② 最優(yōu)算法:向后看,換頁的時候看內(nèi)存中哪個頁最晚用;是所有算法中產(chǎn)生頁錯誤最低的算法;問題:需要引用串的未來知識 ③ LRU最近最少使用算法:往前看,內(nèi)存中哪頁在列表序列中離的最遠,無Belady異常 ④ 算法實現(xiàn):計數(shù)器(最近最少使用:換計數(shù)器值最小的)代價大:系統(tǒng)級,可能溢出,一定會寫全表

      頁碼堆棧:每當(dāng)引用一個頁,該頁就從棧中刪除并放在棧頂。嚴(yán)格實現(xiàn),但是代價高。

      二次機會:引用位,引用時改為1,;換頁時,是1則置零,是0則換 計數(shù)算法:LFU最不經(jīng)常使用,MFU最經(jīng)常使用(可采用老化)

      4.幀分配

      ① 分配策略限制:所分配的幀不能超過可用幀的數(shù)量,大于最小需求 ② 每個進程幀的最少數(shù)量是由體系結(jié)構(gòu)決定的,而最大數(shù)量幀是由可用物理內(nèi)存決定的。③ 當(dāng)指令完成之前出現(xiàn)頁錯誤,該指令必須重新執(zhí)行 ④ 幀分配方法:

      固定分配:平均分配、按比例分配 優(yōu)先級分配:全局置換(幀數(shù)可變),局部置換(固定);全局置換算法的一個問題是進程不能控制其頁錯誤率,但是全局置換通常會有更好的系統(tǒng)吞吐量,且更為常用。

      5.系統(tǒng)顛簸

      ① 顛簸產(chǎn)生的原因:搶幀→I/O上升→CPU使用率降低→多道繼續(xù)增加→忙于換頁 ② 工作集合策略防止了顛簸,并盡可能的提高了多道程序的程度,可以通過頁錯誤頻率PFF來直接測量和控制頁錯誤以防止顛簸。上限之上分配更多,下限之下,減少幀數(shù)

      6.其他問題

      ① 預(yù)調(diào)頁關(guān)鍵問題:采用預(yù)調(diào)頁的成本是否小于處理響應(yīng)頁錯誤的成本。② 頁大小問題:最佳頁大小的選擇,大頁,小頁 ③ 優(yōu)化程序結(jié)構(gòu)

      第四部分存儲管理

      一、文件系統(tǒng)接口

      1.文件概念

      ① 文件是邏輯外存的最小分配單元,即數(shù)據(jù)除非在文件中,否則不能寫到內(nèi)存中。② 文件操作:寫,讀,重定位,刪除,截短 ③ 文件加鎖:共享鎖,專用鎖;強制,建議文件加鎖機制 2.訪問方法:順序訪問,直接訪問,其他方法(索引)3.目錄結(jié)構(gòu)

      ① 目錄操作:創(chuàng)建文件,刪除文件,遍歷目錄,重命名文件,跟蹤文件系統(tǒng) ② 評價目錄結(jié)構(gòu):命名(不同文件同名),分組(同一文件不同命名)③ 單層結(jié)構(gòu)目錄(命名,分組均無),雙層結(jié)構(gòu)目錄(可命名不可分組),樹狀結(jié)構(gòu)(絕對,相對路徑;可命名分組),無環(huán)圖目錄(硬鏈接,軟鏈接),通用圖目錄

      二、文件系統(tǒng)實現(xiàn)

      1.文件系統(tǒng)結(jié)構(gòu):應(yīng)用程序→邏輯文件系統(tǒng)→文件組織模塊→基本文件系統(tǒng)→I/O控制→設(shè)備

      2.目錄實現(xiàn):線性列表(編程簡單,運行費時,查找文件需要線性搜索)

      哈希表(采取策略避免沖突)

      3.分配方法

      ① 連續(xù)分配:每個文件在磁盤上占有一組連續(xù)的塊;困難時為新文件找到空間,外部碎片問題也可能很大,確定文件分配多大空間,② 鏈接分配:解決了連續(xù)分配的所有問題;必須順序訪問文件,指針需要空間,由于指針分配在整個磁盤,可靠性就成了一個問題。

      FAT文件分配表:改善了隨機訪問時間,但是需要大量磁頭尋道時間 ③ 索引分配:把所有指針都放在一起,構(gòu)成索引塊;支持直接訪問,且沒有外部碎片問題,但是會浪費空間;索引塊分多大是個問題 鏈接方案(一個索引塊可以指向另一索引塊構(gòu)成鏈接)

      多層索引(第一個索引塊指向第二個索引塊,第二個指向文件數(shù)據(jù)塊)組合方案P404 N級間接塊(計算)

      4.空閑空間管理:為向量(1空0滿)塊號碼計算:(值為0的數(shù)字)*(一個字的位數(shù))+第一個值為1的位的偏移;鏈表(所有空閑的塊用鏈表鏈接起來);組(將N個空閑塊的地址存儲在第一個空閑塊中);計數(shù)()

      第二篇:操作系統(tǒng)總結(jié)

      什么是OS,OS有哪幾個特征?其最基本的特征是什么?

      答:操作系統(tǒng)是為了達到方便用戶和提高利用率的目的而設(shè)計的,控制和管理計算機硬件和軟件資源,合理的組織計算機工作流程的程序的集合它具有并發(fā),共享,虛擬,異步性四個基本特征。其中最基本的特征為并發(fā)性

      2什么是進程及與程序的區(qū)別與聯(lián)系,為什么PCB是進程存在的唯一標(biāo)志?

      進程是程序的一次執(zhí)行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。

      區(qū)別:(1)進程是動態(tài)的,程序是靜態(tài)的。(2)進程具有并發(fā)性,而程序沒有(3)進程是資源分配和處理機調(diào)度的獨立單位,其并發(fā)性受系統(tǒng)制約(4)一個程序多次執(zhí)行,對應(yīng)多個進程,不同的進程可以包含同一程序PCB:因為在進程的整個生命期中,系統(tǒng)總是通過PCB對進程進行控制的3處理機三級調(diào)度分別完成什么工作?

      (1)高級調(diào)度:就是作業(yè)調(diào)度,用于決定把外存上處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為它們創(chuàng)建進程,分配必要的資源,然后,再將新創(chuàng)建的進程排在就緒隊列上,準(zhǔn)備執(zhí)行

      (2)低級調(diào)度:就是進程調(diào)度,它決定就緒隊列中的哪個進程將獲得處理機,然后由分派程序執(zhí)行把處理機分配給該進程的操作

      (3)中級調(diào)度:實際上就是存儲器管理中的對換功能試說明引起進程調(diào)度的時機是什么?

      (1)進程完畢(2)時間片用完(3)I/O請求發(fā)生某個事件(4)原語:wait操作,阻塞(5)高優(yōu)先者進入 5什么是臨界資源和臨界區(qū)?

      一次僅允許一個進程訪問的資源稱為臨界資源。訪問臨界資源的代碼段稱為臨街區(qū)

      6試修改下面生產(chǎn)者---消費問題中,如果將兩個wait操作即wait(full)和wati(mutex)互換 位置,或者將signal(mutex)與signal(full)互換位置,結(jié)果會如何?

      (1)wait(full)和wait(mutex)互換位置后,因為mutex在這兒是全局變量,執(zhí)行完wait(mutex),則mutex賦值為0,倘若full 也為0,則該生產(chǎn)者進程就會轉(zhuǎn)入進程鏈表進行等待,而生產(chǎn)者進程會因全局變量mutex為0 而進行等待,使full 始終為0,這樣就形成了死鎖.(2)而signal(mutex)與signal(full)互換位置后,從邏輯上來說應(yīng)該是一樣的.7什么是死鎖?死鎖產(chǎn)生的有哪些

      死鎖是因多個進程因競爭資源而造成的一種僵局(1)互斥條件:一個資源每次只能被一個進程使用。(2)請求與保持條件:一個進程因請求資源而阻塞時,對已獲得的資源保持不放。

      (3)不剝奪條件:進程已獲得的資源,在末使用完之前,不能強行剝奪。(4)環(huán)路等待條件:若干進程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。同步機制應(yīng)遵循的基本準(zhǔn)則是什么?

      (1)空閑讓進(2)忙則等待(3)有限等待(4)讓權(quán)等待.程序有幾種連接方式

      (1)靜態(tài)鏈接方式(2)裝入時動態(tài)鏈接(3)運行時動態(tài)鏈接

      10什么是動態(tài)重定位方式及為什么要引入動態(tài)重定位方式及如何實現(xiàn)?

      程序和數(shù)據(jù)裝入內(nèi)存時需對目標(biāo)程序中的地址進行修改。這種把邏輯地址轉(zhuǎn)變?yōu)閮?nèi)存的物理地址的過程叫重定位

      11什么是分頁,什么是分段,在存儲管理中兩者的區(qū)別

      (1)分頁是將一個進程的邏輯地址空間分成若干大小相等的部分,每一部分稱作頁面,內(nèi)存劃分成與頁面大小相等的物理塊,進程的任何一頁可放入內(nèi)存的任何一個物理塊中,段是信息的邏輯單位,含有一組意義相對完整的信息,更好的來滿足用戶的需要。

      (2)分段是一組邏輯信息的集合,即一個作業(yè)中相對獨立的部分。多個段在內(nèi)存中占有離

      散的內(nèi)存單元,對每個段,在內(nèi)存占有一連續(xù)的內(nèi)存空間,其內(nèi)存的分配與回收同可變分區(qū)的內(nèi)存分配與回收辦法

      分頁與分段的主要區(qū)別是?

      (1)頁是信息的物理單位,分頁是為了實現(xiàn)離散分配方式,以消減內(nèi)存的外零頭,提高內(nèi)存的利用率(2)頁的大小固定,并且有系統(tǒng)決定,而段的長度不固定決定于用戶所編寫的程序(3)分頁作業(yè)的地址空間是一維的,段是二維的。

      12動態(tài)分區(qū)存儲管理中內(nèi)存的回收方式

      13.什么是對換,對換的分類及主要用途在進程換出時應(yīng)遵循什么原則

      對換是把內(nèi)存中暫時不能運行的進程或者暫時不用的程序和數(shù)據(jù)調(diào)出到外存上,以便騰出足夠的內(nèi)存空間,再把因具備運行條件的進程或者進程所需要的程序或數(shù)據(jù)調(diào)入內(nèi)存。

      分類:(1)整體對換(進程對換):以整個進程為單位(2)頁面對換(分段對換/部分對換):以頁和段為單位

      規(guī)則:內(nèi)存空間不夠用才換出。系統(tǒng)處于阻塞狀態(tài),且優(yōu)先級最低的進程最先換出。若換入:系統(tǒng)處于就緒狀態(tài),且優(yōu)先級最高的進程最先換入,直至無可換入的進程為止。

      14.什么是虛擬存儲器虛擬存儲器具有哪些特性,最基本的特性是什么?虛擬存儲器的容量受哪兩方面的限制?

      虛擬存儲器:是指具有請求調(diào)入功能和置換功能,能從邏輯上對內(nèi)存容量進行擴充的一種存儲器系統(tǒng)。

      特征:(1)離散性(最基本的特征)(2)多次性(3)對換性(4)虛擬性

      虛擬存儲器的容量主要受指令中表示地址的字長和外存的容量的限制。

      15.在沒有快表的分頁存儲管理中取一條指令需訪問幾次內(nèi)存及訪問內(nèi)存的目的,及具有快表的分頁存儲管理系統(tǒng)的地址變換過程。

      兩次。第一次:訪問內(nèi)存中的頁表,從中找到頁的物理塊號,再將塊號與頁內(nèi)偏移量W拼接,形成物理地址。第二次:從第一次所得的物理地址中獲得所需數(shù)據(jù)

      地址變換過程:CPU給出有效地址后,地址變換機構(gòu)將頁號與快表中的所有頁號進行比較,若有與此相匹配的頁號,則表示所訪問的頁在快表中,從中讀出物理塊號與頁內(nèi)地址相拼接,得到物理地址;若訪問的頁不在快表中,則要訪問在內(nèi)存中的頁表,從頁表中讀出物理塊號與頁內(nèi)地址相拼接,得到物理地址,同時,還應(yīng)將此頁表項寫入快表中,若此時快表已滿,則OS必須找到一個老的并且被認為不再需要的頁表項將它換出。

      16.什么是緊湊技術(shù)及為什么要引入

      緊湊:把原來多個分散的小分區(qū)拼接成一個大分區(qū)的方法

      引入:提高內(nèi)存的利用率,讓大容量的作業(yè)可以裝入并且減少零頭或碎片

      17程序的局部性原理是什么局限性的兩個主要表現(xiàn)方面

      局部性原理:(1)程序執(zhí)行時,除少部分轉(zhuǎn)移和過程調(diào)用指令外,大多數(shù)條件下任是順序執(zhí)行的(2)過程調(diào)用將會使程序的執(zhí)行軌跡由一部分區(qū)域轉(zhuǎn)至另一部分區(qū)域,但經(jīng)驗就看出過程調(diào)用的深度在大多數(shù)情況下不會超過5(3)程序中存在許多循環(huán)結(jié)構(gòu),這些雖然只能由少數(shù)指令構(gòu)成但它們將多次執(zhí)行(4)程序中還包括許多對數(shù)據(jù)結(jié)構(gòu)的處理

      主要表現(xiàn)在:(1)時間局限性(2)空間局限性

      18.什么是spooling技術(shù)spooling系統(tǒng)有哪些組成Spooling技術(shù)是對脫機輸入,輸出系統(tǒng)的模擬。

      組成:(1)輸入井和輸出井(2)輸出緩沖區(qū)和輸入緩沖區(qū)(3)輸入進程SPi和輸出進程SPo(4)請求打印隊列

      特點:(1)提高了I/O的速度(2)將獨占設(shè)備改為共享設(shè)備(3)實現(xiàn)了虛擬設(shè)備功能

      第三篇:操作系統(tǒng)總結(jié)

      第一部分概述

      一、導(dǎo)論

      1.操作系統(tǒng)做什么

      ① 馮諾依曼體系結(jié)構(gòu)

      ② OS角色:對上:控制程序正確執(zhí)行,使用方便;對下:資源分配器

      ③ 核心功能:進程管理,內(nèi)存管理,文件管理,輸入輸出,保護和安全

      2.計算機系統(tǒng)組織

      ① 中斷

      ② 存儲結(jié)構(gòu):寄存器→高速緩存→主存→電子磁盤→光盤→磁帶

      ③ I/O結(jié)構(gòu):I/O的同步、異步;慢速設(shè)備(中斷)快速設(shè)備(DMA)

      3.操作系統(tǒng)結(jié)構(gòu):多道(使CPU總有一個任務(wù)執(zhí)行)、分時(高頻率切換任務(wù))

      4.進程管理

      ① 進程有其生命周期,進程是執(zhí)行中的程序

      ② 管理活動:創(chuàng)建或刪除用戶或系統(tǒng)進程;掛起或重啟進程;防死鎖;提供進程

      同步、通信機制

      ③ 目的:使進程可以運行,相互協(xié)調(diào)不死鎖

      5.內(nèi)存管理

      ① 目標(biāo):內(nèi)核健壯

      ② 保護方法:獨立操作模式:用戶模式,內(nèi)核模式;計數(shù)器定時中斷防止死循環(huán)

      6.存儲管理

      ① 解決問題:速度匹配→緩存(緩存的命中率)

      ② 等級問題:一致性;多處理器下各緩存的一致性

      二、操作系統(tǒng)結(jié)構(gòu)

      1.操作系統(tǒng)服務(wù):用戶界面,程序執(zhí)行,I/O操作,文件系統(tǒng)操作,通信,錯誤檢測,資源分配,統(tǒng)計,保護和安全。

      2.操作系統(tǒng)的用戶界面:命令解釋程序,圖形用戶界面

      3.系統(tǒng)調(diào)用類型:進程控制,文件管理,設(shè)備管理,信息維護,通信

      4.系統(tǒng)程序分類:文件管理,狀態(tài)信息,文件修改,程序設(shè)計語言支持,程序裝入和

      執(zhí)行,通信,系統(tǒng)工具,應(yīng)用程序。

      5.操作系統(tǒng)結(jié)構(gòu):

      ① 簡單結(jié)構(gòu)(MS-DOS):小空間多功能,應(yīng)用程序直接操作硬件,不安全,無模塊,接口和功能層次沒有區(qū)分

      ② 分層法:難劃分,效率低,但是構(gòu)造和調(diào)試簡單化

      ③ 微內(nèi)核:包括最小的進程和內(nèi)存管理以及通信,便于擴充操作系統(tǒng)。

      ④ 模塊化:動態(tài)加載模塊,允許內(nèi)核提供核心服務(wù),也能動態(tài)的實現(xiàn)特定的功能 ⑤ 組合結(jié)構(gòu)

      第二部分進程管理

      一、進程

      1.進程的概念

      ① 進程通常包括:程序計數(shù)器,棧,數(shù)據(jù)段

      ② 進程狀態(tài):新建,運行,等待,就緒,終止

      ③ 進程控制塊PCB:進程狀態(tài),程序計數(shù)器,CPU寄存器,CPU調(diào)度信息,內(nèi)存

      管理信息,記賬信息,I/O狀態(tài)信息

      2.進程調(diào)度

      ① 調(diào)度隊列:作業(yè)隊列,就緒隊列,設(shè)備隊列P80

      ② 調(diào)度程序:長期調(diào)度程序(作業(yè)調(diào)度程序):從作業(yè)池中選擇進程,并裝入內(nèi)存

      準(zhǔn)備執(zhí)行。短期調(diào)度程序(CPU調(diào)度程序):從準(zhǔn)備執(zhí)行的進程中選擇進程,并為之分配CPU時間。中期調(diào)度程序:能將進程從內(nèi)存中移出。

      長短期的區(qū)別是執(zhí)行頻率;長期調(diào)度控制多道程序設(shè)計的程度,中期調(diào)度可以降低多道。

      ③ I/O綁定進程,CPU綁定進程

      ④ 上下文切換:將CPU切換到另一個進程需要保存當(dāng)前進程的狀態(tài)和恢復(fù)另一進

      程的狀態(tài)。

      3.進程操作

      ① 進程創(chuàng)程:創(chuàng)建新進程的執(zhí)行方式(父子進程并發(fā)執(zhí)行;父進程等待直到某個

      或全部子進程執(zhí)行完畢)

      新進程地址空間(子進程是父進程的副本;子進程裝入另一個新程序)

      資源共享(所有/子集/不共享)

      ② 進程終止

      父進程終止子進程的原因(子進程使用了超過它分配的資源;分配給子程序的任務(wù)不需要了;父進程結(jié)束)

      4.進程間通信

      ① 通信基本模型:共享內(nèi)存,消息傳遞

      ② 共享內(nèi)存:消費者可能等待生產(chǎn)者;無限緩沖區(qū),有限緩沖區(qū)的區(qū)別

      ③ 消息傳遞:

      命名:直接通信(對稱尋址:接受者命名發(fā)送者;非對稱尋址:接受者不需要命名發(fā)送者)間接通信(郵箱、端口的參與)

      同步:阻塞與非阻塞(發(fā)送,接收),同步與異步

      緩沖:零容量(無緩沖);有限容量、無限容量(自動緩沖)

      5.客戶機-服務(wù)器通信:套接字SOCKET,RPC遠程調(diào)用,RMI遠程方法調(diào)用

      二、線程

      1.概述:多線程優(yōu)點:響應(yīng)度高,資源共享,經(jīng)濟,多處理器體系結(jié)構(gòu)的利用

      2.多線程模型:用戶層的用戶線程或內(nèi)核層的內(nèi)核線程,用戶線程受內(nèi)核支持,而無

      需內(nèi)核管理,而內(nèi)核線程由操作系統(tǒng)直接支持和管理,這兩種方法支持多線程。① 多對一模型(效率比較高,阻塞系統(tǒng)調(diào)用的后果)

      ② 一對一模型(更好的并發(fā)功能,缺點是創(chuàng)建一個用戶線程就需要一個內(nèi)核進程)③ 多對多模型(用戶可以創(chuàng)建任意多的線程;二級模型=多對多+一對一)

      3.多線程問題

      ① 系統(tǒng)調(diào)用fork().exex()

      ② 線程取消異步取消(立即終止),延遲取消(檢查是否應(yīng)該終止)

      ③ 信號處理:信號必須有一個處理程序

      ④ 線程池:優(yōu)點(處理請求速度快,線程數(shù)量可控制)

      三、CPU調(diào)度

      1.基本概念

      ① CPU區(qū)間和I/O區(qū)間的概念

      ② 搶占與非搶占調(diào)度的概念(發(fā)生在:一個進程從運行切換到等待、運行切換到

      就緒、等待切換到就緒、以及終止,1,4非搶占,2,3搶占)

      2.調(diào)度準(zhǔn)則:CPU利用率(使CPU盡量忙),吞吐量(測量工作的方法),周轉(zhuǎn)時間(從

      進程提交到完成的時間),等待時間,響應(yīng)時間

      3.調(diào)度算法

      ① 先到先服務(wù)調(diào)度FCFS(非搶占的)

      ② 最短作業(yè)優(yōu)先調(diào)度SJF(搶占,最優(yōu)算法,難知道下一CPU區(qū)間長度,用于長

      期調(diào)度)

      ③ 最短剩余時間優(yōu)先調(diào)度SRTF(強占式的SJF,適合長期調(diào)度)

      ④ 優(yōu)先級調(diào)度(問題:無窮阻塞或饑餓,老化來解決;非搶占方式不用占用CPU

      切換)

      ⑤ 輪轉(zhuǎn)調(diào)度RR(專為分時系統(tǒng)設(shè)計,是可搶占的,時間片過大變?yōu)镕CFS,時間片

      過小等待時間段,但是切換頻繁)

      ⑥ 多級隊列調(diào)度(前臺與后臺的調(diào)度算法不同,RR與FCFS)?

      ⑦ 多級反饋隊列調(diào)度

      ⑧ 實時調(diào)度:硬實時(在特定硬件上保證時間),軟實時:盡力而為,優(yōu)先級不變,沒有饑餓現(xiàn)象

      4.算法評估

      ① 確定性模型甘特圖

      ② 排隊模型 N=入*W(N平均隊列長度,W為隊列的平均等待時間,入為新進程

      到達隊列的平均到達率)

      ③ 模擬

      ④ 實現(xiàn)

      四、進程同步

      1. 背景:競爭條件:共享內(nèi)存,共享變量

      2. 臨界區(qū)問題

      ① 臨界區(qū)解決方案:進入去,臨界區(qū),退出區(qū),剩余區(qū)

      ② 效果:互斥,有空讓進,有限等待

      ③ 證明:1.互斥,臨界區(qū)一個時間只能有一個進程2.前進,臨界區(qū)內(nèi)無進程執(zhí)行,那么只有那些不在剩余區(qū)內(nèi)執(zhí)行的進程可參加選擇,這種選擇不能無限延遲3.有限等待,從一個進程做出進入臨界區(qū)的請求,知道該請求允許為止,其他進程允許進入其臨界區(qū)的次數(shù)有上限。

      ④ PETERSON算法

      3. 信號量:計數(shù)信號量,二進制信號量

      ① 技術(shù)信號量用于控制訪問:當(dāng)每個線程需要使用資源時,需要對該信號量執(zhí)行

      acquire()操作,當(dāng)線程釋放資源時,需要對該信號執(zhí)行release()操作。

      ② 用信號量解決同步問題

      4. 管程:管程結(jié)構(gòu)確保一次只有一個進程能在管程內(nèi)活動

      5. 經(jīng)典同步問題

      ① 生產(chǎn)者消費者問題

      ② 讀者寫者問題

      ③ 哲學(xué)家吃飯問題

      五、死鎖

      1.死鎖特征

      ① 必要條件:互斥,占有并等待,非搶占,循環(huán)等待

      ② 資源分配圖:分配圖沒有環(huán)則沒有死鎖,有環(huán)則有死鎖;有環(huán)則可能有死鎖。

      2.死鎖預(yù)防

      ① 互斥:通常不能通過否定互斥條件來預(yù)防死鎖:有的資源本身就是非共享的。② 占有并等待:協(xié)議一:每個進程在執(zhí)行前申請并獲得所有資源;協(xié)議二,允許

      進程在沒有資源時才可以申請資源。協(xié)議缺點:資源利用率低,可能發(fā)生饑餓。③ 非搶占:協(xié)議:如果一個進程占有資源并申請另一個不能立即分配的資源,那

      么其現(xiàn)在已分配的資源都可被搶占。

      ④ 循環(huán)等待:對所有資源類型進行完全排序,且要求每個進程按遞增順序來申請

      資源。

      3.死鎖避免

      ① 安全狀態(tài):如果系統(tǒng)能按某個順序為每個進程分配資源并能避免死鎖,那么系統(tǒng)

      狀態(tài)就是安全的。

      ② 單實例:資源分配圖:申請邊,分配邊,需求邊

      ③ 多實例:銀行家算法Available(向量),Max(矩陣),Allocation(矩陣),Need(矩

      陣),4.死鎖檢測

      ① 單實例:等待圖:當(dāng)且僅當(dāng)?shù)却龍D中有一個環(huán)時,系統(tǒng)存在死鎖

      ② 多實例:類似銀行家算法

      5.死鎖恢復(fù)

      ① 進程終止:終止所有死鎖進程;一次只終止一個進程,直到取消死鎖循環(huán)為止 ② 資源搶占:問題:選擇一個犧牲品;回滾;饑餓

      第三部分內(nèi)存管理

      一、內(nèi)存管理

      1.背景

      ① 地址綁定:編譯時(編譯時就知道進程將在內(nèi)存中的駐留地址,那么就可以生

      成絕對代碼),加載時(生成可重定位的代碼),運行時(如果進程在執(zhí)行時可以從一個內(nèi)存段移到另一個內(nèi)存段,那么綁定必須延遲到執(zhí)行時才進行)

      ② 邏輯地址(CPU所生成的地址)物理地址(內(nèi)存單元所看到的地址)

      ③ 動態(tài)加載(子程序只在調(diào)用時加載,優(yōu)點不用的子程序絕不會被加載)④ 動態(tài)鏈接與共享庫(將連接延遲到運行時)

      2.交換(沒看)

      3.連續(xù)內(nèi)存分配:單分區(qū),多分區(qū)

      4.非連續(xù)內(nèi)存分配:分頁(分頁技術(shù)不會產(chǎn)生外部碎片)

      5.動態(tài)存儲分配問題:首次適應(yīng),最佳適應(yīng),最差適應(yīng)

      6.頁表結(jié)構(gòu):層次頁表,哈希頁表,反向頁表

      二、虛擬內(nèi)存

      1.背景

      ① 多道盡可能多的程序,這也是內(nèi)存管理的目標(biāo)

      ② 虛擬內(nèi)存好處:可以運行比物理內(nèi)存大的程序;更快的啟動和響應(yīng)(載入更快);

      更多的多道;更容易的共享文件盒地址空間;更少的輸入輸出。

      2.按需調(diào)頁:在需要時才調(diào)入頁

      ① 有效位-無效位來來確定頁是否在內(nèi)存

      ② 有幀就加入,無幀就換頁,頁錯誤處理流程:檢查內(nèi)部表確定引用是否合法→

      非法則終止,合法則調(diào)入→找到空閑幀,裝入內(nèi)存→修改內(nèi)部表→重啟指令 ③ 按需調(diào)頁的有效訪問時間:effective access time=(1-p)*ma+p*處理頁錯誤的時間

      3.頁面置換(引用串)

      ① FIFO 先入先出

      ② 最優(yōu)算法:向后看,換頁的時候看內(nèi)存中哪個頁最晚用;是所有算法中產(chǎn)生頁

      錯誤最低的算法;問題:需要引用串的未來知識

      ③ LRU最近最少使用算法:往前看,內(nèi)存中哪頁在列表序列中離的最遠,無Belady

      異常

      ④ 算法實現(xiàn):計數(shù)器(最近最少使用:換計數(shù)器值最小的)代價大:系統(tǒng)級,可

      能溢出,一定會寫全表

      頁碼堆棧:每當(dāng)引用一個頁,該頁就從棧中刪除并放在棧頂。嚴(yán)格實現(xiàn),但是代價高。

      二次機會:引用位,引用時改為1,;換頁時,是1則置零,是0則換

      計數(shù)算法:LFU最不經(jīng)常使用,MFU最經(jīng)常使用(可采用老化)

      4.幀分配

      ① 分配策略限制:所分配的幀不能超過可用幀的數(shù)量,大于最小需求

      ② 每個進程幀的最少數(shù)量是由體系結(jié)構(gòu)決定的,而最大數(shù)量幀是由可用物理內(nèi)存

      決定的。

      ③ 當(dāng)指令完成之前出現(xiàn)頁錯誤,該指令必須重新執(zhí)行

      ④ 幀分配方法:

      固定分配:平均分配、按比例分配

      優(yōu)先級分配:全局置換(幀數(shù)可變),局部置換(固定);全局置換算法的一個問題是進程不能控制其頁錯誤率,但是全局置換通常會有更好的系統(tǒng)吞吐量,且更為常用。

      5.系統(tǒng)顛簸

      ① 顛簸產(chǎn)生的原因:搶幀→I/O上升→CPU使用率降低→多道繼續(xù)增加→忙于換頁 ② 工作集合策略防止了顛簸,并盡可能的提高了多道程序的程度,可以通過頁錯

      誤頻率PFF來直接測量和控制頁錯誤以防止顛簸。上限之上分配更多,下限之下,減少幀數(shù)

      6.其他問題

      ① 預(yù)調(diào)頁關(guān)鍵問題:采用預(yù)調(diào)頁的成本是否小于處理響應(yīng)頁錯誤的成本。② 頁大小問題:最佳頁大小的選擇,大頁,小頁

      ③ 優(yōu)化程序結(jié)構(gòu)

      第四部分存儲管理

      一、文件系統(tǒng)接口

      1.文件概念

      ① 文件是邏輯外存的最小分配單元,即數(shù)據(jù)除非在文件中,否則不能寫到內(nèi)存中。② 文件操作:寫,讀,重定位,刪除,截短

      ③ 文件加鎖:共享鎖,專用鎖;強制,建議文件加鎖機制

      2.訪問方法:順序訪問,直接訪問,其他方法(索引)

      3.目錄結(jié)構(gòu)

      ① 目錄操作:創(chuàng)建文件,刪除文件,遍歷目錄,重命名文件,跟蹤文件系統(tǒng) ② 評價目錄結(jié)構(gòu):命名(不同文件同名),分組(同一文件不同命名)

      ③ 單層結(jié)構(gòu)目錄(命名,分組均無),雙層結(jié)構(gòu)目錄(可命名不可分組),樹狀結(jié)

      構(gòu)(絕對,相對路徑;可命名分組),無環(huán)圖目錄(硬鏈接,軟鏈接),通用圖目錄

      二、文件系統(tǒng)實現(xiàn)

      1.文件系統(tǒng)結(jié)構(gòu):應(yīng)用程序→邏輯文件系統(tǒng)→文件組織模塊→基本文件系統(tǒng)→I/O控

      制→設(shè)備

      2.目錄實現(xiàn):線性列表(編程簡單,運行費時,查找文件需要線性搜索)

      哈希表(采取策略避免沖突)

      3.分配方法

      ① 連續(xù)分配:每個文件在磁盤上占有一組連續(xù)的塊;困難時為新文件找到空間,外部碎片問題也可能很大,確定文件分配多大空間,② 鏈接分配:解決了連續(xù)分配的所有問題;必須順序訪問文件,指針需要空間,由于指針分配在整個磁盤,可靠性就成了一個問題。

      FAT文件分配表:改善了隨機訪問時間,但是需要大量磁頭尋道時間

      ③ 索引分配:把所有指針都放在一起,構(gòu)成索引塊;支持直接訪問,且沒有外部

      碎片問題,但是會浪費空間;索引塊分多大是個問題

      鏈接方案(一個索引塊可以指向另一索引塊構(gòu)成鏈接)

      多層索引(第一個索引塊指向第二個索引塊,第二個指向文件數(shù)據(jù)塊)

      組合方案P404 N級間接塊(計算)

      4.空閑空間管理:為向量(1空0滿)塊號碼計算:(值為0的數(shù)字)*(一個字的位

      數(shù))+第一個值為1的位的偏移;鏈表(所有空閑的塊用鏈表鏈接起來);組(將N個空閑塊的地址存儲在第一個空閑塊中);計數(shù)()

      第四篇:操作系統(tǒng)總結(jié)

      操作系統(tǒng)基本基礎(chǔ)概念

      多任務(wù)是指用戶可以在同一時間內(nèi)運行多個應(yīng)用程序,每個應(yīng)用程序被稱作一個任務(wù)。像Windows、LINUX就是支持多任務(wù)的操作系統(tǒng)。每個任務(wù)使用由操作系統(tǒng)分配的短暫的時間片(Timeslice)輪流使用CPU,由于CPU對每個時間片的處理速度非常快,在用戶看來好像這些任務(wù)在同時執(zhí)行,這叫做時間片輪轉(zhuǎn)調(diào)度法。還有更多的多任務(wù)調(diào)度方法。

      實時系統(tǒng)

      (REAL TIME system)是指系統(tǒng)能及時的響應(yīng)外部時間的請求,在規(guī)定的時間內(nèi)完成對該事件的處理,并控制所有實時任務(wù)協(xié)調(diào)一致的運行。分為硬實時任務(wù)和軟實時任務(wù),系統(tǒng)對任務(wù)的截止時間有要求否則會出現(xiàn)難以預(yù)測的結(jié)果,這就是硬實時任務(wù),反之要求不是很嚴(yán)格則為軟實時任務(wù)。

      操作系統(tǒng)的基本特性

      并發(fā)與并行:并發(fā)性是兩個或多個事件在同一時刻發(fā)生。而并行性是兩個或多個事件在同一時間間隔內(nèi)發(fā)生。

      進程:為了使多個程序能并發(fā)的執(zhí)行,系統(tǒng)必須為每個程序建立進程(process)。簡單說來~進程是指在操作系統(tǒng)中能獨立運行并作為資源分配的基本單位。他是由一組機器指令數(shù)據(jù)、堆棧等組成的,是一個能獨立運行的活動實體。多個進程之間可以并發(fā)的執(zhí)行和交換信息。一個進程在運行時需要一定的資源,如CPU、內(nèi)存空間、IO設(shè)備等。

      我的注解:進程很重要。Linux的進程之間的關(guān)系可以這樣描述:一個完整的main函數(shù)運行的時候,在linux里是以進程的形式存在的。系統(tǒng)啟動之后運行的第一個進程的進程號是1,叫做init進程,一切進程都從它派生出來,一個父進程可以派生另一個進程,即為子進程,這倆進程為并行關(guān)系。子進程也可以創(chuàng)建子進程。

      進程的創(chuàng)建在linux里邊用fork()函數(shù)它有兩個返回值,一個是在父進程中返回,返回的是子進程號,一個是在子進程中返回,如果子進程創(chuàng)建成功,則返回的是0。子進程是父進程的一個拷貝,現(xiàn)代的進程創(chuàng)建都用vfork()創(chuàng)建子進程之后,并不拷貝全部的進程空間,只有在用到時才拷貝,叫做寫時復(fù)制技術(shù)(copy on write)。

      Linux里邊這樣創(chuàng)建子進程:

      pid_t pid=fork();//這里的pid_t是一種數(shù)據(jù)類型(如int),這里代表進程號(實質(zhì)上也是個整形變量int)

      If(pid==0){這里邊就是子進程代碼}

      Else if(pid>0){這里邊是父進程代碼,pid的值是子進程的進程號PID}

      線程:通常在一個進程中可以包含若干個線程,他們可以利用進程所擁有的資源。在引入線程的操作系統(tǒng)中,一般都把進程作為分配資源的基本單位。而把線程作為獨立運行和獨立調(diào)度的基本單位。優(yōu)點:運行效率更高。

      進程的狀態(tài):一般分為就緒狀態(tài)。執(zhí)行狀態(tài)。阻塞狀態(tài)。

      操作系統(tǒng)產(chǎn)生死鎖的原因:1.競爭資源。2.進程間推進順序非法。比如說:一個進程占有一個資源A,當(dāng)他運行到需要用到被另一個進程占用的資源B時,沒有得到,于是進入等待退出運行,而這個占有資源B的進程還想得到資源A,但是占有A的進程此刻在休眠,也沒得到,所以這個進程也進入等待退出運行。這樣兩兩相互等待造成了死鎖。解決方法:1.在進程運行開始時就把所有資源占好。2.按順序加鎖。比如要得到資源B首先要對A加鎖,如果得不到就不能加鎖。所有進程都按照這個方法進行。

      第五篇:操作系統(tǒng)實驗總結(jié)

      操作系統(tǒng)實驗總結(jié)

      學(xué)號:

      姓名:

      班級:

      在本學(xué)期的計算機操作系統(tǒng)這門課學(xué)習(xí)當(dāng)中,為了更好的了解操作系統(tǒng)相關(guān)知識,我們通過OS Lab平臺做了幾個實驗。在實驗室的過程中,我對課堂上學(xué)到的操作系統(tǒng)的一些知識有了新的認識,同時還接觸到了操作系統(tǒng)的相關(guān)源代碼,而且通過實驗的運行效果了解了平時我們看不到的操作系統(tǒng)的一些狀況,收獲還是很大的。下面先簡要歸納在實驗課上我做的幾個實驗的主要實驗內(nèi)容和實驗步驟:

      實驗一:實驗環(huán)境的使用

      實驗步驟:

      1.1啟動OS Lab

      OS Lab每次啟動后都會首先彈出一個用于注冊用戶信息的對話框(可以選擇對話框標(biāo)題欄上的“幫助”按鈕獲得關(guān)于此對話框的幫助信息)。在此對話框中填入學(xué)號和姓名后,點擊“確定”按鈕完成本次注冊。觀察OS Lab主窗口的布局。OS Lab主要由下面的若干元素組成:菜單欄、工具欄以及停靠在左側(cè)和底部的各種工具窗口,余下的區(qū)域用來放置編輯器窗口。

      1.2 學(xué)習(xí)OS Lab的基本使用方法

      練習(xí)使用OS Lab編寫一個Windows控制臺應(yīng)用程序,熟悉OS Lab的基本使用方法(主要包括新建項目、生成項目、調(diào)試項目等)。

      實驗二:操作系統(tǒng)的啟動

      實驗步驟:

      2.1 準(zhǔn)備實驗

      啟動OS Lab,新建一個EOS Kernel項目,在“項目管理器”窗口中打開boot文件夾中的boot.asm和loader.asm兩個匯編文件,按F7生成項目,生成完成后,使用Windows資源管理器打開項目文件夾中的Debug文件夾。找到由boot.asm生成的軟盤引導(dǎo)扇區(qū)程序boot.bin文件,找到由loader.asm生成的loader程序loader.bin文件,記錄下此文件的大小1566字節(jié)。

      2.2 調(diào)試EOS操作系統(tǒng)的啟動過程

      2.2.1 使用Bochs做為遠程目標(biāo)機

      將調(diào)試時使用的遠程目標(biāo)機修改為Bochs

      2.2.2 調(diào)試BIOS程序

      按F5啟動調(diào)試,Bochs在CPU要執(zhí)行的第一條指令(即BIOS的第一條指令)處中斷,從Console窗口顯示的內(nèi)容中,我們可以獲得關(guān)于BIOS第一條指令的相關(guān)信息,然后查看CPU在沒有執(zhí)行任何指令之前主要寄存器中的數(shù)據(jù),以及內(nèi)存中的數(shù)據(jù)。

      2.2.3 調(diào)試軟盤引導(dǎo)扇區(qū)程序

      練習(xí)從0x7c00處調(diào)試軟盤引導(dǎo)扇區(qū)程序;查看boot.lst文件;調(diào)試過程——軟盤引導(dǎo)扇區(qū)程序的主要任務(wù)就是將軟盤中的loader.bin文件加載到物理內(nèi)存的0x1000處,然后跳轉(zhuǎn)到loader程序的第一條指令(物理地址0x1000處的指令)繼續(xù)執(zhí)行l(wèi)oader程序;

      2.2.4 調(diào)試加載程序

      調(diào)試過程——Loader程序的主要任務(wù)是將操作系統(tǒng)內(nèi)核(kernel.dll文件)加載到內(nèi)存中,然后讓CPU進入保護模式并且啟用分頁機制,最后進入操作系統(tǒng)內(nèi)核開始執(zhí)行(跳轉(zhuǎn)到kernel.dll的入口點執(zhí)行);

      2.2.5 調(diào)試內(nèi)核

      2.2.6 EOS啟動后的狀態(tài)和行為

      查看EOS的版本號;查看EOS啟動后的進程和線程的信息;查看有應(yīng)用程序運行時進程和線程的信息

      實驗三:進程的創(chuàng)建

      實驗步驟:

      3.1 準(zhǔn)備實驗

      啟動OS Lab;新建一個EOS Kernel項目;分別使用Debug配置和Release配置生成此項目,從而在該項目文件夾中生成完全版本的EOS SDK文件夾;新建一個EOS應(yīng)用程序項目;使用在第3步生成的SDK文件夾覆蓋EOS應(yīng)用程序項目文件夾中的SDK文件夾

      3.2 練習(xí)使用控制臺命令創(chuàng)建EOS應(yīng)用程序的進程

      3.3 練習(xí)通過編程的方式讓應(yīng)用程序創(chuàng)建另一個應(yīng)用程序的進程

      使用OS Lab打開本實驗文件夾中的NewProc.c文件;查看應(yīng)用程序創(chuàng)建另一個應(yīng)用程序的進程的執(zhí)行結(jié)果。

      3.4 調(diào)試CreateProcess函數(shù)

      調(diào)試CreateProcess函數(shù)創(chuàng)建進程的過程;分別驗證應(yīng)用程序和操作系統(tǒng)內(nèi)核在進程的4G虛擬地址空間中所處的位置;

      3.5 調(diào)試PsCreateProcess函數(shù)

      調(diào)試PspCreateProcessEnvironment函數(shù);調(diào)試進程控制塊的創(chuàng)建過程;調(diào)試初始化進程控制塊中各個成員變量的過程。

      3.6 練習(xí)通過編程的方式創(chuàng)建應(yīng)用程序的多個進程

      使用OS Lab打開本實驗文件夾中的參考源代碼文件NewTwoProc.c,仔細閱讀此文件中的源代碼。使用NewTwoProc.c文件中的源代碼替換EOS應(yīng)用程序項目中EOSApp.c文件內(nèi)的源代碼,生成后啟動調(diào)試,查看多個進程并發(fā)執(zhí)行的結(jié)果。

      實驗四:線程的狀態(tài)和轉(zhuǎn)換

      實驗步驟:

      4.1 準(zhǔn)備實驗

      啟動OS Lab,新建一個EOS Kernel項目

      4.2 調(diào)試線程狀態(tài)的轉(zhuǎn)換過程

      查看一下loop命令執(zhí)行的效果;調(diào)試線程狀態(tài)轉(zhuǎn)換的過程;對斷點進行一些調(diào)整。

      4.2.1 線程由阻塞狀態(tài)進入就緒狀態(tài):

      將線程從等待隊列中移除;將線程的狀態(tài)由Waiting修改為Zero;將線程插入其優(yōu)先級對應(yīng)的就緒隊列的隊尾;將線程的狀態(tài)由Zero修改為Ready。

      4.2.2 線程由運行狀態(tài)進入就緒狀態(tài):

      線程中斷運行,將線程中斷運行時的上下文保存到線程控制塊中;如果處于運行狀態(tài)的線程被更高優(yōu)先級的線程搶先,就需要將該線程插入其優(yōu)先級對應(yīng)的就緒隊列的隊首。(注意,如果處于運行狀態(tài)的線程主動讓出處理器,例如時間片用完,就需要將程插入其優(yōu)先級對應(yīng)的就緒隊列的隊尾);將線程的狀態(tài)由Running修改為Ready

      4.2.3 線程由就緒狀態(tài)進入運行狀態(tài):

      將線程從其優(yōu)先級對應(yīng)的就緒隊列中移除;將線程的狀態(tài)由Ready修改為Zero;將線程的狀態(tài)由Zero修改為Running;將線程的上下文從線程控制塊(TCB)復(fù)制到處理器的各個寄存器中,讓線程從上次停止運行的位置繼續(xù)運行。

      4.2.4 線程由運行狀態(tài)進入阻塞狀態(tài):

      將線程插入等待隊列的隊尾;將線程的狀態(tài)由Running修改為Waiting;將線程中斷執(zhí)行,并將處理器上下文保存到該線程的線程控制塊中。

      4.3 為線程增加掛起狀態(tài)

      觀察loop線程被掛起的情況:刪除之前添加的所有斷點;按F5啟動調(diào)試;待EOS啟動完

      畢,在EOS控制臺中輸入命令“l(fā)oop”后按回車。此時可以看到loop線程的執(zhí)行計數(shù)在不停增長,說明loop線程正在執(zhí)行,記錄下loop線程的ID;按Ctrl+F2切換到控制臺2,輸入命令“suspend 31”(如果loop線程的ID是31)后按回車;按Ctrl+1切換回控制臺1,可以看到由于loop線程已經(jīng)成功被掛起,其執(zhí)行計數(shù)已經(jīng)停止增長了。

      在PsResumThread函數(shù)第119行需要添加的代碼的流程可以是:首先調(diào)用List Remove Entry函數(shù)將線程從掛起線程隊列中移除,然后調(diào)用PspReadyThread函數(shù)將線程恢復(fù)為就緒狀態(tài),最后調(diào)用PspThreadSchedule宏函數(shù)執(zhí)行線程調(diào)度,讓剛剛恢復(fù)的線程有機會執(zhí)行。

      實驗過程:

      做實驗時,最開始并不是很了解OS Lab平臺的使用,即使對著老師給的實驗教程做還是不怎么會,于是請教會做的同學(xué),通過同學(xué)的講解我知道了怎樣在OS Lab平臺上建立項目,怎樣更改路徑并找到項目的源文件等等基本操作。

      掌握對平臺的簡單應(yīng)用后,做后面的實驗我是按照實驗教程上的步驟一步步的實施,并且每次都認真觀察相應(yīng)的運行結(jié)果,每個實驗都會建議我們學(xué)習(xí)實驗教程前面的理論部分,我想如果對他的理論不熟悉,就算試驗成功了我也不知道為什么,所以我一般在做實驗前會對前面的理論部分進行簡要的學(xué)習(xí)和熟悉。做實驗的過程中,有時候按照實驗教程上的步驟做平臺還是會出現(xiàn)一些錯誤,比如做實驗三到調(diào)試CreateProcess函數(shù)時,出現(xiàn)的調(diào)試異常對話框中,本來是要點擊“是”的,但做到這里電腦總是會出現(xiàn)像死機一樣的狀況,關(guān)掉平臺重做到這里老是出現(xiàn)同樣的問題,最后換電腦也是這樣,然后我嘗試不按照實驗步驟點擊“是”也不行,最后還是又還了電腦才做成功,問其他同學(xué)也有出現(xiàn)同樣的問題,我想可能是平臺和電腦上有什么地方有沖突吧。

      之后做試驗是遇到問題我還是選擇多問同學(xué),畢竟每個人擅長的是不同的,有些問題這個同學(xué)會解決,有些問題則是那個同學(xué)才懂解決,通過互相交流和學(xué)習(xí),我們通過實驗不僅鞏固了課堂上學(xué)到的相關(guān)知識,也對操作系統(tǒng)有了更深的了解。

      體會:

      其實做完實驗我還是不能保證我對OS Lab這個平臺有很好的全面的了解,但是對一些基本操作及其快捷鍵我算是大致掌握了,通過這個平臺我也是認識到了“沒有做不到的,只有想不到的”,我覺得創(chuàng)建這個平臺的人們真的是很了不起,這個平臺讓我們便動手便了解了平時我們看不到的操作系統(tǒng)的相關(guān)知識。要做好實驗,得按照實驗教程上面的內(nèi)容一步步落實,要邊做變領(lǐng)悟相關(guān)原理及運行結(jié)果的出現(xiàn)的原因,這樣我們才能在試驗中學(xué)到更多、掌握更多。其次,也遇到問題我們自然是要先自己思考,通過不同的嘗試來解決,之后不能解決的我們要多向老師同學(xué)請教,通過互相交流得來的知識也是會讓我們難忘的。

      下載操作系統(tǒng)總結(jié)(5篇可選)word格式文檔
      下載操作系統(tǒng)總結(jié)(5篇可選).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        計算機操作系統(tǒng)總結(jié)

        虛擬存儲器應(yīng)用研究 虛擬存儲器是具有請求調(diào)入功能和置換功能,能僅把作業(yè)的一部分裝入內(nèi)存便可運行作業(yè)的存儲器系統(tǒng),它能從邏輯上對內(nèi)存容量進行擴充的一種虛擬的存儲器系統(tǒng)......

        操作系統(tǒng)重點總結(jié)

        CPU內(nèi)部結(jié)構(gòu) 8086分為兩個部分:總線接口部件BIU和執(zhí)行部件EU BIU主要功能負責(zé)CPU與存儲器、I/O接口之間的信息傳遞。 BIU部件包括(1).四個段地址寄存器:代碼段寄存器CS、數(shù)據(jù)......

        操作系統(tǒng)教學(xué)總結(jié)

        操作系統(tǒng)教學(xué)總結(jié) 教師:楊宇 這學(xué)期我擔(dān)任了《操作系統(tǒng)》這門課程的教學(xué)工作,本教材內(nèi)容多,任務(wù)重,而且13級大部分學(xué)生對計算機方面的知識了解都非常匱乏,基礎(chǔ)非常薄弱,但是......

        操作系統(tǒng)概念總結(jié)

        操作系統(tǒng): 是管理系統(tǒng)資源,控制程序執(zhí)行,協(xié)調(diào)硬件使用的最基本的系統(tǒng)軟件,在硬件的基礎(chǔ)上提供一個基本的應(yīng)用程序運行環(huán)境。 多道程序multiprogramming: 在計算機內(nèi)存中存放多個......

        操作系統(tǒng)知識點總結(jié)

        操作系統(tǒng)是一組控制和管理計算機硬件和軟件資源,合理地對各類作業(yè)進行調(diào)度,以及方便用戶使用的程序的集合。 虛擬機:在裸機的基礎(chǔ)上,每增加一層新的操作系統(tǒng)的軟件,就變成了功能......

        操作系統(tǒng)總結(jié)(精選5篇)

        1.操作系統(tǒng)的定義: 操作系統(tǒng)是一組控制和管理計算機硬件的軟件資源,合理地對各類作業(yè)進行跳讀,以及方便用戶使用的程序集合. 2.操作系統(tǒng)的目標(biāo): 有效性,方便性,可擴充性,開......

        操作系統(tǒng)期末考試總結(jié)

        第一章 操作系統(tǒng)概論 第一章主要內(nèi)容 各節(jié)基本概念,操作系統(tǒng)的發(fā)展過程,操作系統(tǒng)的基本特征。 操作系統(tǒng)的目標(biāo) 1.有效性2、方便性3、可擴充性4.開放性 分時系統(tǒng)實現(xiàn)中的關(guān)鍵問......

        總結(jié)電腦操作系統(tǒng)

        操作系統(tǒng)是一種特殊的用于控制計算機(硬件)的程序(軟件)。它是計算機底層的系統(tǒng)軟件,負責(zé)管理、調(diào)度、指揮計算機的軟硬件資源使其協(xié)調(diào)工作,沒有它,任何計算機都無法正常運行。它在......