作業系統複習提綱

2021-10-11 23:11:21 字數 3960 閱讀 8455

在記憶體中同時存放多道程式,這些程式可以併發執行

os把工作模式分成了核心態使用者態,把儲存器分成了系統空間使用者空間,把指令分成了特權指令非特權指令。核心態可以訪問儲存器的所有空間,可以使用除了中斷指令之外的所有指令。使用者態只可以訪問使用者空間內容,可以使用非特權指令和中斷指令

程式和資料主要組成:

核心的基本特點:

程式介面:也稱為系統呼叫,是程式級的介面,由系統提供一組系統呼叫命令供使用者程式和其它系統程式呼叫

圖形介面:是聯機命令介面的圖形化

核心提供了一系列具有預定功能的核心函式,通過系統呼叫的介面呈現給使用者,使用者通過訪管指令,通過陷入讓工作模式切換成核心態,執行結束之後切換回使用者態,讓使用者程式可以呼叫核心的子程式

併發執行是指在多道程式設計的環境下在執行乙個程式的兩條指令之間,處理器可以去執行其他指令

乙個處理器在乙個時刻至多執行一條指令

特徵:

定義:

程序狀態:

狀態轉換:

3.3.1 訊號量機制

定義:

除訊號量的初值外,訊號量的值僅能由p操作(wait操作)和v此操作(signal操作)改變

操作:

v(s)操作:先執行s=s+1;若s>0,則該程序繼續執行;若s<=0,則從該訊號量等待佇列中移出第乙個程序,使其變為就緒狀態並插入就緒佇列,然後再返回原程序繼續執行

p和v操作均為不可分割的原子操作,這保證了對訊號量進行操作過程中不會被打斷或阻塞。他們在系統中一定是成對出現的,但未必在乙個程序中,可以分布在不同程序中

訊號量的分類:

訊號量的應用:

semaphore n=0;

p1()p2

()

semaphore n=0;

p1()

p2()

3.3.2 生產者/消費者問題

生產者-消費者是著名的程序同步問題,描述的是一組生產者向一組消費者提供產品,他們共享乙個有界緩衝區,生產者向其中投入產品,消費者從中取走產品

為解決這乙個問題,應當設定兩個同步訊號量:

此外還需要設定乙個互斥訊號量:

semaphore full=0;

//滿緩衝區數目

semaphore empty=n;

//空緩衝區數目

semaphore mutex=1;

//對有界緩衝區進行操作地互斥訊號量

producer()

}consumer()

}

注意:

管道通訊系統

定義:

目的:

分類:

使用者級執行緒

使用者級執行緒的切換不必進入核心態,執行緒的切換開銷小;系統級執行緒雖然可以不阻塞io提高了並行性,但是開銷也增大,不過依然遠遠小於程序切換的開銷

與程序的關係:

含義:

排程演算法的評價指標:

基本演算法:

是否可搶占:非搶占式演算法

優缺點:

不會導致飢餓

短作業優先排程演算法(sjf)

是否可搶占:sjf和spf是非搶占式演算法,但也有搶占式的版本——最短剩餘時間優先演算法(srtn)

優缺點:

可能產生飢餓現象,長作業/程序長時間得不到服務,則稱為「餓死」

預設是非搶占式演算法

在所有程序都幾乎同時到達時,採用sjf排程演算法的平均等待時間、平均周轉時間最少

高響應比優先排程演算法(hrrn)

用於作業/程序排程:

是否可搶占:非搶占式演算法,只有當前執行的作業/程序主動放棄處理機時,才需要排程,才需要計算響應比

優缺點:

不會導致飢餓

含義:

作業排程與程序排程的區別:

時間片輪轉(rr,round-robin):

是否可搶占:搶占式演算法

優缺點:

不會導致飢餓

優先順序排程演算法:

是否可搶占:非搶占式與搶占式演算法都有,非搶占式演算法,只有當前執行的程序主動放棄處理機時,才需要排程,而搶占式需要檢測是否會發生搶占

優缺點:

不會導致飢餓

就緒佇列未必只有乙個,可以按照不同優先順序來組織。另外,也可以把優先順序高的程序排在更靠近隊頭的位置

根據優先順序是否可以動態改變,可將優先順序分為靜態優先順序和動態優先順序兩種

概念:

