❶ 磁碟調度演算法有哪幾種
磁碟調度在多道程序設計的計算機系統中,各個進程可能會不斷提出不同的對磁碟進行讀/寫操作的請求。由於有時候這些進程的發送請求的速度比磁碟響應的還要快,因此我們有必要為每個磁碟設備建立一個等待隊列,常用的磁碟調度演算法有以下四種:[1]
先來先服務演算法(FCFS),
最短尋道時間優先演算法(SSTF),
掃描演算法(SCAN),
循環掃描演算法(CSCAN)
❷ 誰有操作系統復習題啊
操作系統作業
第一章 序言
1. 選擇題
1.1 ( )不是一個操作系統環境。 A.賽揚(celeron) B.Windows CE C.linux D.Solaris。
1.2 批處理操作系統的缺點是( ) A.系統吞吐量小 B.CPU利用率低 C.系統開銷小 D.缺少交互能力
1.3 批處理操作系統的目的是( )
A.提高系統與用戶的交互性 B.提高系統資源利用率 C.提高系統吞吐率 D.降低用戶作業的周轉時間
1.4 實時操作系統必須在( )時間內響應一個新任務。A.一個機器周期 B.被控對象規定 C.任意周期 D.時間片
1.5 下列系統中,( )是實時系統。 A.火炮的自動化控制系統B.辦公自動化系統C.管理信息系統D.計算機集成製造系統
1.6 如果分時操作系統的時間片一定,那麼( ) ,則響應時間越長。A. 用戶數越少B. 用戶數越多C. 內存越少 D. 內存越多
1.7 分時系統通常採用( )策略為用戶服務。 A. 可靠性和靈活性 B. 時間片輪轉 C. 時間片加權分配 D. 短作業優先
1.8 多道批處理系統中引入了多道程序設計技術。為了充分提高各種資源的利用率,作業的類型最好是( )
A. 短作業型 B. 計算型,即其CPU計算的工作量重於I/O的工作量
C. I/O型,即其I/O的工作量重於CPU計算的工作量 D. 計算與I/O均衡型
2.填空題
2.1 在分時系統中,影響響應時間的主要因素有___ __、__ _。
2.2 設計實時系統時應特別強調系統的_ _和_ _。
2.3 操作系統的特徵主要有:__ ___、_ _、_ _及 。
2.4 多道程序設計的特點是多道、 和 。
2.5 現代操作系統的兩個最基本的特性是程序的 與系統資源的 。
3. 判斷題
3.1 操作系統的主要作用是管理系統資源和提供用戶界面。( )
4.簡答題
4.1 並發與並行有何區別?
4.2 多道程序設計的主要優點是什麼?
4.3 多用戶分時系統如何保證系統的交互性?
第二章 操作系統結構
1. 選擇題
1.1 用戶使用操作系統通常有四種介面:終端命令、圖形界面、系統調用和( )。
A.高級指令 B. 宏命令 C. 匯編語言 D. 作業控制語言
1.2 操作系統在執行系統調用時會產生一種中斷,這種中斷稱為( )。A.系統中斷 B. I/O中斷 C. 程序性中斷 D. 軟中斷
1.3 在下列操作中,不必將控制進入操作系統的操作是( )。A.中斷 B. 鍵盤命令 C. 系統調用 D. 程序調用
1.4 ( )中斷是正在運行的進程所期待的自願中斷事件。A.程序 B. I/O C. 時鍾 D. 訪管
1.5 當用戶程序執行訪管指令時,系統( )。A. 維持在目態 B. 維持在管態 C. 從管態到目態 D. 從目態到管態
2.填空題
2.1 根據中斷信號的來源,可分把中斷為 和 二大類,屬於第一類的中斷有 ,屬於第二類的中斷有 。
2.2 根據中斷信號的含義和功能,可把中斷分為以下五類:機器故障中斷、I/O中斷、外中斷、 和 。
2.3 用戶程序是通過使用_ __產生中斷進入系統內核的。 2.4 系統調用與一般過程的主要區別是_ _。
2.5 特權指令可以在中央處理器處於 時予以執行。
3. 判斷題
3.3 特權指令僅允許在管態下執行。( ) 3.4 斷點與恢復點是一致的。( )
3.5 就執行效率而言,解釋程序要比編譯程序好一些。( ) 3.6 解釋程序是用來逐句分析執行源程序的系統軟體。( )
3.8 命令處理程序執行完上一條命令後才接著處理下一條命令。( ) 3.9 中斷向量是指中斷處理程序入口地址。( )
3.10 用戶程序有時也可以在核心態下運行. ( )
4.簡答題
4.1 什麼是中斷與中斷系統? 4.2 什麼是管態與目態?
4.3 什麼是(外)中斷?什麼是異常? 4.4系統調用與一般用戶函數調用的區別?
5.問答題
5.1 根據中斷信號的含義與功能,中斷可以分為哪幾類?
第三章 進程與處理機管理
1. 選擇題
1.1 從作業提交到作業完成的時間間隔是( )。A. 響應時間 B. 周轉時間 C. 運行時間 D. 等待時間
1.2 既考慮作業等待時間,又考慮作業執行時間的調度演算法是( )。
A. 優先數調度 B. 先來先服務 C. 短作業優先 D. 最高響應比優先
1.3 一個進程被喚醒意味著( )。A. 進程重新佔有CPU B. 進程變為執行狀態C. PCB移到等待隊列首 D. 進程變為就緒狀態
1.4 在下列事件中不立即進入進程調度程序進行調度的是( )。A. 等待I/O B. 時間片到 C. 進程執行完 D. 輸入新作業
1.5 UNIX系統的進程調度策略是基於( )。A. 時間片調度 B. 先來先調度 C. 短進程優先調度 D. 動態優先調度
1.6 如下所述的工作中,( )不是創建進程所必須做的。
A. 為進程分配CPU B. 為進程分配內存C. 建立一個PCB D. 將PCB鏈入就緒隊列
1.7 進程管理中,在( )情況下,進程的狀態由等待變為就緒。
A. 進程被調度 B. 等待某一事件 C. 時間片用完 D. 等待的事件發生
1.8 當作業調度程序將某作業調入內存並建立一個相應進程時,該進程的狀態處於( )。
A. 等待狀態 B. 後備狀態 C. 就緒狀態 D. 執行狀態
1.9 系統處理某一緊急任務時,應選擇( )。A. 最高響應比優先 B. 優先數調度 C. 短作業優先 D. 先來先服務
1.10 在下列狀態中不是屬於進程狀態的是( )。A. 等待狀態 B. 後備狀態 C. 就緒狀態 D. 執行狀態
1.11 在單處理機上執行多道程序,是在( )進行的。A. 同一時刻 B. 某一時刻 C. 同一時間間隔內 D. 某一時間間隔內
1.12 如下的進程狀態變化,不可能發生的是( )。A. 運行->就緒 B. 運行->等待 C. 等待->就緒 D. 等待->運行
1.13 當作業處於( )狀態時,已處於進程管理之下。A. 等待 B. 後備 C. 執行 D. 完成
1.14 當某進程被調度建立一個相應的進程並分配到必要的資源,該進程的狀態是( )。
A. 等待狀態 B. 後備狀態 C. 就緒狀態 D. 執行狀態
2.填空題
2.1 一個用作業說明書組織的批處理作業,其作業體一般由_ _ 、_ _和_ _組成。
2.2 按作業到達時間的先後進行調度稱為__ 調度演算法,按作業執行時間的長短進行調度稱為__ __調度演算法,既考慮到等待時間又考慮到執行時間的調度演算法稱為__ __調度演算法。
2.3 操作系統內核的主要功能是__ __。
2.4 系統中用以表徵進程的數據結構是_ _,表徵「作業」的數據結構是_ 。
2.5 進程的基本狀態有 。 2.6 進程的基本屬性有__ __。
2.7 並行性是指兩個或多個事件在_ __發生;並發性是指兩個或多個事件在 _ 發生。
2.8 處於執行狀態的進程被高優先順序進程剝奪時,其狀態變為__ __。
2.9 進程映象由_ __、_ __和_ __組成。
2.10 當系統建立一個進程時,系統就為其建立一個_ __,當進程被撤銷時就將其收回。
2.11 在時間片調度演算法中,如果時間片過大,則該調度演算法就會退化為__ _。
3. 判斷題
3.1 程序的並發與系統資源的共享是現代操作系統的兩個基本特性。( )
3.2 當後備狀態的作業被高級調度程序選中進入內存後,其相應的進程處於執行狀態。( )
3.3 一個作業的處理由一個相應的進程來完成。( )
3.4 進程的就緒隊列也是一個在一個時刻只允許一個進程訪問的臨界資源。( )
3.5 進程與程序是一 一對應的。( )
3.6 進程由執行狀態變為等待狀態是因為等待I/O操作完成、等待其他進程發來消息,等待
獲取某個資源的使用等。( ) 3.7 進程由程序、數據和進程式控制制塊組成。( )
3.8 實時系統中進程調度應採用非剝奪式調度方式。( ) 3.9 一個進程只能執行一個程序代碼。( )
3.10 操作系統中,第一個進程是在系統初啟時由初始化程序生成的。( )
3.11 作業調度程序也可以作為一個進程運行。( ) 3.12 進程式控制制塊中的所有信息必須常駐內存. ( )
4.問答題
4.1 進程式控制制塊PCB的作用是什麼?它主要包含哪些內容? 4.2 簡述創建進程的大致過程。
4.3 進程和線程的主要區別是什麼? 4.4 試從動態性、並發性、獨立性三個方面比較程序與進程。
4.5 試說明進程在三個基本狀態之間轉換的典型原因。 4.6 掛起狀態具有那些性質?
4.7 引起進程阻塞或被喚醒的主要事件是什麼?
5. 計算題
5.1 假設在單處理機上中有五個進程P1,P2,P3,P4,P5幾乎同時創建,其運行時間(單位:ms)分別為10,1,2,1,5,其優先數分別為3,5,1,2,4(1為最低優先順序)。系統時間片為1ms。試計算分別採用下列調度演算法時進程的平均周轉時間。(1)HPF(高優先順序調度演算法) (2)RR(時間片輪轉調度演算法),輪轉順序為P1,P2,P3,P4,P5。
5.2設單道批處理系統中有作業J1,J2,J3,J4,其提交時間分別為8.5,8.0,9.0,9.1;其運行時間分別為0.5, 1.0,0.2,0.1。試計算分別採用FCFS、SJF和HRF調度演算法時的平均周轉時間。
第四章 進程同步與通信、進程死鎖
1. 選擇題
1.1 在同步控制中,所謂的臨界區是指( )。A.一個緩沖區 B. 一段共享數據區 C. 一段程序 D. 一個互斥的硬體資源
1.2 對於兩個並發進程,設互斥信號量為mutex,若mutex=0,則表示( )。
A. 沒有進程進入臨界區 B. 一個進程進入臨界區 C. 一個進入另一個等待 D. 二個進程進入臨界區
1.3 在生產者-消費者問題中,設置信號量empty以確保生產者進程能向緩沖區存入信息,設置信號量full以確保消費者進程能從緩沖區中取出信息,當生產者進程向緩沖區存入信息後應執行以下的那一種PV操作( B )。
A. P(empty) B. V(full) C. P(full) D. V(empty)
1.4 若信號量s的初值為3,且有4個進程共享某臨界資源,則s的取值范圍是( )。A. [-3,3] B. [-1,3] C. [0,3] D. [-4,3]
1.5 為了防止死鎖某系統採用一次性分配全部資源的方法,這種方法是破壞了產生死鎖的那一個必要條件( )。
A. 互斥資源 B. 佔有等待 C. 循環等待 D. 非剝奪式分配
1.6 在解決死鎖的方法中屬於死鎖防止的策略是( )。A. 死鎖檢測法 B. 資源分配圖化簡C. 銀行家演算法 D. 資源有序分配法
1.7 Dijkstra提出的銀行家演算法是具有代表性的( )演算法。A. 預防死鎖 B. 避免死鎖 C. 檢測死鎖 D. 解除死鎖
1.8 系統中有3個並發進程都需要同類資源4個,則系統不會發生死鎖的最少資源數是( )A. 8 B. 9 C. 10 D. 11
1.9 某系統中有同類互斥資源m個,可並發執行且共享該類資源的進程有n個,每個進程申請該類資源的最大量為x(n≤x≤m),當不等式( )成立時,系統一定不發生死鎖。A. nx+1≤m B. nx≤m C. m(x-1)+1≤n D. m-nx+(n-1)≥0
2.填空題
2.1 一次僅允許一個進程使用的資源叫 ,訪問這種資源的那段程序稱為 。
2.2 信號量的物理意義是:信號量大於零表示_ _,信號量小於零其絕對值表示__ _。
2.3 有n個進程共享同一臨界資源,若使用信號量機制實現對臨界資源的互斥訪問,則信號量的變化范圍是_ _。
2.4 如果信號量的當前值為-4,則表示系統中在該信號量上有 個等待進程。
2.5 進程間的制約關系可分為兩類:_ __和_ _,其中_ _指合作進程之間具有一定的邏輯關系;_ __指進程間在使用共享資源方面的約束關系。
2.6 原語在執行過程中必須___ _。
2.7 從資源分配的角度看,P操作意味著向系統_ _資源,V操作意味著向系統__ _資源。
2.8 死鎖的必要條件是:__ __、__ _、_ __、_ __。 2.9 死鎖的充要條件是: 。
2.10 一次性分配進程所需的全部資源,這種預防死鎖的方法破壞了產生死鎖四個必要條件中的__ __條件。
2.11 採用 資源循序分配法,可以破壞產生死鎖四個必要條件中的__ __條件。
2.12 產生死鎖的主要原因是___ __、___ __和資源分配不當。
3. 判斷題
3.1 進程的同步與互斥是進程的二種狀態。( ) 3.2 所有進程都掛起時, 系統陷入死鎖. ( )
3.3 如果信號量S的當前值為-5, 則表示系統中共有5個等待進程. ( )
3.4 系統出現死鎖與資源的分配策略有關,與進程執行的相對速度無關。( )
3.5 一旦出現死鎖, 所有進程都不能運行。( ) 3.6 參與死鎖的進程至少有兩個已經佔有資源. ( )
3.7 有m個進程的操作系統出現死鎖時, 死鎖進程的個數為1<k≤m. ( ) 3.8 系統處於不安全狀態不一定是死鎖狀態. ( )
4.簡答題
4.1無忙等待的P、V操作是怎樣定義的?
4.2多個進程對信號量S進行了5次 P操作,2次V操作後,現在信號量的值是 -3,與信號量S相關的處於阻塞狀態的進程有幾個?信號量的初值是多少?
5.綜合題
5.1 假設三個並發進程P,Q,R。P和Q共享緩沖區A(有m個單元),Q和R共享緩沖區B(有n個單元),進程P負責從輸入設備上讀入信息並寫入緩沖區A,進程Q從緩沖區A讀出信息,加工後寫入緩沖區B,進程R負責從緩沖區B讀出信息並列印,寫出模擬P,Q,R三進程的並發程序。
5.2 設某系統中有4個並發進程P1、P2、P3、P4合作完成某一任務,P1執行完後才能執行P2和P3,P2和P3執行完後才能執行P4,試畫出優先圖描述這4個進程間的關系,然後用PV操作實現。
5.3 某高校招生大廳只能容納150人,當少於150人時,學生可以進入大廳辦理入學手續;否則,需在外等候。若將每一個學生作為一個進程,請用P、V操作編程。
5.4兩雙胞胎兄弟共同使用一個銀行帳號,約定每次限存或限取100元。設存錢與取錢兩個進程是並發的,存錢進程與取錢進程的程序如下所示。假如最初帳戶上有200元,哥哥第一次存錢時,弟弟取錢。請問最後帳號money可能出現的值是多少?如何用PV操作實現兩並發進程的正確執行?
int money=200;
// Parbegin和Parend之間的程序並發執行
Parbegin
void Save( ) //存錢
{ int m1;
m1=money;
m1=m1+100;
money=m1;
}
void Take( ) //取錢
{ int m2;
m2=money;
if(m2>=100){
m2=m2-100;
money=m2;
}
}
Parend;
5.5 化簡下列資源分配圖,說明有無進程處於死鎖狀態?
5.6 一個計算機系統中擁有8個USB口,現有P個進程競爭使用,每個進程要求兩台,試問,P的值如何選取時系統中絕對不會出現死鎖?
5.7 某系統有165個存儲單元。設四個進程p1、p2、p3、p4對存儲單元的最大需求數分別為70、35、25、100,在T0時刻,四個進程已分配的存儲單元數分別為25、15、15、25。試用銀行家演算法說明系統在T0時刻是否存在安全序列。
第五章 存儲管理
1. 選擇題
1.1 MS-Dos操作系統的命令處理程序分為常駐、暫駐二部分,其暫駐部分存放在主存中的高地址區域,以便用戶區可向該區域擴展,這種存儲管理技術稱為( )。A. 虛存管理 B. 交換 C. 覆蓋 D. 重定位
1.2 在虛擬存儲管理中,為了避免不必要的信息寫入,在頁表中須設置( )。A. 主存塊號 B. 輔存地址 C. 訪問位 D. 修改位
1.3 在頁面淘汰演算法中,淘汰駐留集中下次訪問離當前訪問的頁面最遠的頁面,這種頁面淘汰演算法稱為( )。
A. OPT演算法 B. FIFO演算法 C. LRU演算法 D. WS演算法
1.4 一個目標程序所限定的存儲范圍稱為該程序的( D )。A. 名空間 B. 地址空間 C. 物理空間 D. 符號空間
1.5 分段管理中,( )。
A.段與段之間必定連續 B. 以段為單位分配,段內連續 C. 段與段之間必定不連續 D. 以段為單位分配,每段等長
1.6 在下列存儲管理方式中,不要求連續空間且不要求作業全部裝入的管理方式是( )。
A. 單道連續 B. 請求式分頁管理 C. 分頁管理 D. 可變式分區管理
1.7 能夠實際增加存儲單元的存儲擴充方式是( )。A. 覆蓋技術 B. 交換技術 C. 物理擴充 D. 虛存技術
1.8 LRU頁面淘汰演算法選擇( )頁面作為淘汰頁面。A. 最先進入 B 訪問次數最少 C. 此前最長時間未訪問 D 此後最長時間未訪問
1.9 在存儲管理中,所謂的虛擬存儲技術是指( )的技術。A. 擴充邏輯空間B. 擴充內存空間C. 擴充外存空間D. 擴充存儲空間
1.10 採用( ),目標程序可以不經任何改動而裝入內存。A. 靜態重定位 B. 動態重定位 C.交換技術 D. 覆蓋技術
1.11 在下列概念中,與虛存有關的概念是( )。A. 最佳適應 B. 覆蓋技術 C. 動態可變 D. 抖動
1.12 要求存儲分配時地址連續的管理方式是( )。A. 分區管理 B. 段式管理 C. 分頁管理 D. 段頁式管理
1.13 將暫不執行的進程映象移到外存,讓出內存空間另作它用的技術是( )。A. 覆蓋技術B. 交換技術C. 物理擴充 D. 虛存技術
1.14 在下列存儲管理方法中,屬於連續分區管理方法的是( )。A. 頁式 B. 段式 C. 虛擬方法 D. 可變分區
1.15 為了使大作業可在小的主存空間中運行,可採用的技術是 A. 頁式管理B. 段式管理C. 請求式分頁管理 D. 可變式分區管理
1.16 程序的( )原理是虛擬存儲管理系統的基礎。A. 動態性 B. 虛擬性 C. 局部性 D. 全局性
2.填空題
2.1 可變分區法管理中, 法採用按起始地址的遞增順序排列空區。 __ _法採用按空塊長度的遞增順序排列空區。
2.2 為了提高內存的使用效率,將暫不執行的進程映象移到外存,當具備執行條件時再將它調入內存,這種存儲管理技術稱為 。
2.3 在程序開始裝入時先裝入部分模塊,當程序運行過程中調用另一模塊時再從外存調入到同一內存區域,這種存儲管理技術稱為_ __。
2.4 在頁式管理系統中,用戶程序中使用的地址稱為__ __,由系統將它轉化為___ _。
2.5. 用戶編程時使用 地址,處理機執行程序時使用 地址。
2.6 分頁管理是把內存分為大小相等的區,每個區稱為__ _,而把程序的邏輯空間分為若干__ _,頁的大小與頁幀的大小相等。
2.7 在分頁存儲管理中,為了加快地址變換速度,頁面大小的值應取_ __。
2.8 在請求式分頁系統中,被調出的頁面又立刻被調入,這種頻繁的調頁現象稱為_ _。
2.9 採用可變式分區法管理主存,存儲空間存在_ ,可用 方法消除。
2.10 分段管理中,若邏輯地址中的段內地址大於段表中該段的段長,則發生_ 。
2.11 段頁式存儲管理中,每道程序都有一個 表和若干個 表。
2.12 頁式管理系統的地址結構由__ __和_ __組成。
2.13 分段管理中的地址映射過程是:首先找到該作業段表的__ ___,然後根據邏輯地址中的_ 去查找段表得到該段的內存開始地址,再與邏輯地址中的__ __相加得到物理地址。
2.14 存儲管理的任務是_ _、_ __、_ _和_ __。
2.15 _ _也稱為__ _不是把一個進程映象的所有頁面一次性全部裝入內存,而只裝入一部分,其餘部分在執行中動態調入。
2.16 在段頁式管理中,邏輯地址由__ __、_ _、__ 三部分組成。
3. 判斷題
3.1 可共享的程序代碼被稱為可重入代碼或純代碼,運行過程中不能被改變。( )
3.2 高速小容量聯想存儲器用於減少地址變換中訪問主存的次數。( )
3.3 在可變式分區存儲管理中,要求用戶的一道作業必須放在一片連續的存儲空間中。( )
3.4 缺頁時,淘汰駐留內存時間最長的頁面是比較合理的。( )
3.5 動態重定位可使目標程序不經任何改動就可裝入內存,且可任意浮動。( )
3.6 虛擬存儲器空間實際上就是輔存空間。( ) 3.7 請求式分頁系統中,不要求進程映象一次全部裝入內存。( )
3.8 簡單分頁管理控制簡單,但易產生系統抖動。( ) 3.9 在分區存儲管理中,一道作業必須存放在連續區域中。( )
3.10 請求式分頁系統用時間換取空間,這是請求式分頁管理方式的缺點。( )
3.11 頁面替換演算法都滿足:『存儲塊數越多,缺頁中斷就越少』的規律。( )
3.12 段式管理中,若邏輯地址中的段內地址小於段表中該段的段長,則發生越界中斷。( )
3.13 頁式存儲管理方式比段式存儲管理方式更易於實現保護和共享。( )
3.14 段式管理以段為單位分配內存,段內連續,但段間不一定連續。( )
3.15 虛存空間定義越大,則相應的效率就越高。( ) 3.16 虛擬存儲系統可以在每一台計算機上實現. ( )
4.簡答題
4.1 交換技術與虛存中使用的調入調出技術有何相同和不同之處? 4.2 什麼是抖動現象?
4.3 段頁式存儲系統中,若不考慮聯想存儲器,為了獲得一條指令或數據,需訪問幾次內存?
4.4何謂虛擬存儲器,並舉一例說明操作系統如何實現虛擬內存的?
5.綜合題
5.1 某虛擬存儲器,用戶編程空間32個頁面,每頁1KB,主存為8KB,假定某時刻用戶的第2,3,5,7頁分配的物理塊號分別為6,7,4,2,問:虛地址0F80(十六進制)所對應的物理地址為多少?邏輯地址的有效位是多少?物理地址需要多少位?
5.2 在某個採用頁式存儲管理的系統中,現有J1、J2和J3共3個作業同駐主存。其中J2有4個頁面,被分別裝入到主存的第3、4、6、8頁幀中。假定頁面大小為1024位元組,
主存容量為10kB位元組。(1) 設每個頁表項只由頁號和頁幀號組成,試寫出J2的頁表。 (2) 當J2在CPU上運行時,執行到其地址空間第500號處遇到一條傳送指令: MOV 2100, 3100
請計算MOV指令中兩個操作數(十進制數)的物理地址?
5.3 某採用頁式虛擬存儲管理的系統,接收了一個共7頁的作業,作業執行時依次訪問的頁號為1、2、3、4、2、1、5、6、2、1、2、3、7、4、3、2、6。設駐留集大小為4,若分別採用FIFO和LRU頁面替換策略,求作業訪問上述頁號產生多少次頁故障?寫出依次產生頁故障後應淘汰的頁。
5.4 在一虛存系統中,採用LRU淘汰演算法,每個進程可有3個頁幀內存空間,每頁可存放200個整數。其中第一頁存放程序,且假定程序已經在內存。下列程序A和程序B用二維整型數組A[100,100]存儲數據,分別就程序A和程序B的執行過程計算缺頁數。
程序A: for(int i=1; i<=100; i++) for(int j=1; j<=100;j++) A[i,j]=0;
程序B: for(int j=1; j<=100; j++) for(int i=1; i<=100;i++) A[i,j]=0;
5.5 現有一個分頁式管理系統,其頁表設置在內存中,若對內存的一次存取需要1.5us,則訪問一次邏輯地址的存取的等效訪問時間時間是多少?現有一聯想存儲器,其平均命中率為80%,當頁表項在聯想存儲器中時其查找時間忽視不計,試問採用聯想存儲器時的存取的等效訪問時間為多少?若命中率為90%,則等效訪問時間又為多少?
❸ 進程調度的方式有哪兩種試列舉至少4種進程調度演算法。
進程調度的方式有非剝奪方式和剝奪方式。
非剝奪方式:
分派程序一旦把處理機分配給某進程後便讓它一直運行下去,直到進程完成或發生某事件而阻塞時,才把處理機分配給另一個進程。
剝奪方式:
當一個進程正在運行時,系統可以基於某種原則,剝奪已分配給它的處理機,將之分配給其它進程。剝奪原則有:優先權原則、短進程優先原則、時間片原則。
進程調度演算法:
1、先進先出演算法(FIFO):
演算法總是把處理機分配給最先進入就緒隊列的進程,一個進程一旦分得處理機,便一直執行下去,直到該進程完成或阻塞時,才釋放處理機。
舉例:有三個進程P1、P2和P3先後進入就緒隊列,它們的執行期分別是21、6和3個單位時間,對於P1、P2、P3的周轉時間為21、27、30,平均周轉時間為26。可見,FIFO演算法服務質量不佳,容易引起作業用戶不滿,常作為一種輔助調度演算法。
2、最短CPU運行期優先調度演算法(SCBF--Shortest CPU Burst First):
該演算法從就緒隊列中選出下一個「CPU執行期最短」的進程,為之分配處理機。
舉例:在就緒隊列中有四個進程P1、P2、P3和P4,它們的下一個執行進程調度期分別是16、12、4和3個單位時間,P1、P2、P3和P4的周轉時間分別為35、19、7、3,平均周轉時間為16。該演算法雖可獲得較好的調度性能,但難以准確地知道下一個CPU執行期,而只能根據每一個進程的執行歷史來預測。
3、時間片輪轉法:
前幾種演算法主要用於批處理系統中,不能作為分時系統中的主調度演算法,在分時系統中,都採用時間片輪轉法。簡單輪轉法:系統將所有就緒進程按FIFO規則排隊,按一定的時間間隔把處理機分配給隊列中的進程。這樣,就緒隊列中所有進程均可獲得一個時間片的處理機而運行。
4、多級反饋隊列:
多級隊列方法:將系統中所有進程分成若干類,每類為一級。多級反饋隊列方式是在系統中設置多個就緒隊列,並賦予各隊列以不同的優先權。
❹ 進程調度演算法 進程管理實驗
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int J=0,flag=0;
void process1()
{
if(flag!=1)
{
if(J==0)
{J=1;
flag=1;
printf("進程A可以使用臨界資源\n");
return;
}
else
printf("臨界資源忙進程A等待!\n");
}
else
{
J=0;
flag=0;
printf("進程A釋放臨界資源\n");
}
}
void process2()
{
if(flag!=2)
{
if(J==1) printf("臨界資源忙進程B等待!\n");
else
{J=1;
flag=2;
printf("進程B可以使用臨界資源\n");
return;
}
}
else
{
J=0;
flag=0;
printf("進程B釋放臨界資源\n");
}
}
void process3()
{
if(flag!=3)
{
if(J==1)
printf("臨界資源忙進程C等待!\n");
else
{J=1;
flag=3;
printf("進程C可以使用臨界資源\n");
return;
}
}
else
{
J=0;
flag=0;
printf("進程C釋放臨界資源\n");
}
}
void main()
{
int x,N,i;
printf("請輸入循環次數N:\n");
scanf("%d",&N);
for(i=0;i<N;i++)
{
x=rand()%3+1;
if(x==1)
process1();
if(x==2)
process2();
if(x==3)
process3();
}
}
❺ linux調度演算法的核心思想是什麼
第一部分:實時調度演算法
什麼是實時系統,POSIX 1003.b作了這樣的定義:是指系統可以在有限響應時間內提供所需的服務級別。較可取被定義為由Donald喬利士的的:一個實時系統的程序的邏輯正確性不僅取決於計算的准確度,而且還對結果,如果系統時間的限制不能滿足將是一個系統錯誤發生。
基於實時系統的實時性要求的不同,可分為軟實時和硬實時兩種。硬實時系統是指系統必須確保,在最壞情況下的服務時間,截止日期為事件的響應時間是在任何情況下,必須滿足。如航天飛船的控制是這樣一個系統的現實。所有其他實時系統的特點,可以稱為軟實時系統。如果清除,軟實時系統是那些從統計學的角度來看,一個任務(在下面的討論中,我們將有任務和過程不作出區分),以確保系統的處理時間,可以得到事件可以處理的最後期限到來之前,違反的最後期限,並不會帶來一個致命的錯誤,如實時多媒體系統是一種軟實時系統。
一台電腦系統的CPU和其他資源進行有效的調度和管理,以提供實時操作系統的支持。的多任務的實時系統中,資源的調度和管理更復雜的。下面討論本文將從各種實時任務調度演算法的分類的角度來看,普通的Linux操作系統進程調度和各種實時Linux系統,然後研究,以支持實時特點,普通的Linux系統的改進。實時領域的一些問題,並總結了各種實時Linux的Linux操作系統,歸根到底是如何解決這些問題。
CPU的實時調度演算法的分類
多種實時操作系統的實時調度演算法可以分為以下三類Wang99] [Gopalan01]:基於優先順序調度演算法(優先順序驅動調度PD),基於在共享的CPU使用率調度演算法(分享驅動調度SD)的比例,以及基於時間的進程調度演算法(時間驅動調度TD),下面這三種調度演算法逐一介紹。
1.1
/>基於優先順序的調度演算法,基於優先順序的調度演算法,每個進程被分配一個優先順序,每次的進程調度程序,調度程序總是具有最高的調度優先順序的任務執行。根據不同的優先順序分配方法,基於優先順序的調度演算法可以分為以下兩種類型的Krishna01] [Wang99]:靜態優先順序調度演算法
該演算法得到這些系統中運行的所有進程都靜態分配一個優先順序。靜態優先順序分配的屬性的應用程序,如任務循環中的用戶優先順序,或其他預先確定的政策。 RM(速率單調)的調度演算法是一個典型的靜態優先順序的調度演算法,根據執行的任務的調度優先順序的周期的長度確定,那些具有小的執行周期的任務的優先順序較高。
動態優先順序調度演算法:
該演算法基於任務的資源需求動態地分配任務的優先順序,資源分配和調度的目的更大的靈活性。非實時系統,這種演算法有很多,如短作業優先順序調度演算法。任務的實時調度演算法,EDF演算法是使用最廣泛的動態優先順序調度演算法,該演算法根據他們的截止日期(截止日期)分配優先順序的就緒隊列中的每個任務,最近期限具有最高的優先順序。
1.2
基於優先順序調度演算法的調度演算法是簡單而有效的,但這種演算法的基礎上按比例份額是一個硬實時調度,許多的情況下,不適合使用此演算法:例如,軟實時應用,如實時多媒體會議系統。對於軟實時應用程序,共享資源調度演算法(SD演算法)的比例使用是更合適的。
比例共享調度演算法是指對CPU使用率的比例共享調度演算法,其基本思路是按照一定的權重(比率),需要一組調度安排任務,以使它們的權重成比例的執行時間。
要實現比例共享調度演算法[Nieh01]有兩種方法:第一種方法是調整的准備過程中出現的調度隊列隊第一頻率,並安排一線隊的過程中,執行第二種方法是連續調度進程就緒隊列中投產,但根據調整分配一個進程的運行時間片分配的權重。
比例共享調度演算法可以分為以下類別:循環賽,公平份額,公平排隊,的彩票調度方法,(彩票)。
比例共享調度演算法的一個問題是,它並沒有定義任何優先的概念,所有的任務都根據其應用的CPU資源的比例共享系統過載時,執行的所有任務將較慢比例。因此,為了確保該系統的實時過程中獲得一定量的CPU處理時間,一般採用的是動態權重的調整過程。
1.3。基於時間進程調度演算法的調度演算法
對於那些具有穩定,簡單的系統已知輸入,您可以使用時間驅動(驅動時間時間:TD)數據處理,它可以提供一個良好的預測。這種調度演算法本質上是一個設計定型的離線靜態調度方法。在系統的設計階段,所有處理的情況下,在明確的制度,每個任務切換的開始和結束的時間提前做出了明確的安排和設計。該演算法是適用於小型嵌入式系統,自動化控制系統,感測器和其他應用環境。
該演算法的優勢是良好的可預測性任務的執行,但最大的缺點是缺乏靈活性,而且會有一個任務需要執行,而CPU保持空閑。
一般的Linux系統CPU調度
一般的Linux系統支持實時和非實時兩種進程,實時進程與普通進程方面具有絕對的優先權。相應地,實時進程調度策略SCHED_FIFO或SCHED_RR,普通進程SCHED_OTHER調度策略。
每個任務調度演算法的實現在Linux四種調度參數,它們是rt_priority優先政策(尼斯),計數器。調度進程調度的基礎上,這四個參數。
SCHED_OTHER調度策略,調度程序總是會選擇優先順序+計數器的值進程調度的執行。從邏輯分析存在SCHED_OTHER調度策略調度處理來執行,其特徵在於,所述優先順序是一個固定的調度周期(歷元),在每個調度周期內的過程中的優先順序,計數器的值的大小的影響這一刻已經確定變數值的過程中被創建時,它代表了進程的優先順序,也代表數量的時間片,通過該方法可以得到在每個調度周期內,計數器是一個動態值,它反映了當前調度周期的過程中,剩餘的時間片。在每個調度周期的開始,分配給優先順序值計數器,那麼每一次進程被調度運行計數器的值?減少。當計數器的值是零,這個過程已經運行的時間片調度期內,不再參與調度周期進程調度。當所有的進程都用完了時間片調度期結束,然後一遍又一遍。此外,可以看出在Linux系統中的調度周期是不固定的,它的量是動態變化的,例如,在運行的進程的數目和它們的優先順序值?可以影響一個劃時代的長度。有一點值得注意的是,在2.4內核中,首要任務是不錯的替換兩個類似的作用。
按比例分擔的調度策略調度策略SCHED_OTHER可見的性質,它的這種設計方法,以確保進程調度的公平性 - 一個低優先順序進程,在每個時代也將得到他們的份額那些CPU的執行時間,此外,它也提供了不同的進程的優先順序,進程執行時間可以得到更多的具有高優先順序值。
對於實時的過程中,他們使用基於實時優先順序rt_priority的優先順序調度策略,但相同的實時優先順序的進程調度方法是根據不同的調度策略,
BR /> SCHED_FIFO:不同的進程,根據靜態優先順序排隊,然後在相同的優先順序隊列,先准備好運行的第一誰調度和運行的進程不會被終止,直到發生以下情況:1。高優先順序的進程篡奪了CPU;自己的資源請求受阻;自己主動放棄CPU(呼叫SCHED_YIELD);
SCHED_RR是這樣的:這個調度策略SCHED_FIFO與上述完全相同,除了時間片分配給每個進程,正在實施的過程中,給執行時間片,時間片的長度可以通過sched_rr_get_interval調用
由於Linux系統本身是一個桌面導向的系統,因此,它是用於在實時應用中的一些問題:/> /> Linux系統調度單位是10ms,所以它不能提供精確的定時中斷; p>當一個進程調用系統調用進入內核模式運行,它不能被搶占;
Linux內核實現大量採用了封閉中斷操作損失;
由於使用虛擬內存技術,當發生頁面錯誤時,從硬碟中讀取的數據交換的需要,但硬碟讀取和寫入的存儲位置的隨機性,將導致隨機讀取和寫入時間,這在某些情況下,會影響實時任務期限;
雖然Linux的進程調度器還支持實時優先順序,但由於缺乏有效的實時任務調度機制和調度演算法;其網路子協議處理和其它設備的中斷處理,調度伴有相應的過程和自己的有沒有明確的調度機制;
各種實時Linux系統
Home>的的
3.1 RT-Linux和RTAI
RT-Linux是新墨西哥大學的研究(新墨西哥州技術學院)[RTLinuxWeb] [Barabanov97。其基本思路是,在Linux系統上的硬實時支持,它實現了一個微內核實時操作系統(也被稱為RT-Linux的實時子系統),而普通的Linux系統作為一個低優先順序任務在操作系統中運行。在正常的Linux系統的另一個任務可以溝通,通過FIFO和實時任務。 RT-Linux的框架如圖1所示:
圖1 RT-Linux的結構
RT-Linux的關鍵技術是軟體模擬硬體中斷控制器。當Linux系統不時阻止CPU中斷,實時定量RT-Linux的子系統的請求攔截,愛不釋手,而事實上並沒有真正阻止硬體中斷,從而避免了由於中斷造成的封由系統在一段時間內沒有響應,從而在改進的實時。當傳遞給Linux內核的RT-Linux的一個硬體中斷到達截取的中斷,並確定是否有一個實時子系統中斷常式來處理或處理。此外,的最小定時的精度在正常的Linux系統是確定系統的實時時鍾的頻率,Linux的系統時鍾被設置到時鍾中斷每秒100,所以在Linux的系統定時的精度10毫秒,即時鍾周期10ms時,RT-Linux的實時時鍾設置為單觸發狀態,可以提供更多的十幾微秒調度粒度。
RT-Linux實時子系統的任務調度優先順序驅動演算法,RM,EDF等,也可用於其他調度演算法。
RT-Linux的專有系統,重型工作,的確是一個不錯的選擇,但他只提供了CPU資源的調度和實時系統和Linux系統的關系不是非常密切,因此開發人員可以充分利用已在Linux系統中,如協議棧實現的功能。 RT-Linux的工業控制等實時任務簡單和硬實時要求的環境,但大量的工作需要做,如果你想應用的多媒體處理。
義大利實時應用程序介面(RTAI)來自RT-Linux的,它是在設計和RT-Linux的思想相同。這是原來的設計中,為了解決問題,RT-Linux的不同版本的Linux之間很難很難移植,RTAI在Linux上定義的實時硬體抽象層,這個抽象層介面提供實時任務Linux系統的相互作用,這可以增加一點可以Linux內核源代碼到Linux內核的實時支持。
3.2。 KURT-Linux的
KURT-Linux的堪薩斯大學開發的,它可以提供實時微秒精度[KurtWeb] [斯里尼瓦桑]。與RT-Linux的單獨實現一個實時內核,KURT-Linux是常用的Linux系統的基礎上實現的,這也是第一個基於Linux的實時系統可以使用普通的Linux系統調用。
KURT-Linux系統分為三種狀態:正常狀態,實時狀態和混合狀態,在正常狀態下,它使用普通的Linux實時運行狀態實時調度策略任務,實時和非實時任務的混合狀態,可以執行實時狀態可以被用來為實時的要求更加嚴格。
為了提高Linux系統的實時特性,有必要提高精度的時鍾系統的支持。但是,如果只是簡單地增加時鍾頻率將導致調度負載的增加,從而嚴重降低系統的性能。為了解決這個矛盾,KURT-Linux中使用的時鍾精度的方法[UTIMEWeb]提高Linux系統UTIME,時鍾晶元設置為單次觸發狀態(單拍模式),也就是每個時鍾晶元設置超時,然後再次超時事件發生時,在時鍾中斷的處理程序所需的時鍾晶元設置一個超時。其基本思想是一個精確的時間意味著我們需要的時鍾中斷發生時,我們需要一個更精確的時間,以達到這樣的精度,但並不一定需要系統時鍾頻率。它採用了CPU時鍾計數器時間戳計數器(TSC)提供准確的CPU頻率精度的時間。
KURT-Linux的實時任務調度,使用靜態CPU的實時調度演算法,基於時間(TD)。實時任務需要實時事件發生在設計階段就必須清楚列明。該演算法可以實現更好的調度任務,對於那些誰周期。
KURT-Linux的相RT-Linux的優勢之一是,你可以使用系統調用的Linux系統,它最初是專為硬實時支持,但因為它是簡單的實現將使用一個簡單的時間驅動調度取代Linux的調度,實時進程調度的影響等非實時任務,在某些情況下會發生實時任務的截止日期是脆弱的不符合的,也被稱為嚴格的實時系統(快地實時)。基於KURT-Linux的應用程序:藝術(ATM參考交通系統),多媒體播放軟體。 KURT-Linux的另一種方法,需要頻繁的時鍾晶元編程。
3.3。 RED-Linux的
RED-Linux是加州大學爾灣,實時Linux系統的發展[REDWeb] [Wang99],它將支持實時調度和Linux實現相同的操作系統內核。它支持三種類型的調度演算法,即:時間驅動優先Dirven,分享驅動。
為了提高系統的調度粒度,RED-Linux的學習RT-Linux的軟體模擬中斷的管理機制,並增加頻率的時鍾中斷。 RED-Linux的中斷模擬程序只是簡單地中斷會在隊列中排隊一個硬體中斷到來時,並沒有進行實際的中斷處理程序。
另外,為了解決Linux的內核模式的過程中不能被中斷,RED-Linux的插入Linux內核搶占點原語的眾多功能,使這一進程在內核模式下,也在一定程度上被搶占。通過這種方法提高了內核的實時特性。
RED-Linux的設計目標是提供常規調度框架可以支持多種調度演算法,系統為每個任務增加幾個屬性,進程調度的基礎上:
優先順序:作業的優先順序;
開始時間:工作的開始時間;
完成時間:工作的結束時間; BR p>預算:資源的數量在操作過程中要使用的工作;
調整值?這些屬性和調度根據什麼優先使用的這些屬性值幾乎所有的調度演算法。在這種情況下,三種不同的調度演算法無縫地一起耦合到一個統一的。
❻ 實現對磁碟的驅動調度是誰的功能
是計算機系統的功能
磁碟調度在多道程序設計的計算機系統中,各個進程可能會不斷提出不同的對磁碟進行讀/寫操作的請求。所以說磁碟的驅動調度是整個系統的功能
常用的磁碟調度演算法有以下四種:先來先服務演算法(FCFS),最短尋道時間優先演算法(SSTF),掃描演算法(SCAN),循環掃描演算法(CSCAN)
❼ 基於反饋排隊演算法的cpu調度的模擬實現
設計 1 CPU 調度演算法的模擬實現 一、 設計目的 1、 深入理解 CPU 調度的四種演算法: 先到先服務演算法 FCFS、 非搶占最短作業優先演算法 SJF
❽ 題目:編程實現四種調度演算法(高分求助!!!!!!!!!!!)
你是師大的?
❾ 作業調度的演算法有哪些
作業調度的演算法有:演算法有先來先服務、最短作業優先演算法、最高響應比優先演算法、基於優先數調度演算法。
1、演算法有先來先服務
最簡單的調度演算法,按作業的先後順序進行調度,只考慮每個作業的等待時間而未考慮執行時間的長短。
2、最短作業優先演算法
最短作業優先演算法是對先來先服務演算法的改進,其目標是減少平均周轉時間。對預計執行時間短的作業優先分派處理機。通常後來的短作業不搶先正在執行的作業。 只考慮執行時間而未考慮等待時間的長短。
3、最高響應比優先演算法
最高響應比優先演算法是對先來先服務方式和最短作業優先演算法方式的一種綜合平衡。最高響應比優先法調度策略同時考慮每個作業的等待時間的長短和估計需要的執行時間長短,從中選出相應比最高的作業投入執行。
4、基於優先數調度演算法
優先數調度演算法常用於批處理系統中。在進程調度中,每次調度時,系統把處理機分配給就緒隊列中優先數最高的進程。它又分為兩種:非搶占式優先數演算法和搶占式優先數演算法。
(9)四種調度演算法擴展閱讀:
作業調度是指按照時間周期(年、月、日、時、分、秒等)對作業進行分割,並根據業務需求、作業長度、存儲管理及依賴性關系對作業的執行方式加以調度。主要任務是從作業後備隊列中選擇作業進入主存運行。作業調度的功能主要有以下幾方面:
1、記錄各作業在系統中的狀態;
2、從後備隊列中挑選一部分作業投入運行;
3、從被選中的作業做好執行前的准備工作;
4、在作業執行結束時,做善後處理工作。
進行作業調度有很多作業調度演算法,這些作業調度演算法要實現的目標是:
1、調度對所有作業都是公平合理的;
2、應使設備有較高的利用率(提供系統利用率);
3、每次運行盡可能多的作業(提高系統吞吐量);
4、較快的相應時間。