南京郵電大學 操作系統 課后習題答案  下載本文

《操作系統教程》南郵正式版

習題解答

第三章 進程管理與調度習題

1、什么是多道程序設計?多道程序設計利用了系統與外圍設備的并行工作能力,從而提高工作效率,具體表現在哪些方面? 答:

讓多個計算問題同時裝入一個計算機系統的主存儲器并行執行,這種設計技術稱“ 多道程序設計 ”,這種計算機系統稱“多道程序設計系統” 或簡稱“多道系統”。在多道程序設計的系統中,主存儲器中同時存放了多個作業的程序。為避免相互干擾,必須提供必要的手段使得在主存儲器中的各道程序只能訪問自己的區域。 提高工作效率,具體表現在:

? ?

提高了處理器的利用率;

充分利用外圍設備資源:計算機系統配置多種外圍設備,采用多道程序設計并行工作時,可以將使用不同設備的程序搭配在一起同時裝入主存儲器,使得系統中各外圍設備經常處于忙碌狀態,系統資源被充分利用;

? 發揮了處理器與外圍設備以及外圍設備之間的并行工作能力;

從總體上說,采用多道程序設計技術后,可以有效地提高系統中資源的利用率,增加單位時間內的算題量,從而提高了吞吐率。 2、請描述進程的定義和屬性。 答:

進程是具有獨立功能的程序關于某個數據集合上的一次運行活動,是系統進行資源分配、調度和保護的獨立單位。

進程的屬性有:結構性?共享性?動態性?獨立性?制約性?并發性 3、請描述進程與程序的區別及關系。 答:

1

程序是靜止的,進程是動態的。進程包括程序和程序處理的對象(數據集),進程能得到程序處理的結果。進程和程序并非一一對應的,一個程序運行在不同的數據集上就構成了不同的進程。通常把進程分為“系統進程”和“用戶進程”兩大類,把完成操作系統功能的進程稱為系統進程,而完成用戶功能的進程則稱為用戶進程。 4、進程有哪三種基本狀態?三種進程狀態如何變化? 答:

通常,根據進程執行過程中不同時刻的狀態,可歸納為三種基本狀態:

· 等待態 :等待某個事件的完成; · 就緒態 :等待系統分配處理器以便運行; · 運行態 :占有處理器正在運行。

進程在執行中狀態會不斷地改變,每個進程在任何時刻總是處于上述三種基本狀態的某一種基本狀態,進程狀態之間轉換關系:

運行態→等待態 往往是由于等待外設,等待主存等資源分配或等待人工干預而引起的。 等待態→就緒態 則是等待的條件已滿足,只需分配到處理器后就能運行。

運行態→就緒態 不是由于自身原因,而是由外界原因使運行狀態的進程讓出處理器,這時候就變成就緒態。例如時間片用完,或有更高優先級的進程來搶占處理器等。

就緒態→運行態 系統按某種策略選中就緒隊列中的一個進程占用處理器,此時就變成了運行態。

5、進程控制塊是什么,有何作用?通常進程控制塊包含哪些信息? 答:

進程控制塊(Process Control Block,簡稱PCB),是操作系統為進程分配的用于標志進程,記錄各進程執行情況的。進程控制塊是進程存在的標志,它記錄了進程從創建到消亡動態變化的狀況,進程隊列實際也是進程控制塊的鏈接。操作系統利用進程控制塊對進程進行控制和管理。

·標志信息 含唯一的進程名

·說明信息 有進程狀態、等待原因、進程程序存放位置和進程數據存放位置 ·現場信息 包括通用、控制和程序狀態字寄存器的內容 ·管理信息 存放程序優先數和隊列指針 進程控制塊的作用有:

2

? (1)記錄進程的有關信息,以便操作系統的進程調度程序對進程進行調度。這些信息包括標志信息、說明信息、現場信息和管理信息等;

? (2)標志進程的存在,進程控制塊是進程存在的唯一標志

6、什么是可再入程序? 答:

(1) 什么是 可再入程序 。 一個能被 多個用戶同時調用 的程序稱做\可再入 \的程序。 (2) 可再入程序的性質。

? ?

可再入程序必須是純代碼,在執行時自身不改變;

一個可再入程序要求調用者提供工作區,以保證程序以同樣方式為各用戶服務。

編譯程序 和 操作系統程序 通常都是\可再入\程序,能同時被不同用戶調用而構成不同的進程。

7、闡述進程調度的常用算法:先來先服務、優先數法、輪轉法。 答:

?

先來先服務調度算法 該算法按進程進入就緒隊列的先后次序選擇可以占用處理器的進程。

? 優先數調度算法 對每個進程確定一個優先數,該算法總是讓優先數最高的進程先使用處理器。對具有相同優先數的進程,再采用先來先服務的次序分配處理器。系統常以任務的緊迫性和系統效率等因素確定進程的優先數。進程的優先數可以固定的,也可隨進程執行過程動態變化。 一個高優先數的進程占用處理器后,系統處理該進程時有兩種方法,一是\非搶占式\,另一種是\可搶占式\。前者是此進程占用處理器后一直運行到結束,除非本身主動讓出處理器,后者則是嚴格保證任何時刻總是讓優先數最高的進程在處理器上運行。

? 時間片輪轉調度法 把規定進程一次使用處理器的最長時間稱為\時間片\。時間片輪轉調度算法讓就緒進程按就緒的先后次序排成隊列,每次總選擇該隊列中第一個進程占用處理器,但規定只能使用一個時間片,如該進程尚未完成,則排入隊尾,等待下一個供它使用的時間片。各個進程就這樣輪轉運行。時間片輪轉算法經常用于分時操作系統中。

8、程序狀態字包含哪些主要內容? 答:

(1)程序基本狀態

3

(2)中斷碼 (3)中斷屏蔽位

9、比較進程調度與作業調度的不同點。 答:

1)作業調度是宏觀調度,它決定了哪一個作業能進入主存。進程調度是微觀調度,它決定各作業中的哪一個進程占有中央處理機。(或)作業調度是高級調度,它位于操作系統的作業管理層次。進程調度是低級調度,它位于操作系統分層結構的最內層。

(2)作業調度是選符合條件的收容態作業裝入內存。進程調度是從就緒態進程中選一個占用處理機。

10、C程序說明系統調用fork()的應用。請在①②③④處填入有關父、子進程的正確語句: /* Example to demonstrate the function of System Call fork */ main() {

int i; ① if(i)>0 {

printf(“②”) ; } else{

printf(“③”) ; }

printf(“④”) ; }

執行本程序時,子進程在標準輸出上打印以下結果: It is child process. Exit.

父進程在標準輸出上打印以下結果: It is Parent process. Exit.

11、單道批處理環境下有5個作業,各作業進入系統的時間和估計運行時間如下表所示:

4

作業 1 2 3 4 5

進入系統時間 8:00 8:20 8:30 9:00 9:10 估計運行時間/分鐘 40 30 12 18 5 (1) 如果應用先來先服務的作業調度算法,試將下面表格填寫完整。 作業 1 2 3 4 5 進入系統時間 8:00 8:20 8:30 9:00 9:10 估計運行時間/分鐘 40 30 12 18 5 作業平均周轉時間T= (2)如果應用最短作業優先的作業調度算法,試將下面表格填寫完整。 作業 1 2 3 4 5 進入系統時間 8:00 8:20 8:30 9:00 9:10 估計運行時間/分鐘 40 30 12 18 5 作業平均周轉時間T= 答: 1. (1) 作業 1 2

開始時間 結束時間 周轉時間/分鐘 開始時間 結束時間 周轉時間/分鐘 進入系統時間 8:00 8:20 估計運行時間/分鐘 40 30 5

開始時間 8:00 8:40 結束時間 8:40 9:10 周轉時間/分鐘 40 50





街机千炮捕鱼2016 急速赛车 安卓 易股通配资 福彩快乐10分玩法 河北11选五任5预测 黑龙江6+1体彩开奖结果查询 排列五杀号定胆 安徽快3下载 上海 股指配资 推荐 福彩3d基本连线走势图 秒速时时彩官网平台 湖北体彩11选5前三组选 p2p理财平台有哪些 最准极速时时彩全天计划 浙江11选5什么时候开 股票行情软件下载 澳洲幸运10开奖走势图