當多個程序因競爭系統資源或相互通訊而處於永久阻塞狀態時,每乙個程序均無限期地等待此組程序中某個其他程序占有的,自己永遠無法得到的資源

特點:

產生的必要條件:

處理死鎖的基本方法:

避免死鎖:在資源的動態分配過程中,用某種方法防止系統進入不安全狀態,從而避免死鎖

檢測及解除死鎖:通過系統的檢測機構及時檢測出死鎖的發生,然後採取某種措施解除死鎖

儲存保護

最佳適應演算法(bf):把空閒區按照從小到大的順序進行索引,查詢的時候找能滿足程式需求、長度最小的空閒區分配

最壞適應演算法(wf):把空閒區按照從大到小的順序進行索引,查詢的時候找能滿足程式需求、長度最大的空閒區分配

空閒區**:**時需要判斷是否有相鄰的空閒區,以便把相鄰的空閒區合併為乙個大的空閒區,有利於程式裝入時的分配

對換:在外存中設定乙個專門的區域,稱為對換區,系統需要的時候選擇記憶體中的就緒狀態或者是阻塞狀態的程序調離記憶體,將其資訊寫入交換區的合適位置。對換的基本單位是程序

覆蓋:是早期dos中採用的一種記憶體邏輯擴充技術.。把彼此沒有呼叫關係的子程式做為乙個組,同一組的子程式成為可覆蓋段。覆蓋技術的覆蓋段由程式設計師設計,覆蓋程式段的最大長度受記憶體容量大小的限制

對換和覆蓋的不同點:控制不同:對換是由作業系統自動實現的,覆蓋技術則是由程式設計師根據需要通過程式控制調入覆蓋和呼叫執行。單位粒度不同,對換的單位是程序,而覆蓋則發生在程序內部,對應子程式之間的調入覆蓋。記憶體擴充效果不同,在對換技術中,單個程序的位址空閒不能超過記憶體的實際大小,而覆蓋技術允許程式超過記憶體的大小

段表:每乙個程序對應乙個段表,每乙個段是由程式設計師設計的,往往是不相等的。在程序調入記憶體的時候,段表已經生成並駐留在記憶體中

分段儲存管理的好處是沒有破壞程式本身的邏輯性,程序的共享提供了方便

動態重定位分割槽分配技術

檔案的內容組織形式程式檔案的邏輯結構,檔案的物理結構主要是檔案的內容在儲存介質中的存放方式,側重提高儲存空間的利用率和訪問速度

三類物理結構:

索引結構:

i-node為索引表,區分直接索引表,一次間接指標,二次間接指標,重定位

每個索引塊內的索引數:

找磁碟塊號:

若檔案內塊號在m~m^2內,進入二次間接索引:

二級索引表塊塊號 = 二次間接索引表[i]

物理塊號 = 二級索引表[ i』 ]

io操作過程中,利用儲存不見或其中的部分,暫時存放要交換的資料,將來再把資料傳輸到目標位置,這種資料暫存的技術稱為緩衝技術

演算法複習提綱

tips 1.遇到要求連續取一段數的問題可以考慮用佇列,滿足條件則壓入佇列,不滿足則將隊首移除。蝸牛旅行問題 2.對於大量重複的計算可以考慮進行預處理,比如找質數,可以先將小於n的質數全部找出來,不然每次碰到乙個數n,就迴圈去除比n小的數,看是否有餘數來確定這個數是不是質數太麻煩,且消耗大。找質數問...

MYSQL複習提綱

本文是對於mysql技術內幕 innodb儲存引擎 第2版 的筆記和提綱整理 主要用於複習和知識點快速複習 筆記 2.1 innodb的後台執行緒 2.2 記憶體 2.3 checkpoint技術 2.4 innodb特性 筆記 ref 事務日誌 3.1 引數配置檔案 my.conf 3.2 日誌檔...

專案管理 複習提綱

章節重點 1.軟體的定義及特徵 2.軟體危機產生的原因 3.軟體過程 軟體過程能力 軟體過程效能的定義 4.cmm定義及5個成熟度級別的主要特徵 5.軟體過程的可視性 過程能力和效能 與成熟度之間的關係 6.kpa定義及結構 7.kpa的共同特點包含5點內容 8.cmm每個成熟度等級的kpa及其子目...