作業系統基本原理筆記
作業系統基本原理
程序管理
程序的狀態
執行:所有資源已經準備,並且CPU資源也準備好。
就緒:所有資源已經準備,就缺CPU資源。
等待:缺少資源
前趨圖
用前趨圖來表達一些列活動它們之間先後的邏輯關係,如圖,若ABC之間沒有關係,那麼則可以讓它們同步進行。
程序的同步與互斥
I、互斥:同一個時刻只允許一個程序去使用某一個資源,一個資源不能被多個程序使用(單緩衝區,同一時刻只允許存/取)
II、同步:兩個程序有速度差異,要求速度快的停下等待速度慢的,一起結束任務(單緩衝區,可以同時存和取,但是第二次存要等取走次啊能繼續存)
care:同步和互斥並不矛盾
PV操作
I、臨界資源:諸程序間需要互斥方法對其進行共享資源(千軍萬馬過獨木橋中的獨木橋)
II、臨界區:每個程序中訪問臨界資源的程式碼
III、訊號量:PV操作中的變數
P操作:往緩衝區中增加資料,若緩衝區滿了則阻塞程序操作
V操作:從緩衝區中取資料,喚醒程序操作
care:在解題過程中,可以先假設執行某一個程序看看有什麼問題,缺P操作還是V操作,然後根據實際情況調整。
前趨圖和PV操作的關係
若無前趨的程序我們可以讓他執行V操作來喚醒下一步程序,有前趨的程序對應的加上P操作來阻塞。
死鎖問題
I、概念:如果一個程序在等待一件不可能發生的事(等待不可能有的資源分配),則程序就死鎖了。而如果一個或多個程序產生死鎖,就會造成系統死鎖。(解決死鎖問題可以用到抽屜原理)
II、產生死鎖的四大條件:
互斥、環路等待、不剝奪、保持和等待
III、預防:打破四大條件
IV、避免:有序資源分配(資源分配律低)、銀行家演算法
V、銀行家演算法:分配資源的原則
當一個程序對資源的最大需求量不超過系統中的資源數時可以接納該程序
程序可以分期請求資源,但請求的總數不能超過最大需求量
當系統現有的資源不能滿足程序尚需資源數時,對程序的請求可以推遲分配,但總能使程序在有限的時間裡得到資源
具體在題目中的做法就是:根據題目算出剩下的資源,然後根據每個程序需要資源來決定要將系統資源分配給誰。
儲存管理
分割槽儲存組織:
I、首次適應演算法:順次地從空閒記憶體空間中找,找到第一個適合的空間就分配給這個程序。
II、最佳適應演算法:將空閒記憶體空間按照剩餘多少升序排列
III、最差適應演算法:將空閒記憶體空間按照剩餘多少降序排列,遇到的夠用的就分配給程序。
IV、迴圈首次適應演算法:將空閒空間連成環,按照最後一次作業的位置開始排序,遇到夠用的就分配給程序。
頁式儲存組織
概念:將使用者程式等分為大小相同的頁,再用一個頁表用塊來記錄使用者程式和記憶體之間的對映/邏輯關係,需要那一份的內容就查表呼叫那一頁
優點:利用率搞,碎片小,分配及管理簡單。
缺點:增加了系統開銷,可能產生抖動現象。
段式儲存
按照邏輯關係來儲存,段的大小不相同
優點:多道程式共享記憶體,各段程式修改互不影響
缺點:記憶體利用率低,記憶體碎片浪費大
段頁式儲存
段、頁的集合
快表:
快表是一塊小容量的相聯儲存器 ,由快取記憶體器組成,速度快,並且可以從硬體上保證按內容並行查詢,一般用來存放當前訪問最頻繁的少數活動頁面的頁號。(可以省去查表這一步驟)
頁面置換演算法:
I、最優演算法:已經找到訪問序列是什麼樣的,根據序列算出了淘汰方式,理論層次的演算法。
II、隨機演算法
III、先進先出演算法:當沒有發生缺頁時,淘汰最先進來的頁面,有可能產生“抖動”。
IV、最近最少使用演算法:當沒有發生缺頁時,淘汰最就沒有被訪問的頁,剛剛被訪問的頁面不會被淘汰,不會“抖動”
V、抖動:給了更多資源,反而降低了效率。
索引檔案結構:
索引結構一般有13個結點(0-12),規定0~9是直接索引,地址直接對應盤塊,10為一級間接,11為二級,12為三級,每加一級就使得訪問速度變慢。
檔案管理
檔案和樹型結構
I、檔案屬性:
R只讀檔案屬性
A存檔屬性
S系統檔案
H隱藏檔案
II、檔名:
驅動器號
路徑
主檔名
拓展名
III、絕對路徑:從碟符開始的路徑
相對路徑:從當前路徑開始的路徑
空閒儲存空間的管理
I、空閒區表法(空閒檔案目錄):用表來記錄空閒區
II、空閒連結串列法:將空閒區組成連結串列
III、位示圖法:用一個二維表來表示空閒區間,內容位0表示空閒,1表示被佔用
IV、成組連線法
裝置管理
資料傳輸控制方式
I、程式控制方式(程式查詢方式):由CPU的指令來問是否查詢完成
II、程式中斷方式:在程式控制方式上添加了一箇中斷機制,即當查詢完成會告訴CPU
III、DMA方式(直接儲存控制方式):直接將查詢這一部分功能獨立出來,自己做,CPU只要給完成基本部署就行了。
IV、通道
V、輸入輸出處理機
虛裝置和SPOOLING技術
設定裝置用一個輸入井來儲存需要使用的情況,並按照佇列(先進先出)的方式將資訊從輸出井送到輸出緩衝區。