操作系統原理與實踐教程(第四版)習題及答案 第3章_第1頁
操作系統原理與實踐教程(第四版)習題及答案 第3章_第2頁
操作系統原理與實踐教程(第四版)習題及答案 第3章_第3頁
操作系統原理與實踐教程(第四版)習題及答案 第3章_第4頁
操作系統原理與實踐教程(第四版)習題及答案 第3章_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章處理器管理為什么程序并發執行會產生間斷性特征,并失去封閉性和可再現性?答:之所以產生間斷性特征是因為多個程序在并發執行時,需要為了完成同一項任務而相互合作,并發執行的程序間的這種相互制約導致了“暫?!獔绦小獣和!钡拈g斷性運行規律。失去封閉性是因為程序在并發執行時,多個程序需要共享系統中的多種資源。所以,這些資源的狀態是由多個程序改變的,從而使程序的運行失去了封閉性。失去可再現性是因為程序在并發執行時,由于失去了封閉性,從而導致其失去可再現性。什么是進程?為什么要在操作系統中引入進程?答:進程是可并發執行且具有獨立功能的程序在一個數據集合上的運行過程,它是操作系統進行資源分配和調度的基本單位?!斑M程”概念是人們為了使程序能夠并發執行,并且能對并發的程序加以描述和控制而引入的。試從并發性、獨立性、動態性上比較程序和進程的不同。答:(1)并發性是進程的重要特征,同時也是OS的重要特征。引入進程的目的正是為了使其程序能和其它進程的程序并發執行,而程序是不能并發執行的。(2)獨立性是指進程實體是一個能獨立運行的基本單位,同時也是系統中獨立獲得資源和獨立調度的基本單位。而對于未建立任何進程的程序,都不能作為一個獨立的單位參加運行。(3)動態性是進程最基本的特性,可表現為由創建而產生,由調度而執行,因得不到資源而暫停執行,以及由撤銷而消亡,因而進程有一定的生命期;而程序只是一組有序指令的集合,是靜態實體。什么是PCB?它具有什么作用?為什么說PCB是進程存在的唯一標識?答:進程控制塊(ProcessControlBlock,PCB)是操作系統為了管理進程而設置的一個專門的數據結構,用它來記錄進程的外部特征,描述進程的運動變化過程。它的作用是使一個在多道程序環境下不能獨立運行的程序(含數據),成為一個能獨立運行的基本單位,一個能和其它進程并發執行的進程.因為系統利用PCB來控制和管理進程,所以PCB是系統感知進程存在的唯一標志。進程與PCB是一一對應的。進程有哪些基本狀態?這些狀態具有什么特征?答:進程的三種基本狀態分別是:就緒狀態、運行狀態、阻塞狀態。(1)就緒狀態:進程已獲取到除CPU之外的所有必要資源,只要再得到CPU,就可以馬上投入運行。(2)運行狀態:處于就緒狀態的進程被調度程序選中后將得到CPU控制權,此時該進程就可以使用處理器進行數據運算和處理。(3)阻塞狀態:當一個進程正在等待某個事件的發生(如等待I/O的完成)而暫停執行,這時,即使分配有CPU時間,它也無法執行。為什么要引入掛起狀態?該狀態有什么特性?答:引入掛起狀態時為了滿足四種需要:調節系統負荷的需要、用戶的需要、父進程的需要、系統的需要。掛起狀態的特點:交換到磁盤上的進程,不讓其參與進程調度,以達到平衡系統負荷的目的。說明進程基本狀態的轉換關系及引起這些狀態間轉換的典型原因。答:處于就緒狀態的進程,在調度程序為之分配了處理器之后,就可以投入運行。同時,進程的狀態也由就緒狀態轉變為運行狀態;在采用時間片機制的操作系統中,分配給當前進程的時間片用完之后,它會暫停執行,其狀態也由運行狀態轉換到就緒狀態;如果由于某事件發生(比如進程需要訪問某I/O設備,而該設備正在被別的進程訪問)而使進程運行受阻,不能再繼續向下執行時,它的狀態會由運行狀態轉變為阻塞狀態;當進程期望的某事件發生時(比如需要訪問的I/O設備已可用),進程將從阻塞狀態轉變為就緒狀態說明在加入了掛起狀態的操作系統中,進程狀態間的轉換關系及引發轉換的典型原因。答:在引入掛起狀態的操作系統中,又增加了靜止就緒和靜止阻塞兩個新的進程狀態。調用掛起原語把處于活動就緒狀態的進程掛起后,該進程就會由活動就緒狀態轉變為靜止就緒狀態。調用掛起原語把處于活動阻塞的進程掛起后,它的狀態就轉換為靜止阻塞。調用激活原語激活后又可以轉換到活動阻塞狀態。試說明引起進程創建的典型事件。答:引起進程創建的典型事件有:用戶登錄、作業調度、提供服務、應用請求。試說明引起進程撤銷的典型事件。答:引起進程撤銷的典型事件有:正常結束、異常結束、外界干預。試說明引起進程阻塞和喚醒的典型事件。答:引起進程阻塞和喚醒的典型事件有:請求系統服務、啟動某種操作、新數據尚未到達、無新工作可做。.試說明進程創建的過程。答:創建進程的操作必須調用創建原語來實現。創建原語首先為新進程申請獲得惟一的數字標示符,并從PCB集合中獲取一個空白PCB;為新進程的程序和數據以及用戶棧分配必要的內存空間;然后對PCB進程初始化;最后將新進程插入就緒隊列中,等待被調度執行。試說明進程撤銷的過程。答:系統調用進程終止原語來終止進程。首先根據被終止進程的標示符,從PCB集合中查找到該進程的PCB,從中讀出該進程的狀態,終止該進程的執行,如果該進程還有子孫進程,應該將它的所有子孫進程終止,防止它們成為不可控進程;然后回收進程所擁有的資源;最后將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其它程序來搜集信息。什么是線程?請比較它與進程的異同。答:線程是進程中的一個實體,是被系統獨立分配和調度的基本單位。線程基本上不擁有資源,只需要一些必不可少的資源(如程序計數器、一組寄存器和棧)。進程和線程的差異:在傳統的OS中,進程是擁有資源和獨立調度分派的基本單位,在加入線程的OS中,線程是代替進程成為獨立調度和分派的基本單位,進程則仍是擁有資源的基本單位。并發粒度不同。除了不同進程的線程之外,同一個進程里的不同線程之間也可以并發執行,所以線程擁有更好的并發性。擁有資源數量不同。進程是擁有資源的基本單位,線程除了一些在運行過程中必不可少的資源外,基本上不擁有系統資源,它可以訪問自己所在的進程的資源。管理開銷不同。創建、撤銷進程時系統都要為之分配和回收資源,所以進程切換用的時間開銷相對要多于線程。進程間通信很麻煩,而同一進程的線程則通過共享進程的資源很方便地通信和同步,同步開銷小得多。進程和線程有著很多相似的地方:都可以并發執行;都有就緒、執行、阻塞這些基本狀態,也都可以在這些基本狀態之間轉換狀態;從創建到撤銷都有一定的生命周期;都需要同步工具。15.處理器調度的層次有哪些?各層次的主要工作是什么?答:處理器調度的層次分為三級調度:高級調度、中級調度和低級調度。高級調度:它需要做出兩個決定,一個是要從駐留在外存后備隊列中調入多少個作業,二是要調入哪幾個作業;然后為被選中的作業創建進程,并分配必要的系統資源,如內存、外設等,然后把新創建的進程放入就緒隊列中,等待被調度執行。中級調度:中級調度主要涉及進程在內存和外存之間的交換。當系統中的內存使用情況緊張時,中級調度把內存中暫時不能運行的進程調到外存中等待,等內存有足夠的空閑空間時,再由中級調度決定將外存上的某些具備了運行條件的就緒進程調入內存,把其狀態修改為就緒狀態并掛在就緒隊列中,等待進程調度。低級調度:按照一定的算法從就緒隊列中選擇一個進程,然后將處理器分配給它。執行低級調度功能的程序稱作進程調度程序,由它實現處理器在進程間的切換。16.搶占式調度的原則是什么?請簡要說明。答:系統使用搶占方式進行進程調度時需要遵循一定的原則,主要有以下幾個方面:時間片原則。各進程按系統分配給的一個時間片運行,當該時間片用完或由于該進程等待某事件發生而被阻塞時,系統就停止該進程的執行而重新進行調度。優先級原則。每個進程均被賦于一個調度優先級,通常一些重要和緊急的進程被賦于較高的優先級。當一個新的緊迫進程到達時,或者一個優先級高的進程從阻塞狀態變成就緒狀態時,如果該進程的優先級比當前進程的優先級高,OS就停止當前進程的執行,將處理器分配給該優先級高的進程,使之執行。短進程優先原則。當新到達的作業對應的進程比正在執行的作業對應進程的運行時間明顯短時,系統剝奪當前進程的執行,而將處理器分配給新的短進程,使之優先執行。17.在批處理系統、分時系統、實時系統中,應分別采用哪種作業(進程)調度算法?答:批處理系統采用先來先服務調度算法;分時系統采用時間片輪轉法;實時系統采用高響應比優先調度算法。18.說明時間片輪轉調度算法的基本思路。答:在采用時間片輪轉調度算法的系統中,將系統中所有的就緒進程按照FCFS原則,排成一個隊列。每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。在一個時間片結束時,發生時鐘中斷。調度程序暫停當前進程的執行,將其送到就緒隊列的末尾,并通過CPU現場切換執行當前的隊首進程,當然,進程可以未使用完一個時間片,就讓出CPU(如阻塞)。這樣可以保證就緒隊列中的所有進程都有機會獲得處理器而運行的機會,可以提高進程并發性和響應時間特性,從而提高資源利用率。19.試說明多級反饋隊列調度算法思想。答:多級反饋隊列調度算法則不必事先知道各進程的執行時間,又可以滿足各種類型進程的調度需要,它是一種目前公認較好的進程調度算法。它的算法思想如下(設采用搶占式調度):需要設置多個就緒隊列,并且為它們分別賦予不同的優先級。每隊列分配不同的時間片,規定優先級越低則時間片越長。新進程就緒后,先插入隊列1的末尾,按FCFS算法調度。若一個時間片未能執行完,則降低插入到隊列2的末尾;依此類推,降低到最后的隊列,則按“時間片輪轉”算法調度直到完成。進程由于等待事件而放棄CPU后,進入等待隊列,一旦等待的事件發生,則回到原來的就緒隊列。只有當較高優先級的隊列為空時,才調度較低優先級隊列中的進程執行。如果進程執行時有新進程進入較高優先級的隊列,則需要重新調度,搶先執行新進程,并把被搶先的進程插入原隊列的末尾。20.什么是靜態和動態優先級?如何確定靜態優先級?答:靜態優先級是在系統創建時確定的,一經確定之后在整個進程運行期間不再改變。動態優先級是在進程運行前先確定一個優先級,進程運行過程中根據進程等待時間的長短、執行時間的多少、輸入輸出信息量的大小等,通過計算得到新的優先級。21.在一個單道批處理系統中,一組作業的到達時間和運行時間如下表所示。試計算使用先來先服務、短作業優先、高響應比優先算法時的平均周轉時間和平均帶權周轉時間。作業到達時間運行時間18.01.028.50.539.00.249.10.1答:用T表示周轉時間,用W表示帶權周轉時間FCFS的作業調度情況如下:作業提交時間運行時間開始時間結束時間周轉時間帶權周轉時間18.01.08.09.01.01.028.50.59.09.51.02.039.00.29.59.70.73.549.10.19.79.80.77.0FCFS的T=(1.0+1.0+0.7+0.7)/4=0.85W=(1.0+2.0+3.5+7.0)/4=3.375SJF的作業調度情況如下:作業提交時間運行時間開始時間結束時間周轉時間帶權周轉時間18.01.08.09.01.01.028.50.59.39.81.32.639.00.29.09.20.21.049.10.19.29.30.22.0SJF的T=(1.0+1.3+0.2+0.2)/4=0.675W=(1.0+2.6+1.0+2.0)/4=1.65高響應比優先的作業調度情況如下:作業提交時間運行時間開始時間結束時間周轉時間帶權周轉時間18.01.08.09.01.01.028.50.59.09.51.02.039.00.29.69.80.84.049.10.19.59.60.55.0高響應比算法的T=(1.0+1.0+0.8+0.5)/4=0.825W=(1.0+2.0+4.0+5.0)/4=3.0Linux進程有幾個狀態,簡述各狀態的轉換條件。答:1)運行狀態2)可中斷睡眠狀態3)不可中斷睡眠狀態4)暫停狀態5)跟蹤狀態6)僵死狀態7)退出狀態進程創建時的狀態為不可中斷睡眠狀態,在do_fork()結束前被父進程喚醒后,變為執行狀態,適當時候獲得CPU。獲得CPU且正在運行的進程若申請不到某個資源時,進入睡眠狀態,如果調用sleep_on(),則其狀態變為不可中斷睡眠狀態,如果調用interruptible_sleep_on(),則其狀態變為可中斷睡眠狀態,當進程獲取所申請的資源時,睡眠進程進入運行狀態。當系統調用do_exit()時,進程進入僵死狀態。若進程通過系統調用設置標志PF_SYSTRACE,則在系統調用返回前進入函數syscall_trace(),狀態改為暫停。只有通過其他進程發送的信號SIG_KILL或SIG_CONT,才能把暫停狀態進程喚醒,重新進入run-queue隊列。23.Linux中的線程調度算法有幾種,簡述之?答:調度策略有三種:SCHED_OTHER(普通分時調度策略):它是缺省

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論