操作系統-第2章習題解析


第二章習題解析

1.  什么是前趨圖?為什么要引入前趨圖?

答:前趨圖 (Precedence Graph) 是一個有向無循環圖,記為DAG(DirectedAcyclic Graph) ,用於描述進程之間執行的前后關系。

2.  畫出下面四條語句的前趨圖:

S1=a: =x+y;

S2=b:=z+1;

S3=c:=a–b ;

S4=w:=c+1;

答:其前趨圖為:

3.  什么程序並發執行會產生間斷性特征?

答:程序在並發執行時,由於它們共享系統資源,為完成同一項任務需要相互合作,致使這些並發執行的進程之間,形成了相互制約關系,從而使得進程在執行期間出現間斷性。      

4.程序並發執行時為什么會失去封閉性和可再現性?

答:程序並發執行時,多個程序共享系統中的各種資源,因而這些資源的狀態由多個程序改變,致使程序運行失去了封閉性,也會導致其失去可再現性。

5.在操作系統中為什么要引入進程概念?它會產生什么樣的影響?

答:為了使程序在多道程序環境下能並發執行,並對並發執行的程序加以控制和描述,在操作系統中引入了進程概念。

影響 : 使程序的並發執行得以實行。

6.試從動態性,並發性和獨立性上比較進程和程序。

答: (1) 動態性是進程最基本的特性,表現為由創建而產生,由調度而執行,因得不到資源而暫停執行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是靜態實體。

        (2) 並發性是進程的重要特征,同時也是OS 的重要特征。引入進程的目的正是為了使其程序能和其它進程的程序並發執行,而程序是不能並發執行的。

        (3) 獨立性是指進程實體是一個能獨立運行的基本單位,也是系統中獨立獲得資源和獨立調度的基本單位。對於未建立任何進程的程序,不能作為獨立單位參加運行。  

7.試說明PCB的作用,為什么說PCB是進程存在的唯一標志?

答: PCB 是進程實體的一部分,是操作系統中最重要的記錄型數據結構 。作用是使一個在多道程序環境下不能獨立運行的程序,成為一個能獨立運行的基本單位,

成為能與其它進程並發執行的進程。OS是根據PCB對並發執行的進程進行控制和管理的。

8.PCB提供了進程管理和進程調度所需要的哪些信息?

答: 進程管理:通用寄存器、指令計數器、程序狀態字、用戶棧指針  

   進程調度:進程狀態、進程優先級、事件、其他信息

9.進程控制塊的組織方式有哪幾種?

答:線性方式、鏈接方式、索引方式

10.何謂操作系統內核?內核的主要功能是什么?      

答:現在操作系統一般將0S划分為若干層次,再將0s的不同功能分別設置在不同的層次中。通常將一些與硬件緊密相關的模塊(如中斷處理程序等)、各種常用設備的驅動程序以及運行頻率較髙的模塊(如時鍾管理、

進程調度和許多模塊所公用的一些基本操作),都安排在緊靠硬件的軟件層次中,將它們常駐內存,即通常被稱為的0S內核。

支撐功能:中斷處理、時鍾管理、原語操作  

資源管理功能:進程管理、存儲器管理、設備管理

11.試說明進程在三個基本狀態之間轉換的典型原因。

答:(1)就緒狀態一執行狀態:進程分配到CPU資源

       2)執行狀態一就緒狀態:時間片用完

       3)執行狀態一阻塞狀態:I/0請求

       4)阻塞狀態一就緒狀態:I/0完成

12 .為什么要引入掛起狀態?該狀態有哪些性質?

答:引入掛起狀態處於五種不同的需要:終端用戶需要,父進程需要,操作系統需要,對換需要和負荷調節需要。處於掛起狀態的進程不能接收處理機調度。

13 .在進行進程切換時,所要保存的處理機狀態信息有哪些?      

答:進行進程切換時,所要保存的處理機狀態信息有:

(1)進程當前暫存信息  

(2)下一指令地址信息  

(3)進程狀態信息  

(4)過程和系統調用參數及調用地址信息。

14 .試說明引起進程創建的主要事件。  

:引起進程創建的主要事件有:用戶登錄、作業調度、提供服務、應用請求。

