本文主要適用於計算機類本科作業系統課程的期中考試。
作業系統分層設計/按模組設計
分層設計定義層次結構和介面,每個層次建立在下層的基礎上。構建和除錯簡單,難以對層次做準確的定義,層次間互動關係錯綜複雜,呼叫開銷大。
按模組設計用物件導向技術,將系統設計為乙個核心核心和若干個可載入的核心模組。能動態實現特定功能,比分層系統更加靈活,比微核心更加高效(不需要訊息傳遞)。
微核
微核心最大限度地將功能從核心移到服務模組,實現了清晰的分離,具有良好的彈性,方便擴充套件,可靠安全,也面臨巨大的切換/通訊開銷。
使用者模式/核心模式,模式位的作用
核心態下可以執行使用者態下無法執行的特權指令,通常使用者程序執行在使用者態,處理系統呼叫、異常、中斷時進入核心態。
模式位標識了當然是執行在使用者態還是核心態。
執行緒/程序/程式
程式是被動實體,通常是可執行檔案;程序是活動實體,是程式的一次執行過程,當可執行檔案被載入記憶體,程式才能稱為程序。執行緒是程式執行流的最小單元,程序通常包含多個執行緒。
程序與執行緒的比較:排程;系統資源分配;併發;系統開銷;位址空間;通訊。
多道程式設計及其作用
在記憶體中同時裝載若干道程式併發執行,共享系統中的各種資源。
作用:具有巨集觀上並行的特點,使os能更好地實現管理,使硬體資源得到更充分的利用。
短期排程/中期排程/長期排程
程序排程:從就緒佇列中選取乙個程序,將處理機分配給它,幾十毫秒一次。
記憶體排程:將暫時不能執行的程序調到外存等待(掛起),具備執行條件的程序在記憶體有空閒時重新調入記憶體。
作業排程:從外存中處於後備狀態的作業中選取乙個或多個給它分配記憶體。
關係:程序排程是必須的;作業排程為程序活動做準備;頻率差異。
什麼時候應該進行程序切換?什麼時候不應該?
應該:引起排程條件,或當前程序無法執行下去;中斷或陷阱處理結束。
不應該:處理中斷過程中;處於核心程式臨界區內;處於需要遮蔽中斷的原子操作中。
上下文切換的時候發生了什麼
hdw s**e u-regs(a) to k-stack(a)
os s**e k-regs(a) to pcb(a)
os switch to procb
os restore k-regs(b) from pcb(b)
hdw restore u-regs(b) from k-stack(b)
共享記憶體/訊息傳遞
共享記憶體:通過對一塊可直接訪問的共享空間的讀寫,os提供儲存空間和同步互斥工具。
訊息傳遞:通過os提供的傳送/接收原語,操作訊息緩衝佇列。
訊息傳遞適用於少量資訊,便於實現。共享記憶體雖然快,但面臨快取一致性問題,不適用於多處理器系統。
多執行緒的優點
響應度高,資源共享,開銷小,充分利用多處理器。
多執行緒模型
多對一:效率高;集體阻塞,不適用多處理器。
一對一:併發能力強;開銷大。
多對多:併發度高,同時開銷不大。
評價程序排程的標準
cpu利用率,吞吐量,周轉時間,等待時間,響應時間。
各種排程演算法的優缺點?
fcfs:簡單,效率低,短作業護航。
sjf:長作業飢餓,未考慮緊迫程度,估計時間不准。
prio:低優先順序可能飢餓。
hrrn:別人家的孩子。
rr:公平、公平、公平,響應時間短,周轉時間長,片小開銷大,片大退化。
psjf:周轉時間短,響應時間長。
mlq:級別固定。
mlfq:兼顧周轉時間和響應時間,具有自適應性。對終端型表現為sjf,對短批表現為周轉時間優化,對長批保證不會飢餓。
fcfs和sjf可靠性差,prio適合實時os,hrrn,rr,mlfq適合分時os。
剝奪排程/非剝奪排程
剝奪排程會一直讓程序執行到終止或阻塞才切換,而剝奪排程在有更重要更緊迫的程序進入時就切換程序。
剝奪排程能提高系統吞吐率和響應效率,非剝奪排程能夠避免競態條件出現。
為什麼要區分cpu密集和io密集程式
作業排程器希望引入混合的cpu-bound和i/o-bound程式,使得硬體資源得以充分利用。
臨界區問題是什麼?與同步問題的不同?解決臨界區問題的三個要求?
設計協議實現程序對臨界區(當乙個程序在臨界區內執行時,不允許其它程序進入鄰接區)的訪問。
同步問題是兩個程序間的相互等待。
互斥訪問,空閒讓進,有限等待。
為什麼自旋鎖不適合單處理器系統而適合多處理器系統
自旋鎖(核心態,高優先順序)打破條件只可能在執行乙個不同的程序時完成,而在單處理器系統中這是不可能發生的。
忙等是什麼?在什麼時候是我們想要的什麼時候又不是
通過迴圈等手段反覆檢查乙個條件是否為真。
對偶爾發生的或者時間較短的適合使用忙等(沒有上下文切換),否則應採用訊號量等同步機制阻塞等待替換以節約cpu資源。
upd: 判斷第二題後來 t 和 f 都算對了
upd:我第五個簡答寫的有些問題的……另外不用寫這麼多字,點到為止即可
作業系統 期中複習
作業系統 是指控制和管理整個計算機系統的硬體 和 軟體資源 控制程式執行 改善人機介面 提供各種服務 並合理地組織排程計算機的工作和資源的分配,以提供給 使用者 和 其他軟體 方便的 介面和環境 的 程式集合.是計算機系統中最基本的系統軟體。服務使用者觀點 作業系統作為使用者介面 和 公共服務程式 ...
mmap操作思考題
父子程序共享什麼?共享檔案,和mmap的對映區 但是要用map share 1.men 後mmap能否成功?不可以。位址必須相同 2.如果open時o rdonly,mmap時prot引數指定prot read prot write會怎樣?許可權不夠。原因 建立對映區的許可權 開啟檔案的許可權 但是...
NOIP2018複習 tty的數列(思考題)
輸入輸出 輸入樣例複製 input 1 6 31 1 1 0 0 0 input 2 6 31 1 0 1 0 0 input 3 6 311 8 2 1 3 9 輸出樣例複製 output 1 1 1output 2 1 0output 3 11 1 說明題解 認真審題 連續子串行 對於or,顯然...