作業系統期中複習思考題

2022-09-14 19:45:24 字數 3063 閱讀 9211

本文主要適用於計算機類本科作業系統課程的期中考試。

作業系統分層設計/按模組設計

分層設計定義層次結構和介面,每個層次建立在下層的基礎上。構建和除錯簡單,難以對層次做準確的定義,層次間互動關係錯綜複雜,呼叫開銷大。

按模組設計用物件導向技術,將系統設計為乙個核心核心和若干個可載入的核心模組。能動態實現特定功能,比分層系統更加靈活,比微核心更加高效(不需要訊息傳遞)。

微核

微核心最大限度地將功能從核心移到服務模組,實現了清晰的分離,具有良好的彈性,方便擴充套件,可靠安全,也面臨巨大的切換/通訊開銷。

使用者模式/核心模式,模式位的作用

核心態下可以執行使用者態下無法執行的特權指令,通常使用者程序執行在使用者態,處理系統呼叫、異常、中斷時進入核心態。

模式位標識了當然是執行在使用者態還是核心態。

執行緒/程序/程式

程式是被動實體,通常是可執行檔案;程序是活動實體,是程式的一次執行過程,當可執行檔案被載入記憶體,程式才能稱為程序。執行緒是程式執行流的最小單元,程序通常包含多個執行緒。

程序與執行緒的比較:排程;系統資源分配;併發;系統開銷;位址空間;通訊。

多道程式設計及其作用

在記憶體中同時裝載若干道程式併發執行,共享系統中的各種資源。

作用:具有巨集觀上並行的特點,使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,顯然...