15 .試說明引起進程被撤銷的主要事件。

答:引起進程被撤銷的主要事件有:正常結束、異常結束(越界錯誤、保護錯、非法指令、特權指令錯、運行超時、等待超時、算術運算錯、I/0故障)、外界干預(操作員或操作系統干預、父進程請求、父進程終止)。 

16 .在創建一個進程時所要完成的主要工作是什么?

答:(1)0S發現請求創建新進程事件后,調用進程創建原語Creat();

       (2)申請空白PCB;

       (3)為新進程分配資源;

       (4)初始化進程控制塊;

       (5)將新進程插入就緒隊列。

17.  在撤銷一個進程時所要完成的主要工作是什么?

答:(1)根據被終止進程標識符,從PCB集中檢索出進程PCB,讀出該進程狀態。

       2)若被終止進程處於執行狀態,立即終止該進程的執行,置調度標志真,指示該進程被終止后重新調度。

       3)若該進程還有子進程,應將所有子孫進程終止,以防它們成為不可控進程。

       4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統。

   (5)將被終止進程PCB從所在隊列或列表中移出,等待其它程序搜集信息。

18.試說明引起進程阻塞戒被喚醒的主要事件是什么?

答:a.請求系統服務;b.啟動某種操作;c.新數據尚未到達;d.無新工作可做。

19.為什么要在0S中引入線程?

答:在操作系統中引入線程,則是為了減少程序在並發執行時所付出的時空開銷,使0S具有更好的並發性,提高CPU的利用率。進程是分配資源的基本單位,而線程則是系統調度的基本單位。

20.試說明線程具有哪些屬性?

答:(1)輕型實體(2) 獨立調度和分派的基本單位(3)可並發執行(4)共享進程資源。

21.試從調度性,並取性,擁有資源及系統開銷方面對進程和線程進行比較。

答:(1)調度性。線程在0S中作為調度和分派的基本單位,進程只作為資源擁有的基本單位。

       2)並發性。進程可以並發執行,一個進程的多個線程也可並發執行。

       3)擁有資源。進程始終是擁有資源的基本單位,線程只擁有運行時必不可少的資源,本身基本不擁有系統資源,但可以訪問隸屬進程的資源。

       4)系統開銷。操作系統在創建、撤消和切換進程時付出的開銷顯著大於線程。

22.何謂用戶級線程和內核支持線程?

答:(1)用戶級線程:僅存在於用戶空間中的線程,無須內核支持。這種線程的創建、撤銷、線程間的同步與通信等功能,都無需利用系統調用實現。用戶級線程的切換通常發生在一個應用進程的諸多線程之間,同樣無需內核支持。

       2)內核支持線程:在內核支持下運行的線程。無論是用戶進程中的線程,還是系統線程中的線程,其創建、撤銷和切換等都是依靠內核,在內核空間中實現的。

在內核空間里還為每個內核支持線程設置了線程控制塊,內核根據該控制塊感知某線程的存在並實施控制。

23.試說明用戶級線程的實現方法。

答:用戶級線程是在用戶空間中的實現的,運行在“運行時系統”與“內核控制線程”的中間系統上。運行時系統用於管理和控制線程的函數的集合。內核控制線程或輕型進程LWP可通過系統調用獲得內核提供服務,利用LWP進程作為中間系統。

24.試說明內核支持線程的實現方法。

答:系統在創建新進程時,分配一個任務數據區PTDA,其中包括若干個線程控制塊TCB空間。創建一個線程分配一個TCB,有關信息寫入TCB,為之分配必要的資源。

當PTDA中的TCB用完,而進程又有新線程時,只要所創建的線程數目未超過系統允許值,系統可在為之分配新的TCB;在撤銷一個線程時,也應回收線程的所有資源和TCB。

25.多線程模型有哪幾種類型?多對一模型有何優缺點?

答:多對一模型、一對一模型和多對多模型。

       多對一模型的主要缺點在於,如果一個線程在訪問內核時發生阻塞,則整個進程都會被阻塞;此外,在任一時刻,只有一個線程能夠訪問內核,多個線程不能同時在多個處理機上運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM