02326操作系统课后答案
p13
1、計算機系統由哪些部分組成?
2、什么是計算機的操作系統?
答:操作系統是計算機的一種系統軟件,由它統一管理計算機系統的資源和控制程序的執行。操作系統既是一種資源管理程序,又是一種其他程序執行的控制程序,其目的是提供一個供其它程序執行的良好環境。
3、操作系統管理計算機系統的哪些資源?
答:操作系統管理的計算機系統資源包括兩大類:硬件資源和軟件資源。計算機系統的硬件資源主要包括CPU、主存儲器、輔助存儲器(磁帶、磁盤等)以及各種輸入輸出設備(鍵盤、顯示器、打印機等);軟件資源包括各種程序和數據。
4、操作系統怎樣為用戶提供良好的運行環境?
答:操作系統是一種系統程序,其目的是提供一個供其他程序執行的良好環境。
首先操作系統要使得計算機系統使用方便:操作系統為用戶提供方便的使用接口,用戶按需要輸入命令或從提供的"菜單"中選擇命令,操作系統按命令去控制程序的執行;用戶也可以請求操作系統的功能模塊為其服務,而不必了解硬件的特性。
其次操作系統要使得計算機系統能高效地工作:操作系統擴充硬件的功能,而硬件的功能發揮的更好;操作系統使擁護合理共享資源,防止各用戶間的干擾;操作系統以文件形式管理軟件資源,保證信息的安全和快速存取。
5、操作系統怎樣提高系統的效率?
答:為提高系統的效率:
操作系統擴充硬件的功能,使硬件的功能發揮得更好;
操作系統使用戶合理共享資源,防止各用戶間的相互干擾;
操作系統以文件形式管理軟件資源,保證信息安全和快速存取。
6、批處理操作系統怎樣實現計算機操作的自動化?通過相應的輸入設備傳送到大容量的磁盤上等待處理。操作系統中的作業調度程序按照某種原則從磁盤上選擇若干作業裝入主存儲器,主存儲器中的這些作業可以占用中央處理機運行。當某
答:用戶把準備好的一批作業信息,包括程序、數據、作業控制說明書個作業執行結束時,啟動打印機,輸出計算結果。然后又可以從磁盤上選擇作業裝入主存儲器,讓其運行。這樣,在作業控制說明書的控制下,無需認為干預,批處理操作系統實現了計算機操作的自動化。
7、分時操作系統的主要特點是什么?
答:分時操作系統支持多道程序同時執行,實現了人機交互對話,主要有以下特點:
同時性?允許多個終端用戶同時使用一個計算機系統;
獨立性?用戶在各自的終端上請求系統服務,彼此獨立,互不干擾;
及時性?分時系統對用戶的請求能在較短的時間內給出應答,使用戶覺得系統即時響應了對他的請求而感到滿意。
交互性?采用了人-機對話的工作,用戶在終端上可以直接輸入、調試和運行自己的程序,能及時修改程序中的錯誤且直接獲得結果。
8、什么是“前臺”作業?什么是“后臺”作業?為什么對“前臺”作業要及時響應?
答:批處理操作系統實現自動控制無需人為干預,分時操作系統實現了人機交互對話,這兩種操作系統各具有各自的優點。為了充分發揮批處理系統和分時系統的優點,一個計算機系統上配置的操作系統往往具有批處理能力,有提供分時交互的能力。這樣,用戶可以先在分時系統的控制下,以交互式輸入、調試和修改自己的程序;然后,可以把調試好的程序轉交給批處理系統自動控制其執行而產生結果。這些由分時系統控制的作業稱為"前臺"作業,而那些由批處理系統控制的作業稱為"后臺"作業。在這樣的系統中,對前臺作業應該及時響應,使用戶滿意;對后臺作業可以按一定的原則進行組合,以提高系統的效率。
9、實時操作系統的主要特征是什么?
答:能使計算機系統接受到外部信號后及時進行處理,并且在嚴格的規定時間內處理結束,再給出反饋信號的操作系統統稱"實時操作系統",簡稱"實時系統"。
其特征是:(1)及時響應,快速處理
實時系統的時間要求是強制性嚴格規定的,僅當在規定的時間內返回一個正確的結果時,才能認為系統的功能是正確的。
(2)高可靠性和安全性?不強求系統資源的利用率
10、解釋嵌入式(計算機)系統和嵌入式操作系統。
答:計算機硬件不再以物理上獨立的裝置形式出現,而是大部分或全部都隱藏和嵌入到各種應用系統中。我們把這樣的系統稱為嵌入式系統。
嵌入式系統是指運行在嵌入式系統中對各種部件、裝置等資源進行統一協調、處理和控制的系統軟件。
11、嵌入式操作系統的主要特點是什么?
答:微型化和實時性。
12、網絡操作系統和分布式操作系統都是配置在計算機網絡上的操作系統,它們之間有什么本質上的不同?
答:分布式操作系統與網絡操作系統本質的不同之處在于,分布式操作系統的網絡中的多臺計算機沒有主次之分;分布式操作系統能使系統中若干臺計算機相互協作完成一個共同的任務。把一個計算問題分成若干個可并行執行的子運算,讓每個子計算在系統中的各計算機上并行執行,充分利用各計算機的優勢。這樣,一個程序就分布在幾臺計算機并行執行,相互協作得到結果。
13、從資源管理的角度來看,操作系統的基本功能可分成哪些部分?
答:從資源管理的角度來看,操作系統的基本功能可分為五大部分
(1)處理器管理 為用戶地分處理器時間,盡可能地使處理器處于忙狀態,提高處理器的工作效率。
(2)存儲管理?實現對主存儲器的管理,為用戶分配主存空間,保護主存中的程序和數據不被破壞,提高主存空間的利用率。
(3)文件管理?面向用戶實現按文件名存取文件,管理用戶信息的存儲、檢索、共享和保護,合理地分配和使用文件的存儲空間。?
(4)設備管理?負責管理各種外圍設備,包括設備的分配、啟動以及SPOOL的實現技術。
?
第二章復習題答案p33
1、什么情況下操作系統程序才能占用中央處理器?
答:一個計算機系統,尤其是采用多道程序設計的計算機系統,不僅有操作系統和其他的系統軟件,而且還有若干應用程序。這些程序只有占用中央處理執行時才能履行自己職責。而中央處理器在任何時刻最多只能被一個程序占用。
計算機開啟時,自動執行引導程序。引導程序首先進行系統初始化的工作,然后把操作系統中的核心裝入主存儲器。此后操作系統便等待用戶請求(事件)的發生,當有某個事件出現,硬件便能識別并能發生一個中斷,從而通知操作系統,由它的服務程序去處理,處理結束后,又等待下一個事件發生。
中斷是計算機系統結構一個重要的組成部分。中斷裝置由一些特定的寄存器的控制線路組成,CPU每執行完一條指令,中斷裝置都要判斷是否有事件發生。如果沒有事件發生,CPU繼續執行;若有事件發生,中斷裝置中斷原先占用CPU的程序的執行,讓操作系統的處理事件服務程序占用CPU對事件進行處理,處理完后,再讓被中斷的程序繼續占用CPU執行下去。
2、允許多道程序同時執行的硬件基礎是什么?
答:中斷和通道技術的出現是基礎。
?3、操作系統怎樣讓多個程序同時執行?
答:一個計算機系統,尤其是采用多道程序設計的計算機系統,不僅有操作系統和其他的系統軟件,而且還有若干應用程序。這些程序只有占用中央處理執行時才能履行自己職責。而中央處理器在任何時刻最多只能被一個程序占用。
中斷裝置在判別到有某個事件發生時,就會觸發一個中斷讓操作系統去占用處理器。操作系統對事件處理結束后,又主動讓出處理器,并根據對事件處理情況從那些具備占用處理器條件的程序中選擇一個,讓它占用處理器,直到系統再一次發生事件而被中斷。操作系統總是按照預定的策略去選擇可占用處理器的程序,系統中若干程序可以交替地占用處理器,形成多個程序同時執行的狀態。
4、為什么要把“啟動I/O”等指令定義為特權指令?
答:一個程序可以在其它程序等待外圍設備傳送信息時占用處理器執行,在執行中如果它也使用啟動指令去啟動一臺正在工作的外圍設備,那么就會造成沖突。為保護輸入輸出的完整性,把“啟動I/O”等的一類可能影響系統安全的指令定義為特權指令。特權指令只允許操作系統使用,用戶程序不能使用特權指令。用戶程序若要啟動I/O,必須請求操作系統代為啟動,這種方式不但可以保證安全地使用外圍設備,正確地傳送信息,而且可減少用戶為啟動設備而必須了解外圍設備特性以及啟動等工作,大大方便了用戶。
5、怎樣限制用戶程序中使用特權指令?(1007考題33)
答:為了保證正確的操作,應該限制用戶程序使用特權指令,為此,中央處理器設置了兩種工作方式:管態和目態。在管態下,中央處理器可執行包含特權指令在內的一切指令;在目態下,中央處理器不準執行特權指令。操作系統在管態下工作,用戶程序在目態下工作。如果中央處理器在目態下取到了特權指令,中央處理器就拒絕執行該指令,并產生“非法操作”事件經中斷裝置和操作系統通知用戶修改。
6、操作系統與硬件如何配合來實現存儲保護的?
答:主存儲器往往同時裝入了操作系統程序和若干用戶程序,為了保證正確操作,必須對主存儲器區域進行存儲保護。存儲保護隨著主存儲器管理方式的不同,實現保護的方法也有所不同,一般是操作系統與硬件配合來實現存儲保護。
?在連續分配的存儲系統中,硬件中設置了兩個寄存器來限定用戶程序執行時可以訪問的空間范圍。這兩個寄存器是基址寄存器和限長寄存器,用來限定用戶程序執行時可以訪問的主存空間范圍。程序執行時,系統對每一個訪問內存的地址進行核對:"基址寄存器值≤訪問地址≤基址寄存器值+限長寄存器值"成立,則允許訪問;否則,不允許訪問。這樣就保護了該區域以外的存儲信息不受到破壞,一旦程序執行中出錯也不會涉及其他程序。
7、為什么要研究操作系統的結構?
答:操作系統是一種程序量大且接口復雜的系統軟件。設計一個操作系統要投入大量的人力和花費較長的時間。因而,如何保證操作系統能正確,高效地工作至關重要。由于程序的結構是影響程序質量的內在因素,因此,有必要對操作系統的結構進行研究。
8、應從哪些方面考慮操作系統的結構設計?(0904考題33)
答:操作系統的結構設計應追求以下目標:
正確性:一個結構良好的操作系統不僅能保證正確性而且易于驗證其正確性;
高效性:核心程序是影響計算機系統效率的的關鍵所在應遵循少而精的原則,使處理既有效又靈活。
可維護性:操作系統要容易維護
可移植性:在結構設計時,盡量減少與硬件直接有關的程序量并將其獨立封裝
9、操作系統采用層次結構有什么優點?
答:各種設計方法總的目標都要保證操作系統工作的可靠性。層次結構法的最大特點是把整體問題局部化,采用層次結構不僅結構清晰,而且便于調試,有利于功能的增加,刪減和修改。層次結構的主要優點是有利于系統的設計和調試,正確性容易得到保證,也提高了可維護性和可移植性。
10、用戶怎樣使用操作系統提供的接口?
答:用戶是通過操作系統來使用計算機系統的,操作系統為用戶提供兩種類型的使用接口:
操作員接口:用戶可以用作業控制語言寫出控制作業執行步驟的"作業說明書",也可以從鍵盤上輸入操作控制命令或從"命令菜單"中選擇命令指出作業的執行步驟。
程序員接口:操作系統提供了許多不同功能的子程序-系統功能調用,用戶可以在程序中調用這些子程序。
11、操作系統為什么要提供"系統調用"?
答:在用戶編寫的源程序一級,用戶使用程序設計語言描述算題任務的邏輯要求,有一些要求的實現只有通過操作系統的功能程序才能完成。操作系統編制了許多不同功能的子程序,用戶程序在執行中可以調用這些子程序。由操作系統提供的這些子程序稱為"系統功能調用"程序,簡稱"系統調用"。系統調用是操作系統提供給用戶程序的服務接口。
12、UNIX系統的層次結構有什么特色??
答:從結構上看,UNIX可以分成內核層和外殼層兩部分。
內核層是UNIX操作系統的核心,它實現存儲管理、文件管理、設備管理、進程管理等功能并為外殼層提供系統調用。
外殼層為用戶提供各種操作命令(UNIX把它們稱為shell命令)和程序設計環境。
外殼層由shell解釋程序、支持程序設計的各種語言(如C、PASCAL和BASIC)、編譯環境和解釋程序、實用程序和系統庫等組成。
UNIX系統不允許外殼層程序直接訪問和干擾內核程序,因此,UNIX系統提供兩種程序運行環境,即用戶態和核心態.
UNIX系統的層次結構具有良好的性能,主要包括:短小精悍、簡潔有效、易移植、可擴充、開放性好等。
13、UNIX為用戶提供怎樣的使用接口?(201004.33)
答:UNIX的操作員通過操作控制命令來啟動外殼層的用戶程序執行。
UNIX的程序員接口就是其內核提供的系統調用,它是內核為外殼的用戶程序提供的服務界面,也就是操作系統支持用戶程序正常工作接口。
系統調用是用戶程序請求操作系統繼其服務的惟一形式,UNIX規定用戶程序調用“trap指令”請求系統服務。
14、、什么是UNIX的shell文件(shell進程)?請按自己的需要寫一個shell文件。?
答:為了方便用戶,UNIX系統允許用戶使用shell命令語言編輯成一個文件來表示一組命令的執行順序,用shell語言編輯成的文件稱shell文件。例P29例題。
15、帶參數的shell文件有什么優點?試寫一個帶參數的shell文件。
具有通用性,只要在啟動shell文件執行的csh命令中給出不同的實際參數,就可對不同的源程序進行處理。例P29例題
16、用戶程序怎樣請求UNIX的系統功能調用為其服務?
在用戶程序中,根據需要,在適當的位置使用trap指令來請求系統功能調用。當處理器執行到trap指令時便形成了一個中斷事件,此時將暫停當前用戶程序的執行,而由UNIX系統內核的trap處理子程序來處理這個中斷事件。
17、trap處理子程序的主要職能是什么?
根據trap指令中的系統調用編號查系統調用程序入口表,得到該系統調用所帶的參數個數和相應的處理程序的入口地址。然后把參數傳送到內核的系統工作區,再按處理程序入口地址轉向該系統調用的處理程序執行。
18、UNIX為什么能允許一個用戶同時執行兩個以上的任務?
如果一個程序的運行需要較長的時間,且該程序運行時不再需要從終端上輸入信息,那么用戶可以要求UNIX把它轉入后臺運行,而不再加以監視。
UNIX規定只要在請求后臺執行的命令末尾輸入字符&,系統在執行命令時,若發現末尾有&,則就把實現這條命令功能的程序轉入后臺執行。
UNIX把一個程序轉入后臺執行后,不等該程序執行完就立即返回前臺,且顯示可以輸入新命令的提示符。如果這時用戶又輸入了一條新命令,那么實現這條命令功能的程序就與已轉入后臺執行的程序同時執行。實現了一個用戶同時執行兩個以上的任務。
?
?
第三章處理器管理p79
1、什么是多道程序設計? (200807A.35)
答:讓多個計算問題同時裝入一個計算機系統的主存儲器并行執行,這種設計技術稱“多道程序設計”,這種計算機系統稱“多道程序設計系統” 或簡稱“多道系統”。
2、多道程序設計怎樣提高系統效率?
碌狀態,系統資源被充分利用;
答:多道程序設計利用了系統與外圍設備的并行工作能力,從而提高工作效率。具體表現為: ?
- 提高了處理器的利用率;
- 充分利用外圍設備資源:計算機系統配置多種外圍設備,采用多道程序設計并行工作時,可以將使用不同設備的程序搭配在一起同時裝入主存儲器,使得系統中各外圍設備經常處于忙
- 發揮了處理器與外圍設備以及外圍設備之間的并行工作能力;
從總體上說,采用多道程序設計技術后,可以有效地提高系統中資源的利用率,增加單位時間內的算題量,從而提高了吞吐率。
3、多道程序設計一定能提高系統效率嗎?答:不一定?
答:多道程序設計對算題量和算題時間的影響。 采用多道程序設計能改變系統資源的使用情況,提高系統效率。但是應注意以下兩個問題: ?
- 可能延長程序的執行時間;
- 并行工作道數與系統效率不成正比。從表面上看,增加并行工作道數就可提高系統效率,但實際上并行工作道數與系統效率是不成正比,因為并行的道數要根據系統配置的資源和用戶對資源的要求而定:
(1)主存儲器的大小限制了可同時裝入的程序數量;
(2)外圍設備的數量也是一個制約條件;
(3)多個程序同時要求使用同一資源的情況也會經常發生。
總之,多道程序設計能提高系統資源的使用效率,增加單位時間的算題量;但是對每個計算問題來說,從算題開始到全部完成所需要的時間可能延長,另外在確定并行工作道數時應綜合系統的資源配置和用戶對資源的要求。
4、答:單道時處理器的利用率為:(18+18)/(60+60)=30%
兩道并行是處理器的利用率為:(18+18)/(72=50%
利用率提高了(50-30)/30=66.7%
5、操作系統中為什么要引入“進程”? (200907.34)
答:程序是具有特定功能的一組指令或語句的集合,它指出了處理器執行操作的步驟。在多道程序設計的系統中,可能有多個程序同時運行,而同一個程序也可能多次并行執行,僅用程序的概念不能正確反映出程序執行時的活動規律和狀態變化,為了從變化的角度動態研究程序的執行,就需要引入“進程”的概念。
進程是指一個程序在一個數據集合上的一次執行(三個“一”)。程序是靜止的,進程是動態的(執行),進程包括程序和程序處理的對象,進程能夠得到程序處理的結果。
6、可再入程序有什么特性? 它有什么特性?
答:可再入程序是指一個能夠被多個用戶同時調用的程序。(可以再次調入)。它的特性有兩點:(1) 可再入程序必須是純代碼,在執行時自身不改變;(2) 一個可再入程序要求調用者提供工作區,以保證程序以同樣方式為各用戶服務。
7、進程有哪些基本狀態?它們的變化關系是怎樣的??
答:通常,根據進程執行過程中不同時刻的狀態,可歸納為三種基本狀態:
·等待態:等待某個事件的完成;
·就緒態:等待系統分配處理器以便運行;
·運行態:占有處理器正在運行。
進程在執行中狀態會不斷地改變,每個進程在任何時刻總是處于上述三種基本狀態的某一種基本狀態.
運行態→等待態 往往是由于等待外設,等待主存等資源分配或等待人工干預而引起的。
等待態→就緒態 則是等待的條件已滿足,只需分配到處理器后就能運行。
運行態→就緒態 不是由于自身原因,而是由外界原因使運行狀態的進程讓出處理器,這時候就變成就緒態。例如時間片用完,或有更高優先級的進程來搶占處理器等。
就緒態→運行態 系統按某種策略選中就緒隊列中的一個進程占用處理器,此時就變成了運行態。
8、闡述進程控制塊的作用??
答:進程控制塊(Process Control Block,簡稱PCB),是操作系統為進程分配的用于標志進程,記錄各進程執行情況的。進程控制塊是進程存在的標志,它記錄了進程從創建到消亡動態變化的狀況,進程隊列實際也是進程控制塊的鏈接。操作系統利用進程控制塊對進程進行控制和管理。
進程控制塊的作用有:
- (1)記錄進程的有關信息,以便操作系統的進程調度程序對進程進行調度。這些信息包括標志信息、說明信息、現場信息和管理信息等;
- (2)標志進程的存在,進程控制塊是進程存在的唯一標志
9、進程能否訪問自己的進程控制塊內容??
進程控制塊是系統為程序建立的用于標志進程,記錄各進程執行情況的。進程本身不能訪問或者修改自己的進程控制塊的內容,但父進程可以訪問或修改其子孫進程的進程控制塊內容,以便對它的子孫進程進行必要的管理和控制。
10、處理器為什么要區分“目態”和“管態”兩種操作模式??
答:硬件提供的指令系統中有一部分不允許用戶程序直接使用,這些不允許用戶程序使用的指令稱特權指令,特權指令只允許操作系統進行調度、控制或啟動外圍設備的程序使用。為了避免錯誤地使用特權指令,處理器分為兩種操作模式:目態-只能執行特權指令以外的指令、管態-可執行指令系統中的一切指令。
若程序處于"目態"操作模式,一旦出現特權指令,處理器就能識別出程序非法使用指令,形成程序性中斷事件,終止程序的執行。在計算機系統中往往把用戶程序置于目態下運行,已保證計算機系統的安全可靠。
11、中斷裝置發現中斷事件后應做哪些事??
答:中斷裝置發現了中斷事件后,由操作系統的中斷處理程序對中斷事件進行處理,中斷處理程序的主要工作有:
12、說明中斷屏蔽的作用??
答:中斷優先級只是規定了中斷裝置響應同時出現的中斷的次序,當中斷裝置響應了某個中斷后中斷處理程序在進行處理時,中斷裝置也可能去響應另一個中斷事件。因此會出現優先級低的中斷事件的處理打斷優先級高的中斷事件的處理,使得中斷事件的處理順序與響應順序不一致,而且會形成多重嵌套處理,使多現場保護、程序返回等工作變的復雜。
中斷屏蔽技術就是為了解決上述問題而提出的,在一個中斷處理沒有結束之前不響應其他中斷事件,或者只響應比當前級別高的中斷事件。于是,當中斷裝置檢查到有中斷事件后,便去查看PSW中中斷屏蔽標志,如果沒有屏蔽就響應該中斷;否則,暫時不響應該中斷,待屏蔽標志消除后再響應 。
13、為什么不能屏蔽自愿中斷事件??
答:自愿中斷事件是正在運行程序所期待中的事件,它是正在運行程序為請求調用操作系統的某個功能服務而執行一條“訪管指令”所引起的中斷。當處理器執行到訪管指令時就產生一個中斷,因而進程自愿中斷的斷點是確定的。自愿中斷不同于強迫性中斷,強迫中斷不是當前進程所期待的,而是由于外部請求或意外而被迫打斷當前進程的。自愿中斷是用戶程序訪問系統功能的手段,在進程中是確定的,因而不能屏蔽。
14、在一個單處理器的多道程序設計系統中,現有兩道作業同時執行,其中以運算為主,另一道以輸入輸出為主,你將怎樣賦予作業進程占有處理器的優先數?解釋為什么??
答:賦于輸入輸出作業以較高的優先權。確定作業的優先數一般從任務的緊迫性和系統效率等方面考慮。交互式作業進程的優先數大于批處理作業進程的優先數。
15、假定就緒隊列中的進程按優先數自大到小順序排列,當即有進程要加入就緒隊列時,應將它的優先數排入相應的位置,試就單向鏈接的方式寫出實現進程入隊的程序。
解:這就是一個單向鏈表的插入操作,用類C語言描述如下:
| ?procedure Insert(Queue ReadyQue,Pointer P) ????{//ReadyQue 是就緒隊列指針,P是要插入隊列進程指針 ?????//P中的priority指示其進程的優先數 ?????//P中的Next指示其后繼進程指針 ? ?????Pointer P1=ReadyQue, P2=ReadyQue; ????????????//P1指示比P優先數小的第一個進程指針 ????????????//P2指示比P優先數大的第一個進程指針 ?????while(P->priority<P1->priority ?&& P1->Next) ???????{ ?//查找要插入位置的前后結點 ???????????P2=P1; ???????? ???????????P1=P1->Next; ????????} ?????//查到后將P插入到就緒隊列中 ?????P->Next=P1; ?????P2->Next=P; ?????}//End Procedure |
16、解釋處理器的兩級調度。
我們把磁盤上用來存放作業信息的專用區域稱為輸入井;把輸入井中等待處理的作業稱為后備作業。從輸入井中選取后備作業裝入主存的工作稱為作業調度。
作業調度選中了一個作業且把它裝入主存儲器時,就為該作業創建了一個用戶進程,初始狀態為就緒態。
我們把從就緒進程中選取一個進程,讓它占用處理器的工作稱為進程調度。
17、什么叫作業調度?作業調度選擇作業的必要條件是什么??
答:作業調度是指按一定的策略從“輸入井”中選擇資源能得到滿足的作業裝入主存儲器,使作業能有機會占用處理器執行。作業調度選擇作業的必要條件是系統中現有的尚未分配的資源能夠滿足該作業的資源要求。
18、某系統采用不能移動已在主存儲器中作業的可變分區方式管理主存儲器,現有供用戶使用的主存空間100K,系統配有4臺磁帶機,有一批作業見下表:? ?
| ?作業序號 | 進輸入井時間 | 要求計算時間 | 需要主存容量 | 申請磁帶機數 |
| 1 | 10:00 | 25分鐘 | 15K | 2臺 |
| 2 | 10:20 | 30分鐘 | 60K | 1臺 |
| 3 | 10:30 | 10分鐘 | 50K | 3臺 |
| 4 | 10:35 | 20分鐘 | 10K | 2臺 |
| 5 | 10:40 | 15分鐘 | 30K | 2臺 |
該系統采用多道程序設計技術,對磁帶機采用靜態分配,忽略設備工作時間和系統進行調度所花的時間,請分別寫出采用“先來先服務調度算法”和“計算時間最短者優先算法”選中作業執行的次序以及它們的平均周轉時間。
?解:先來先服務法如下表:
| 作業序號 | 進輸入井時間 | 進入主存時間 | 開始計算時間 | 結束計算時間 | 周轉時間 | 解釋 |
| 1 | 10:00 | 10:00 | 10:00 | 10:25 | 25 | 此時輸入井中只有一個作業且滿足資源要求,因此被選中運行。 |
| 2 | 10:20 | 10:20 | 10:25 | 10:55 | 35 | 作業2到達輸入井,滿足資源要求,裝入主存,等到作業1運行完畢進入運行態。 |
| 4 | 10:35 | 10:35 | 10:55 | 11:15 | 40 | 由于作業3要求主存空間無法滿足,因此作業4先行一步,運行期間作業5進入輸入井,并滿足資源要求,因此作業5進入主存就緒。 |
| 5 | 10:40 | 10:55 | 11:15 | 11:30 | 50 | 作業3仍要等候,作業5可以運行。 |
| 3 | 10:30 | 11:30 | 11:30 | 11:40 | 70 | 最后作業3裝入主存并運行 |
平均周轉時間為(22+35+40+50+70)/5=44分鐘
按計算時間最短者優先算法如下表:
| 作業序號 | 進輸入井時間 | 進入主存時間 | 開始計算時間 | 結束計算時間 | 周轉時間 | 解釋 |
| 1 | 10:00 | 10:10 | 10:00 | 10:25 | 25 | 此時輸入井中只有一個作業且滿足資源要求,因此被選中運行。 |
| 2 | 10:20 | 10:20 | 10:25 | 10:55 | 35 | 作業2到達輸入井,滿足資源要求,裝入主存,等到作業1運行完畢進入運行。 |
| 5 | 10:40 | 10:55 | 10:55 | 11:10 | 30 | 由于作業3要求主存空間無法滿足,因此作業4先行一步裝入主存,當作業2讓出處理器的同時,作業5滿足資源要求進入主存就緒。根據算法作業5先進入處理器運行。 |
| 4 | 10:35 | 10:35 | 11:10 | 11:30 | 55 | |
| 3 | 10:30 | 11:30 | 11:30 | 11:40 | 70 | 最后作業3裝入主存并運行 |
平均周轉時間:(25+35+30+55+70)/5=43 分鐘
19、
| 作業名 | 到達時間 | 估計時間(分鐘) | 開始時間 | 完成時間 | 等待時間 |
| A | 8:30 | 130 | ? | ? | ? |
| B | 8:50 | 15 | ? | ? | ? |
| C | 9:20 | 70 | ? | ? | ? |
答:采用計算時間短的作業優先算法如下:
| 作業名 | 到達時間 | 估計時間(分鐘) | 開始時間 | 完成時間 | 等待時間分鐘 |
| A | 8:30 | 130 | 10:55 | 13:05 | 145 |
| B | 8:50 | 15 | 9:30 | 9:45 | 40 |
| C | 9:20 | 70 | 9:45 | 10:55 | 25 |
最高響應比優先調度結果如下:
| 作業名 | 到達時間 | 估計時間(分鐘) | 開始時間 | 完成時間 | 等待時間 | 響應比1 | 響應比2 |
| A | 8:30 | 130 | 9:45 | 11:55 | 85 | 60/130 | 75/130 |
| B | 8:50 | 15 | 9:30 | 9:45 | 40 | 40/15 | ? |
| C | 9:20 | 70 | 11:55 | 13:05 | 155 | 10/70 | 25/70 |
20、什么是進程調度?當進程調度選中一個進程后,怎樣才能讓它占用處理器??我們把一個進程讓出處理器由另一個進程占用處理器的過程稱為進程調度。
答:當進程調度選中一個進程后,把選中進程的進程控制塊中有關的現場信息,如通用寄存器、控制寄存器和程序狀態字寄存器的內容送入處理器相應的寄存器中,處理器就按該進程的要求工作,達到了進程占用處理器的目的。
21、答:在分時系統中,使每個用戶的請求都能得到及時的響應,感覺計算機系統對自己的請求有求必應,好像獨占一個計算機系統。這樣用戶感覺到不必等待,可算得上及時響應。使用戶比較滿意。
22、答:
23、(1)優點:提高系統的吞吐量。
(2)應優先選擇時間片較短的進程優先占用處理器。可極大地提高系統吞吐量。解釋如下:在分級調度算法中,對不同就緒隊列中的進程,可規定使用不同長度的時間片,一般來說,第一級就緒隊列的時間片短一些,以的各級就緒隊列的時間片逐級延長,最后一級就緒隊列的時間片最長,這樣運行時間短的里程只需經過前面幾級隊列就能得到結果,且它們被優先調度,有利于提高系統的吞吐率。而對運行時間長的進程在進入了低級就緒隊列后可得到較長的時間片,以減少調度次數來保證系統效率。對經常使用外圍設備的進程來說,每次等待外圍設備傳輸結束后總是排入第一級就緒隊列,它們會被優先調度,有利于處理器與外圍設務以及外圍設備之間的并行工作,從而提高資源的使用效率。
24、有5個進程P1,P2,P3,P4,P5它們同時依次進入就緒隊列,它們的優先數和所需要的處理器時間如表
3-1所示?
| ?進程 | 處理器時間 | 優先數 |
| P1 | 10 | 3 |
| P2 | 1 | 1 |
| P3 | 2 | 3 |
| P4 | 1 | 4 |
| P5 | 5 | 2 |
忽略進行調度等所花費的時間,請回答下列問題
a、寫出分別采用“先來先服務”和“非搶占式的優先數”調度算法選中進程執行的順序。
b、分別計算出上述兩種算法使進程在就緒隊列中的等待時間以及兩種算法下的平均等待時間。
解:a)采用先來先服務法的執行順序是P1→P2→P3→P4→P5。這是由其進入的順序所確定的。
采用“非搶占式的優先數”調度算法時,各進程的執行順序是P1→P4→P3→P5→P2.
b)如表所示:先來先服務法:
| 進程 | 等待時間 | 運行時間 |
| P1 | 0 | 10 |
| P2 | 10 | 1 |
| P3 | 11 | 2 |
| P4 | 13 | 1 |
| P5 | 14 | 5 |
| 平均等待時間 | (0+10+11+13+14)/5=9.6 | |
非搶占式的優先數調度算法:
| 進程 | 等待時間 | 運行時間 |
| P1 | 0 | 10 |
| P4 | 10 | 1 |
| P3 | 11 | 2 |
| P5 | 13 | 5 |
| P2 | 18 | 1 |
| 平均等待時間 | (0+10+11+13+18)/5=10.4 | |
25、UNIX進程由哪些部分組成?各起什么作用??
答:在UNIX系統中進程由三部分組成:進程控制塊、正文段和數據段。
UNIX系統為了節省進程控制塊所占的主存空間,把每個進程控制塊分成兩部分。一部分常駐內存,記錄了進行進程調度時必須使用的一些主要信息,不管進程是否占有處理器運行,系統經常會對這部分的內容進行查詢和處理。UNIX系統把作為基本控制塊,把它的數據結構稱為proc結構。另一部分非常駐內存,當進程不占有處理器時,系統不會對這部分內容進行查詢和處理,因此這部分內容可以存放在磁盤的對換區中,它隨著用戶程序和數據換進或換出主存。
而正文段的功能則是在多道程序設計系統中,不同的進程可能要調用相同的程序。供多個進程共享的程序稱為進程的正文段。正文段是可再入的程序,它由不可被修改的程序和常數組成。
進程執行程序時用到的數據構成數據段,如果進程執行的順序是非共享的,則也構成數據段的一部分。UNIX把進程的數據段又劃分成三部分,用戶棧區、用戶數據區和系統工作區。
26、UNIX中創建一個進程要做哪些主要工作??
答:UNIX中一個進程使用系統調用fork來創建新進程,形成父子關系經。父進程與子進程可以并發執行。
fork生成一個新進程的工作由函數newproc完成的,它的工作過程如下:
1、在進程表proc[]中為子進程找一個空閑的表項,用來存放子進程的proc結構。
- 2、為子進程分配一個惟一的標識號,UNIX系統進程標識號的范圍是0-255。
- 3、把父進程proc中字段復制到子進程的proc中,但把p-pid置為分配到的標識號,把p-pid置為父進程標識號,把p_stat置為“創建”狀態。
4、按父進程中p_size所示的長度為子進程申請分配空間。
27、答:運行狀態、就緒狀態、睡眠狀態、創建狀態、僵死狀態。
?
28、UNIX采用怎樣的進程調度算法?
UNIX對進程的調度采用動態優先數算法,進程的優先數隨進程的執行情況而變化。
29、UNIX優先數和優先權之間有什么關系??
- 答:UNIX中每個進程都有一個優先數,就緒進程能占用處理器的優先權取決于進程的優先數,優先數越小則優先權越高。
30、UNIX什么情況下要進行進程調度?調度程序swtch的主要任務是什么??
答:當進程執行中由于各種事件讓出處理器時,或一個處理器的進程用完了一個時間片后被剝奪了占用處理器的權利(被搶占)時。進程調度程序swtch從內存就緒隊列中選取優先數最小的進程占用處理器運行。 ?
- 在UNIX系統中,Swtch程序是用來完成進程調度的。Swtch進行調度的時機是:
- 進程完成了預定任務而終止
- 進程因等待某些時間而進入睡眼狀態
- 進程由于與其他進程協同完成某一任務時因同步需要而主動放棄處理器
- 發現比線性進程更高優先權的進程。
- 進程用完了一個規定的時間片
- 其他異常處理時強迫對處理器進行調度。
- Swtch程序的主要任務是: ?
- 保存現在運行進程的現場信息
- 從在內存就緒的進程中選擇一個優先數最小(優先權最高)的進程占用處理器
為被選中的進程恢復現場信息。
31、答:p_pri=p_cpu/2+PUSER+p_nice+NZERO
?????????????=p_cpu/2+25+p_nice+20
每隔一個時鐘周期(20ms),p_cpu加1,優先數增大,優先權降低,在進程切換時再次占用cpu的機會減少;系統每隔1s對所有進程執行p_cpu/2;他們的優先數減小,使得進程的優先權就提高,在進程切換時再次占用處理器的機會就增大。
?
第四章復習題P114
1.解釋下列術語 邏輯地址;絕對地址;地址轉換
答:邏輯地址:對于用戶來說,他無須知道自己的作業究竟是在主存的什么位置,他們可以認為自己的程序和數據就是放在從0地址開始一組連續的地址空間中,這個地址空間是程序用來訪問信息所用的一系列連續地址單元的集合,該地址空間就是邏輯地址空間。邏輯地址空間中,地址單元的編號稱為邏輯地址。
絕對地址:主存也被按照連續的存儲單元進行編號,絕對地址空間就是主存中一系列連續存儲信息的物理單元的集合,也稱絕對地址空間為存儲地址空間或物理地址空間。絕對地址空間中物理單元的編號稱為絕對地址。?? 地址轉換:由于一個作業裝入到與其邏輯地址空間不一致的絕對地址空間,使得邏輯地址與絕對地址不同,而引起的對有關地址部分的調整,即邏輯地址轉換成絕對地址的過程稱為重定位,也稱為地址轉換。
2.存儲保護的目的是什么?怎樣實現存儲保護?
答:存儲保護的目的就是為了保護主存中各區域內的信息不被破壞,它包括存儲的權限,存儲不可跨越區域等等。為實現存儲保護,必須由硬件和軟件配合實現。比如在頁式管理中,要由操作系統提供頁表,硬件機構確定頁的使用必須是安全的,如不能訪問不屬于自己的頁等。
3.什么叫重定位?重定位的方式有哪兩種?比較它們的不同。
答:由于一個作業裝入到與其邏輯地址空間不一致的絕對地址空間,使得邏輯地址與絕對地址不同,而引起的對有關地址部分的調整,即邏輯地址轉換成絕對地址的過程稱為重定位,也稱為地址轉換。
重定位有靜態和動態兩種情況。
所謂靜態重定位是在裝入一個作業的時候,把作業中的指令地址和數據地址全部一次性地轉換成絕對地址。
所謂動態重定位是由軟件和硬件相配合來實現的。地址重定位不再是裝入的時候一次完成了,而是設置一個基址寄存器,裝入作業的時候,將作業在主存區域的首地址放入到基址寄存器中。作業執行的時候,由硬件的地址轉換機構動態地對地址進行轉換,執行指令的時候,只要將邏輯地址加上基址寄存器的內容,就得到了絕對地址。
靜態重定位和動態重定位的不同在于:①靜態重定位是在作業裝入的時候一次完成,動態重定位是在作業執行時再實現的。②靜態重定位是軟件支持的,動態重定位是硬件和軟件合作實現的。③靜態重定位不能實現主存的移動,而動態重定位可以。④動態重定位還可能提供虛擬存儲空間。
4、比較固定分區、可變分區和頁式存儲管理的優缺點。
答:固定分區優點:
①能支持多道程序設計。
②無需專門的硬件地址轉換機構。
缺點:
①主存利用率不算太高,分配中出現內部零頭問題。
②分區大小固定不靈活,不能為程序動態申請內存。
③不具備虛擬存儲能力。
可變分區優點:
①支持多道程序設計。
②沒有內部零頭問題,主存利用率比固定分區高。
③采用移動技術后可以滿足正在執行的作業的主存擴充的要求。
缺點:
①動態重定位和保護措施需要硬件機構支持,成本高。
②由于有外部零頭,所以主存利用率依然不算很高。
③移動技術開銷很大。
④每次必須將作業完整調入并連續存放,主存利用率不高。
⑤不具備虛擬存儲能力。
頁式存儲管理優點:
①支持多道程序設計
②解決了外部零頭問題,內部零頭大大減少(一個作業平均只有50%頁面大小的內部零頭)主存利用率比較高。
③用戶作業無需在主存中連續存放,提高主存的利用率。
④如果是分頁虛擬存儲管理,可以提供大容量的多個虛擬存儲器,主存利用率更高了。
缺點:
①動態重定位和保護措施需要硬件機構支持,成本高;
②采用頁表,占用了一部分主存空間和處理機時間。
③分頁虛擬存儲管理中,增加了缺頁中斷的處理,增加了系統開銷。
5、在可變分區管理方式下,為什么要引入移動技術?移動一道作業時操作系統要做哪些工作??
答:采用移動技術的主要優點是:
1)可以使分散的空閑區集中起來,可以容納新的作業,提高主存空間的利用率
2)方便作業執行過程中擴充主存空間,一道作業在執行中要求增加主存量時,只要移動鄰近作業就可以增加它所點的分區長度。
移動一道作業時操作系統要進行的處理:
1)判斷被移動的作業是否在與外圍設備交換信息,如是則不能移動,否則可以移動。
2)操作系統在移動作業信息時先移動作業信息的存儲位置。
3)修改主存分配表中和保存在進程控制塊中的分區起始地址和長度信息。
4)采取必要措施,盡量減少移動的作業數和信息量,提高系統效率。?
6、假定某計算機系統的主存容量為32K,對主存采用動態定位可變分區分配算法。現在已經有3個作業在主存儲器中(如圖),當作業J2執行時,要求擴充3K作業,為了滿足作業J2這一要求,應移動幾道作業的信息?寫出它們的次序、方向和距離。
答:因為采用可變分區的管理方式,要求作業的邏輯地址空間是連續的,并且主存空間也是連續的。因此,作業J2要求擴充的主存區域應該在原占有區域之后,于是必須通過移動來集中空閑區以供J2擴充之需。移動的方法有兩種:
①先把J1向上移動1K再把J2向上移動2K.
②J3向下移動2K.
顯然,第二種方法只要進行一次移動,明顯比第一種方法好。
7、用可變分區方式管理主存時,假定主存中按地址順序依次有五個空閑區,空閑區的大小依次為32K、10K、5K,228K,100K.現有五個作業J1,J2,J3,J4,J5.它們各需主存1K,10K,108K,28K和115K.若采用最先適應分配算法能把這五個作業按J1--J5的次序全部裝入主存?你認為按怎樣的次序裝入這五個作業可使主存空間利用率最高???
答:按最先適應算法時32K空閑區可裝入J1、J2,剩下21K。228K空閑區中裝入J3,J4,剩下92K,結果是J5無法裝入。仍按最先適應算法,若調整作業裝入次序為J4、J1、J2、J3、J5。即在32K空閑區中依次裝入J4(28K),J1(1K)(或先J1再J4),剩下3K,在10K空閑區中裝入J3剛好,在228K空閑區中裝入J3和J5,
剩下5K。這時的主存空間利用率最高。
8、解釋頁式存儲管理中為什么要設置頁表和快表??
答:在頁式存儲管理中,主存被分成大小相等的若干塊,同時程序邏輯地址也分成與塊大小一致的若干頁,這樣就可以按頁面為單位把作業的信息放入主存,并且可以不連續存放,為了在作業執行過程中準確地查表邏輯地址與絕對地址的的對應關系,就需要為每個作業建立一張頁表,表示邏輯地址中的頁號與主存中塊號的對應關系。
頁表一般存放在主存中,當要按給定的邏輯地址訪問主存時,要先訪問頁表,計算出絕對地址,這樣兩次訪主存延長了指令執行周期,降低了執行速度,而設置一個高速緩沖寄存器將頁表中的一部分存放進去,這部分頁表就是快表,訪問主存時二者同時進行,由于快表存放的是經常使用的頁表內容,訪問速度很快,這樣可以大大加快查找速度和指令執行速度。
9、頁式存儲管理中頁面大小是根據什么決定的?頁表的長度又是根據什么決定的?
答:頁面的大小是由地址結構決定的。頁表的長度是由作業的信息量決定的,作業有多少頁,頁表中就有多少個記錄項。
10、答:
11、敘述頁式存儲管理中地址轉換過程。
答:首先,操作系統為每個作業創建一張頁表,它建立了邏輯地址中的頁號到絕對地址中的塊號的映射。然后,借助于硬件地址轉換機構,在作業執行過程中,每執行一條指令時,按邏輯地址中的頁號查頁表得到對應的塊號,再根據公式“絕對地址=塊號×塊長+頁內地址”換算出欲訪問的主存單元的絕對地址。
12、什么叫虛擬存儲器?怎樣確定虛擬存儲器的容量??
虛擬存儲器是為“擴大”主存容量而采用的一種設計技巧,它利用作業在只裝入部分信息時就可以執行的特性和程序執行中表現出來的局部性特性,借助于大容量的輔助存儲器實現小主存空間容納大邏輯地址空間的作業。
虛擬存儲器的容量由計算機的地址結構(地址總線位數)決定。如計算機的地址總線位數為32位,則最大的虛存容量為2^32=4294967296B=4GB
?13、敘述頁式虛擬存儲器的基本原理。
答:頁式虛擬存儲器是在頁式存儲的基礎上實現虛擬存儲器的,其工作原理是:
首先把作業信息作為副本存放在磁盤上,作業執行時,把作業信息的部分頁面裝入主存,并在頁表中對相應的頁面是否裝入主存作出標志。
作業執行時若所訪問的頁面已經在主存中,則按頁式存儲管理方式進行地址轉換,得到絕對地址,否則產生“缺頁中斷”由操作系統把當前所需的頁面裝入主存。
若在裝入頁面時主存中無空閑塊,則由操作系統根據某種“頁面調度”算法選擇適當的頁面調出主存換入所需的頁面。
14、采用可變分區方式管理主存時,能實現虛擬存儲器嗎?為什么?
答:不可以,因為可變分區每次必須將作業完整調入并連續存放,這不適合虛擬存儲的要求。同時,可變分區的硬件地址轉換機構把絕對地址超出限定范圍時作地址錯處理,而不是產生“缺分區中斷”。
15、什么叫“抖動”?怎樣衡量頁面調度算法的好壞?
答:如果選用了一個不合適的調度算法,就會出現這樣的現象:剛被淘汰了的頁面又立即要用,又要把它調入進來,而調入不久又被調出,調出不久再次被調入,如此反復,使得調度非常頻繁,以至于大部分時間都花費在來回調度上。這種現象叫“抖動”。一個好的調度算法應減少和避免抖動現象。
16、某采用頁式虛擬存儲管理的系統,一個共7頁的作業,作業執行時依次訪問的頁為1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。若采用最近最少使用(LRU算法),作業得到四塊主存空間時會產生多少次中斷?如果采用先進先出(FIFO)算法又會怎樣的結果??
答: LRU算法時四塊主存空間時:
| ?當前頁 | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
| ? | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | |
|
| ? | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 6 | 1 | 2 | 3 | 7 | 6 | 3 | 3 | 1 | 2 | |
|
|
| ? | 1 | 1 | 3 | 4 | 2 | 1 | 5 | 5 | 6 | 1 | 2 | 2 | 7 | 6 | 6 | 6 | 1 | |
| 調出頁 |
|
|
|
|
|
| 3 | 4 |
|
|
| 5 | 6 | 1 |
|
| 7 |
|
|
|
| 缺頁中斷 | 共6次 | |||||||||||||||||||
采用FIFO算法四塊主存空間時:
| 訪問頁 | 1 | 2 | 3 | 4 | 2 | 1 | 5 | 6 | 2 | 1 | 2 | 3 | 7 | 6 | 3 | 2 | 1 | 2 | 3 | 6 |
| 當前頁 | 1 | 2 | 3 | 4 | 4 | 4 | 5 | 6 | 2 | 1 | 1 | 3 | 7 | 6 | 6 | 2 | 1 | 1 | 3 | 3 |
| ? | 1 | 2 | 3 | 3 | 3 | 4 | 5 | 6 | 2 | 2 | 1 | 3 | 7 | 7 | 6 | 2 | 2 | 1 | 1 | |
|
| ? | 1 | 2 | 2 | 2 | 3 | 4 | 5 | 6 | 6 | 2 | 1 | 3 | 3 | 7 | 6 | 6 | 2 | 2 | |
|
|
| ? | 1 | 1 | 1 | 2 | 3 | 4 | 5 | 5 | 6 | 2 | 1 | 1 | 3 | 7 | 7 | 6 | 6 | |
| 調出頁 |
|
|
|
|
|
| 1 | 2 | 3 | 4 |
| 5 | 6 | 2 |
| 1 | 3 |
| 7 |
|
| 缺頁中斷 | 共10次 | |||||||||||||||||||
17、答:訪問序列為:1,2,1,0,4,1,3,4,2,1
| ? | 1 | 2 | 1 | 0 | 4 | 1 | 3 | 4 | 2 | 1 |
| 0 | 0 | 0 |
|
| 4 |
| 4 |
|
| 4 |
|
| 1 | 1 |
|
| 1 |
| 3 |
|
| 3 |
|
|
| 2 |
|
| 2 |
| 2 |
|
| 1 |
| ? | ∨ | ∨ | ? | ∨ | ∨ | ? | ∨ | |||
| ? | 5次中斷,中斷率為50%。 | |||||||||
18、、有一個程序要把100*100數組置初值“0”,現假定有兩個主存塊可用來存放數組信息,主存塊的大小為可存放200個數組元素,數組中的元素按行編址。兩個主存塊的初始狀態都為空,若程序編制如下:?
??? (a) Var A:array[1..100] of array[1..100] of integer;
??????? ??for j:=1 to 100 do
????????? ?for i:=1 to 100 ?do
?????????? ??A[i,j]=0
??? ?(b) Var A:array[1..100] of array[1.100] of integer;
??????? for i:=1 to 100 do
?????????? for j:=1 ?to 100 do ?
???????????????A[i,j]=0
當采用LRU頁面調度算法時各會產生多少次缺頁中斷?
答:由于主存地址是連續的,二維數組按行的順序進行排列,在每個主存塊可以存放二行數組,初始狀態下主存為空。
(a)方案編制的程序,第一次訪問的是A[1,1],即第一個單元;第二次訪問的是A[2,1],在主存中也就是訪問第101個單元,這樣,第一次調入的兩個頁只能命中四次,當訪問[5,1]時就產生缺頁中斷,這時調入一個頁面,包括兩行,則訪問[6,1]時命中。依次下去當訪問[7,1],[9,1]...[99,1]時均產生缺頁中斷。內循環結束后,進入外循環,訪問[1,2]...[100,2]...直到訪問完每個數據。每隔一次訪問均產生一次中斷。因此本方案的總的缺頁中斷次數是:
50*100=5000 次。
(B)方案時,因為在主存中按[1,1],[1,2],[1,3]...[1,100]的順序訪問,則第一次訪問的四行均沒有中斷,訪問到[5,1]時,產生一次中斷,調入一頁,依此類推,訪問到[7,1],[9,1]...[99,1]時產生中斷,總共的中斷次數為:
100/2=50 次
(根據LRU算法,每次調入的頁面是一個頁面)
19、答:
?
| LRU算法 | |||||||||||
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
| 2 | 2 | 3 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 3 |
|
| 3 | 2 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 |
|
|
|
| 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
| ? | ? | ? | ? | ∨ | ∨ | ∨ | ∨ | ? | |||
| 中斷次數為4次:依次淘汰3124 | |||||||||||
?
| OPT算法 | ||||||||||||||||||||||
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 | |||||||||||
| 2 | 2 | 2 | 2 | 2 |
| 4 |
|
| 2 |
|
| |||||||||||
|
| 3 | 3 | 3 | 3 |
| 3 |
|
| 3 |
|
| |||||||||||
|
|
|
| 1 | 5 |
| 5 |
|
| 5 |
|
| |||||||||||
| ? | ? | ? | ? | ∨ | ∨ | ? | ∨ | ? | ||||||||||||||
| 中斷次數為3次:124 | ||||||||||||||||||||||
| FIFO算法 | ||||||||||||||||||||||
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 | |||||||||||
| 2 | 2 |
| 2 | 5 | 5 | 5 |
| 3 |
| 3 | 3 | |||||||||||
|
| 3 |
| 3 | 3 | 2 | 2 |
| 2 |
| 5 | 5 | |||||||||||
|
|
|
| 1 | 1 | 1 | 4 |
| 4 |
| 4 | 2 | |||||||||||
| ? | ? | ? | ? | ∨ | ∨ | ∨ | ∨ | ∨ | ∨ | |||||||||||||
| 中斷次數為6次: 231524 | ||||||||||||||||||||||
?
| LFU算法 | |||||||||||
| 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
| 2 | 2 | 3 | 3 | 5 |
| 5 |
| 5 |
|
|
|
|
| 3 | 2 | 2 | 2 |
| 2 |
| 2 |
|
|
|
|
|
|
| 1 | 1 |
| 4 |
| 3 |
|
|
|
| ? | ? | ? | ? | ∨ | ∨ | ∨ | ? | ? | |||
| 中斷次數為3次 | |||||||||||
?
20、在第3章第18題中,若允許移動已在主存儲器中的作業,則作業被選中的次序又是怎樣的呢?并計算出它們的平均周轉時間?
解:本題中,由于作業3需要3臺磁帶機,因此即使允許移動主存中的作業,得到足夠存儲空間,但是由于靜態分配的策略,磁帶機不足以讓作業3滿足。因此本題的結果和上題的結果是相同的。
| 作業序號 | 進輸入井時間 | 要求計算時間 | 需要主存容量 | 申請磁帶機數 | 剩余 | 開始運行 | 結束 | 周轉時間 |
| 1 | 10:00 | 25分鐘 | 15K | 2臺 | ? | ? | ? | ? |
| 2 | 10:20 | 30分鐘 | 60K | 1臺 | ? | ? | ? | ? |
| 3 | 10:30 | 10分鐘 | 50K | 3臺 | ? | ? | ? | ? |
| 4 | 10:35 | 20分鐘 | 10K | 2臺 | ? | ? | ? | ? |
| 5 | 10:40 | 15分鐘 | 30K | 2臺 | ? | ? | ? | ? |
| 先來先服務分析如下: | ||||||||
| 1 | 10:00 | 裝入 | 15K | 2臺 | 85,2 | 10:00 | 10:25 | 25 |
| 2 | 10:20 | 裝入 | 60K | 1臺 | 25,1 | 10:25 | 10:55 | 35 |
| ? | 10:25 | 回收 | ? | ? | 40,3 | ? | ? | ? |
| ? | 10:30 | 未裝入 | 50K | 3臺 | ? | ? | ? | ? |
| 4 | 10:35 | 裝入 | 10K | 2臺 | 30,1 | 10:55 | 11:15 | 40 |
| ? | 10:40 | 未裝入 | 30K | 2臺 | ? | ? | ? | ? |
| ? | 10:55 | 回收 | ? | ? | 90,2 | ? | ? | ? |
| 5 | 10:55 | 裝入 | 30K | 2臺 | 60,0 | 11:15 | 11:30 | 50 |
| ? | 11:15 | 回收 | ? | ? | 70,2 | ? | ? | ? |
| ? | 11:30 | 回收 | ? | ? | 100,4 | ? | ? | ? |
| 3 | 11:30 | 裝入 | ? | ? | 50,1 | 11:30 | 11:40 | 70 |
| 平均周轉時間為:220/5=44 | ||||||||
?
| 作業序號 | 進輸入井時間 | 要求計算時間 | 需要主存容量 | 申請磁帶機數 | 剩余 | 開始運行 | 結束 | 周轉時間 |
| 1 | 10:00 | 25分鐘 | 15K | 2臺 | ? | ? | ? | ? |
| 2 | 10:20 | 30分鐘 | 60K | 1臺 | ? | ? | ? | ? |
| 3 | 10:30 | 10分鐘 | 50K | 3臺 | ? | ? | ? | ? |
| 4 | 10:35 | 20分鐘 | 10K | 2臺 | ? | ? | ? | ? |
| 5 | 10:40 | 15分鐘 | 30K | 2臺 | ? | ? | ? | ? |
| 計算時間短分析如下: | ||||||||
| 1 | 10:00 | 裝入 | 15K | 2臺 | 85,2 | 10:00 | 10:25 | 25 |
| 2 | 10:20 | 裝入 | 60K | 1臺 | 25,1 | 10:25 | 10:55 | 35 |
| ? | 10:25 | 回收 | ? | ? | 40,3 | ? | ? | ? |
| ? | 10:30 | 未裝入 | 50K | 3臺 | ? | ? | ? | ? |
| 4 | 10:35 | 裝入 | 10K | 2臺 | 30,1 | 11:10 | 11:30 | 55 |
| ? | 10:40 | 未裝入 | 30K | 2臺 | ? | ? | ? | ? |
| ? | 10:55 | 回收 | ? | ? | 90,2 | ? | ? | ? |
| 5 | 10:55 | 裝入 | 30K | 2臺 | 60,0 | 10:55 | 11:10 | 30 |
| ? | 11:10 | 回收 | ? | ? | 90,2 | ? | ? | ? |
| ? | 11:30 | 回收 | ? | ? | 100,4 | ? | ? | ? |
| 3 | 11:30 | 裝入 | ? | ? | 50,1 | 11:30 | 11:40 | 70 |
| 平均周轉時間為:215/5=43 | ||||||||
?
21、UNIX的進程地址空間分為哪些區段?為什么?
在UNIX系統中進程由三部分組成:進程控制塊、正文段和數據段。
22、UNIX中的每個進程有幾張頁表?為什么?
3張頁表
23、UNIX 采用怎樣的頁面調度算法?
UNIX采用二次機會頁面調度算法。他的實現要點如下:
1,把除了內核部分的所有物理頁登陸在一張總頁面表中。
2,設置一個時鐘指針,時鐘指針掃描總頁面表。當時鐘指針到達一個表項時,如果該物理頁是空閑的或正在與外設交換信息,則繼續掃描下一表項,否則找出占用該進程的進程頁表。
3,按物理頁號從進程頁表中找出對應的表項。若該頁的有效位被制成了0,則對該頁所在的物理頁置上空閑標志。若該頁的有效位為1,則把該頁置為0.
4,產生缺頁中斷后,可找一個空閑標志的物理頁,將該物理頁中的信息調出到磁盤上,然后再裝入新頁。
5,對有效位被置成0的頁,頁中的信息任然保留在物理頁中,只要這個物理頁沒有空閑標志,那么就不會被用來裝入新頁。這樣一旦進程又要訪問該頁時,只要把有效位重新置成1,使該頁信息成為2次有效,進程就可立即訪問該頁信息。顯然這樣減少了大量的輸入/輸出傳送。
24、答:它的作用是保證有足夠的空閑物理頁可供使用。一般它都處于睡眠狀態。每當有空閑標志的物理頁數量低于一個限值時就被喚醒。
頁面守護進程的職責:
1,控制上述的二次機會算法中的時鐘指針,當時鐘指針指向的某物理頁成為空閑頁時,把空閑的物理頁加1.
2,使時鐘指針繼續掃描,讓空閑的物理頁不斷增加。
3,當空閑頁達到一定數量,就使時鐘指針停止掃描,頁面守護進程進入睡眠狀態。
?
第五章復習題P156
1、什么叫文件??
答:文件是邏輯上具有完整意義的信息集合。
2、文件系統應由哪些部分組成?簡述各部分的主要工作??
答:文件系統由以下各部分組成:
(1)目錄管理:文件目錄是實現按名存取的一種手段,用戶要求建立的新文件,目錄管理的工作是把與該文件有關的屬性登記在目錄用戶要求讀文件時,應從文件目錄中查找指定的文件并核對是否有權使用。目錄結構應既能方便文件的檢索,又能保證文件系統的安全。
(2)文件的組織:文件組織包括文件的物理組織和文件的邏輯組織,而文件系統的這部分工作就是要能夠在用戶存取文件時把文件的邏輯組織和物理組織進行轉換。
(3)文件存儲的空間管理:對文件使用存儲空間的情況進行登記和管理,保證文件存儲在空閑塊中,并在文件刪除時收回該文件所用的空間。?
(4)文件操作:文件操作是文件系統提供給用戶使用文件的一組接口,包括建立文件、打開文件、讀文件、寫文件、關閉文件和刪除文件等。
(5)文件的共享、保護和保密:文件共享允許多個用戶使用同一個文件,但是要注意共享文件的保護和保密,即防止文件被破壞和被未經授權的用戶剽竊。
3、敘述下述術語并說明它們之間的關系:存儲介質、卷、塊、文件和記錄。?
答:存儲介質是指可用來記錄信息的磁帶、硬磁盤組、軟磁盤片、卡片等。
存儲介質的物理單位定義為“卷”。
存儲介質上存放的連續信息所組成的區域稱為“塊”,塊是存儲設備與主存儲器之間進行信息交換的物理單位。
邏輯上具有完整意義的信息集合稱為“文件”。
記錄是指用戶對文件內的信息按邏輯上獨立的含義劃分的信息單位,每個單位為一個邏輯記錄。
4、怎樣確定文件的存取方式??
答:文件的存取方式包括順序存取和隨機存取兩種,采用哪種存取方式,主要取決于兩方面的因素:
(1)怎樣使用文件。
文件的性質決定了文件的使用,也就決定了存取方式的選擇。對于由順序字符或其他數據組成的文件,按照順序存取的方式進行。對于按邏輯記錄方式組織的文件,則采用隨機存取的方式。
(2)存儲介質的特性。 磁帶機是適合順序存取的存儲設備。而磁盤機則既可采用順序方式,也可采用隨機方式。
5、為了實現按名存取,文件目錄應包含哪些內容??
答:文件目錄應包括的內容有: ?
- 有關文件存取控制信息。例如用戶名、文件名、文件類型、文件屬性(可讀寫、只讀、只執行等)
- 有關文件結構的信息。例如文件的邏輯結構、物理結構、記錄個數和在存儲介質上的位置等。?
有關文件管理的信息。例如文件建立的日期、修改日期、保留期限等。
6、怎樣才能防止不同的用戶可能給各自的文件取了相同的名字而造成的混亂?
7、見上面答案。
8、用戶A有名為W1,W2和W3的三個私有文件,用戶B有名為J1,J2的兩個私有文件,這兩個用戶需要使用共享文件T。文件系統對所有用戶提供按名存取功能,為保證存取的正確性,文件系統應設置合理的目錄結構,請畫出文件系統設計的目錄結構。?
解:如圖所示:
9、有一個可以帶4個終端的計算機系統,該系統配置了一個磁盤用來存儲終端用戶的程序和數據。今有4個上機的學生,他們在各自的終端上鍵入了自己的程序和數據,并都存儲在磁盤上,湊巧他們給各自的程序取的文件名均為WJ,請問 ????
a.系統應該采用怎樣的目錄結構才能區別這些學生的程序?并畫出這個目錄結構。? ?????
b.簡單闡明系統怎樣為這4個學生索取他們各自的程序。?
答:a.系統可采用二級目錄結構或樹形目錄結構。圖略。
b.以二級目錄結構存儲時,系統首先找到學生的用戶名(主文件目錄),再在用戶名下的的目錄中查找WJ為名的程序,這樣就可以找到他們各自的程序了。
?
10、什么是文件的邏輯結構和存儲結構?
11、解釋順序文件、鏈接文件和索引文件。?
答:這三種文件均是指物理文件:
順序文件:就是在磁盤上的按順序結構組織的文件,按邏輯文件記錄本身的順序在磁盤上按序存放在連續的塊中。讀取時也從第一個記錄開始順序進行,這樣的文件組織就是順序文件。在文件目錄中要指出文件名,存放的起始塊號和占用塊數。
順序文件的最大優點是存取速度快(可以連續訪問)。而問題主要是存儲空間利用率不高、輸出文件時難以估計需要多少磁盤塊、影響文件擴展。
2)鏈接文件:如果將邏輯文件中的各個邏輯記錄任意存放到一些磁盤塊中,再用指針把各個塊按邏輯記錄的順序鏈接起來,在文件目錄中只記錄第一塊的地址和最后一塊的地址,讀取時從第一塊開始,根據每塊中的指針訪問到下一塊直到最后一塊,這種文件組織就是鏈接文件。
鏈接結構解決了順序結構中的所有問題,所有空閑塊都可以被利用,在順序讀取時效率較高但需要隨機存取時效率低下(因為要從第一個記錄開始讀取查找)。此外,對于鏈接結構,也有一些問題要注意:由于塊中要存放指針信息,因此一部分空間被占用;讀出信息時要把指針信息分離出來;還要防止指針丟失或破壞造成的混亂,所以又要增加一些管理的信息。總之鏈式結構會使用于存放文件信息的空間減少。
3)索引文件:按索引方式組織的文件結構,文件的邏輯記錄任意存放在磁盤中,通過一張“索引表”指示每個邏輯記錄存放位置。訪問時根據索引表中的項來查找磁盤中的記錄,索引結構的文件既適合順序存取記錄,也可以方便地隨機存取記錄,并且容易實現記錄的增刪和插入,所以索引結構被廣泛應用。
12、解釋記錄的成組和分解操作。采用這種技術有什么優點?
優點:提高主存空間利用率。
13、答案見下:
14、假定磁帶的記錄密度為每英寸800個字符,每一個邏輯記錄長為160個字符,塊與塊之間的間隙為0.6英寸,現有1000個邏輯記錄需要存儲到磁帶上,分別回答下列問題:??
? a.不采用成組操作時磁帶空間的利用率
? b.采用以5個邏輯記錄為一組的成組操作時磁帶空間的利用率。
??c.為了使磁帶空間的利用率大于50%,采用記錄成組時其塊因子至少為多少?
答:a.不采用成組操作時,磁帶空間利用率為:
(160×1000)/(160000+800×0.6×1000)=0.25=25%
b.采用5個邏輯記錄一組時,磁帶空間利用率為:
(160×1000)/(160000+800×0.6×1000/5)=62.5%
c.設塊因子為x,利用率為50%,則有得:
160000/(160000+480000/x)=0.5 解之得:x=3
即塊因子至少為3才可以使磁帶空間利用率大于50%。
15、
16、答:
柱面號=塊號/柱面上的扇區數=1616/64=25
磁頭號=1616%64/8=2
扇區號=1616%64%8=0
17、答:1569/510=3………39
在第3號記錄,偏移量為39.
根據題意知第3號記錄在80塊。
18、答:
19、區分文件的保護和保密。?
答:文件的保護是防止文件被破壞。文件的保密是防止不經文件擁有者授權而竊取文件。引起文件被破壞的原因有:硬件故障、軟件失誤和用戶共享文件時的錯誤等。
20、
21、
22、
23、文件系統中為什么要設置“建立文件”、“打開文件”和“關閉文件”的操作??
答:文件系統把用戶組織的邏輯文件按一定方式轉換成物理文件存放到存儲介質上,當用戶需要文件時,文件系統又從存儲介質上讀出文件并把它轉換成邏輯結構。如果沒有“建立文件”的操作,就無法將邏輯文件轉換成物理文件。而“打開文件”的作用是檢索文件所在位置以及核對存取方式必須,“關閉文件”是核實是否為文件的建立者或打開者執行的操作,并對修改部分進行保存。這幾個操作均是為了正確實現文件的按名存取。因此要設置這些操作。
24、如果用戶要求讀一個尚未打的文件時,文件系統怎樣處理??
答:如果用戶要求讀一個尚未打的文件時,文件系統會提示用戶先打開文件,有的系統為了方便用戶,提供一種隱式使用文件的方法,允許用戶不需先調用“打開文件”、“建立文件”和“關閉文件”文件的操作,而直接調用“讀文件”或“寫文件”的操作。當用戶要“讀文件”時,系統先做“打開文件”(文件已存在)或“建立文件”(文件不存在)的操作,再執行“讀文件”操作。
25、文件系統能允許用戶關閉一個不是自己打開或建立的文件嗎??
答:“關閉文件”操作主要是核實只有文件的建立者或打開者才有權關閉文件。因此文件系統一般不允許別的用戶來關閉一個不是自已打開的文件。
(可能有人說,不對,我打開一個文件,我妹妹就能把它關掉。這里的用戶并不是指操作的人,而是指用戶程序,比如我用word打開了一個文件,這時另一個程序如Excel程序如果來想關閉這個文件是不允許的。但是操作系統的文件系統可以來關閉各個用戶打開的文件。)
?
26、
27、
28、
29、
30、unix進程打開文件表和系統打開文件表的作用是什么??
答:UNIX在整個系統運行期間維護一張系統打開文件表,每個用戶進程有一張進程打開文件表,以實現對文件讀寫操作的動態管理。
一個文件可以被同一個進程或不同進程以相同或不同的路徑同時打開,在請求打開時可以提出相同或不同的打開方式(只讀、寫、讀寫)。UNIX設置的系統打開文件表用于反映對被打開文件進程操作的動態信息。主要用于對文件的讀寫控制。
UNIX允許每個進程同時打開多個文件,但規定每個進程最多同時打開15個文件。UNIX為每個進程設置的進程打開文件表,其中的表項對應指向系統打開文件表中的一個表項。
31、
32、
33、UNIX怎樣管理磁盤上的文件存儲空間? (201004.35)
答: UNIX中的每一個文件系統的磁盤空間可以分成幾個部分:包括引導塊、超級塊、索引節點區和文件存儲區。
UNIX中可分配的磁盤空間有兩類。索引結點區和存放文件的存儲區。
對索引節點為區的管理:在索引節點餐中,每一塊可用來存放一占;建立文件時,從中找到一個空閑塊存放該文件的索引節點;刪除文件時,置該文件的索引節點為空閑。
對文件存儲區的管理:對文件存儲區中的空閑塊采用成組連接的方式管理每1000個空閑塊為一組。
補充、假定某文件系統把文件存儲到磁盤上采用鏈接結構,磁盤的分塊大小為512字節,而邏輯記錄的大小為250個字符。現有一個名為ABC的文件,共10個邏輯記錄,回答下列問題: ?????
a.怎樣才能有效地利用磁盤空間
b.畫出文件ABC在磁盤上的鏈接結構(磁盤塊號自定)
c.若用戶要求讀包含第 1425個字符的邏輯符號,請寫出用戶要求的主要工作步驟。?
答:a.可以將兩個記錄成組寫在一個磁盤塊上,正好占用500個字符,余下的12個字符(每個字符一個字節,共12個字節)位置用來存放下一塊的指針。這時的磁盤利用率為: 250*10/(512*5)=97.7%?b.如圖所示:
c.文件系統完成用戶要求的主要工作步驟是: ?
1)訪問時首先計算出包含第1452個字符的邏輯記錄是在第六個記錄。從0開始的話記錄號為5。
2)從文件目錄中找到該文件第0號記錄在磁盤上的物理塊號3。 3)根據讀到塊中的指針指示依次讀取下一塊直到包括5號記錄的塊14。
4)把14號塊中的內容讀到主存緩沖區。
5)把主存緩沖區中的第2條記錄讀入用戶作業區。這條記錄就是用戶所請求訪問的記錄。
?
第六章復習題P186
1、答:獨占設備和可共享設備。
2、解釋設備的絕對號和相對號。?
答:設備絕對號:在設備管理中,計算機系統為每一臺設備確定一個編號,以便區分和識別不同設備,這個編號稱為設備的絕對號。而用戶在程序中定義的設備號就是“設備相對號”。
3、用戶程序中采用“設備類、相對號”的方式用來使用設備有什么優點??
答:用戶程序中采用“設備類、相對號”的方式,使設備分配的適應性好,靈活性強:
1)系統只要從指定的設備類中找出一臺“好的且未分配的”設備來進行分配即可。
2)如果分配給用戶的設備在使用中出故障,則系統可以從同類設備中找出“好的且未分配”的另一臺設備來替換。
4、解釋“設備的獨立性”。?
答:用戶程序中采用“設備類、相對號”方式使用設備時,用戶編程就不必指定特定設備,在程序中由“設備類、相對號”定義邏輯設備。程序執行時由系統根據用戶指定的邏輯設備轉換成與其對應的具體物理設備。所以,用戶編程時使用的設備與實際使用哪臺設備無關,這就是“設備獨立性”。
5、什么是設備的靜態分配方式。?
答:設備的靜態分配是指當一個作業所需使用的獨占設備能得到滿足時,該作業才能被裝入主存儲器執行。此時該設備完全被分配給該作業占用,直到作業執行結束撤離時才收回這個設備。
6、啟動磁盤執行一次輸入輸出操作花費的時間由哪幾部分組成??
答:啟動磁盤執行一次輸入輸出操作花費的時間由“尋找時間、延遲時間和傳送時間”三部分時間組成。其中尋找時間是指磁頭在移動臂帶動下移動到指定術面所花的時間;延遲時間是指指定扇區旋轉到磁頭下所需的時間;傳送時間是指由磁頭進行讀寫完成信息傳送的時間。?
7、什么是磁盤的驅動調度?它包括哪兩部分?總結對磁盤進行驅動調度的過程。?
答:在多道程序設計系統中,同時有多個訪問者請求磁盤操作,此時系統采用一定的調度策略來決定各等待訪問者的執行次序,所以系統決定等待磁盤訪問者的執行次序的工作就是磁盤的“驅動調度”。
磁盤調度分為移臂調度和旋轉調度。根據訪問者指定的柱面位置來決定執行次序的調度稱“移臂調度”;當移動臂定位后,如有多個訪問者等待訪問該柱面時,根據延遲時間來決定執行次序的調度稱為“旋轉調度”。
8、假定某磁盤共有200個柱面,編號為0-199,如果在為訪問143號柱面的請求者服務后,當前正在為訪問125號柱面的請求服務,同時有若干請求者在等待服務,它們每次要訪問的柱面號為?
86,147,91,177,94,150,102,175,130
請回答下列問題:
a.分別用先來先服務算法,最短尋找時間優先算法、電梯調度算法和單各掃描算法來確定實際的服務次序。
b.按實際服務計算上述算法下移動臂需移動的距離。
答:a.先來先服務法:(125-86)+(147-86)+(147-91)+(177-91)+(177-94)+(150-94)+(150-102)+(175-102)+(175-130)=547?
最短尋找時間算法:(130-125)+(147-130)+(150-147)+(175-150)+(177-175)+(177-102)+(102-94)+(94-91)+(91-86)=143?
電梯調度算法:(125-102)+(102-94)+(94-91)+(91-86)+(130-86)+(147-130)+(150-147)+(175-150)+(177-175)=130?
b.實際服務算法是指單向掃描算法,在此算法下,移動距離是:
(130-125)+(147-130)+(150-147)+(175-150)+(177-175)+(199-177)+86+(91-86)+(94-91)+(102-94)=176(返回的移動不算入內)
9、假定磁盤的移動臂現在處于第8號柱面,有如下6個請求者等待訪問磁盤(見下圖),請你列出最省時間的響應次序。?
?
| ?序號 | 柱面號 | 磁頭號 | 扇區號 |
| 1 | 9 | 6 | 3 |
| 2 | 7 | 5 | 6 |
| 3 | 15 | 20 | 6 |
| 4 | 9 | 4 | 4 |
| 5 | 20 | 9 | 5 |
| 6 | 7 | 15 | 2 |
答:最省時間的響應次序是2、6、1、4、3、5。根據題意,只要訪問的柱面號順序為7,9,15,20的順序均應為正確答案。因為題中未給出確定的扇區數及訪問和處理所需時間。大約本題的出題重點在于考察移臂調度。至于本題的答案是根據這樣的原則來的,在確定移臂次序之后,如果有訪問相同柱面的,根據先來先響應的次序確定
10、假定某磁盤的旋轉速度是每圈20ms,格式化時每個盤面被分成10個扇區,現有10個邏輯記錄存放在同一磁道上。?
| ?扇區號 | 邏輯記錄 |
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |
| 6 | F |
| 7 | G |
| 8 | H |
| 9 | I |
| 10 | J |
處理程序要順序處理這些記錄,每讀出一個記錄后處理程序要花4ms的時間進行處理,然后再順序讀下一個記錄并處理,直到處理完這些記錄,回答:
?????a.順序處理完這10個記錄總共花費了多少時間?
?????b.請給出一種記錄優化分布的方案,使處理程序能在最短時間內處理完成這10個記錄,
并計算優化分布時需要花費的時間。
答:a.順序處理完這10個記錄所費時間:
?讀一個記錄的時間是20/10=2ms
每條記錄處理時間為4ms.計算如下:
A記錄:2+4=6ms
B記錄:因為6ms后已轉到第4扇區,因此還要轉過8個扇區方能到達第2扇區取B記錄,所需時間為:2*8+2+4=22ms.
同樣的,C...J記錄和B記錄訪問一樣,會有8個扇區的空轉時間。
總的時間為:6+22*9=204ms
b.要使處理程序在最短時間內處理完畢,則根據我們上面的計算,把B記錄安排在第扇區4上,把C記錄存放在扇區7上...按照這個辦法,可以得到記錄的優化分布如下分配:
| A | B | C | D | E | F | G | H | I | J |
| 1 | 4 | 7 | 10 | 3 | 6 | 9 | 2 | 5 | 8 |
這時每處理一個記錄后剛好轉入下一記錄扇區,所以處理時間總和為:10*(2+4)=60ms
11、假定有一個磁盤組共100個柱面,每個柱面上有8個磁道,每個盤面被劃分成8個扇區。現有一個含有6400個邏輯記錄的文件,邏輯記錄的大小與扇?
區大小一致,該文件以順序結構的形式被存放到磁盤上。柱面、磁道、扇區的編號均從“0”開始,邏輯記錄的編號也從“0”開始。文件信息從0柱面、0磁道、0扇區開始存放。試問:
????a.該文件的第 3680個邏輯記錄應存放在哪個柱面的第幾磁道的第幾個扇區?
????b.第78柱面的第6磁道的第6扇區應存放在了該文件的第幾個邏輯記錄?
?解:a.因為在磁盤中,文件是按柱面-磁道-扇區為序存放的。計算如下:(題中[ ]表示求整除的值?
?柱面號=[3680/(8*8)] =57
磁道號=[(3680 mod 64)/8]=4
扇區號=(3680 mod 64)mod 8=0
b.反過來也可計算:
邏輯記錄號=78*64 + 6*8 +6 =5046
12、解釋通道命令、通道程序、通道地址字和通道狀態字?
答:通道命令是計算機硬件設備提供的用于使用輸出設備的操作命令,每一條通道命令規定了設備的一種操作。通常由命令碼、數據主存地址、傳送字節個數及標志碼等部分組成。
通道程序是由一組通道命令組成的,這一級通道命令規定了通道執行一次輸入輸出操作應用的工作。
通道地址字(CAW)是在具有通道的計算機系統中,用來存放通道程序首地址的主存固定單元。
通道狀態字(CSW)是用于記錄通道和設備執行情況的主存單元。通常包括通道命令地址、設備狀態、通道狀態和剩余字節個數等幾個字段。通道狀態字采用雙機器字(64位)表示。
13、中央處理器與通道之間是怎樣配合工作的??
答:首先,中為處理器執行“啟動I/O”指令去啟動通道,如啟動成功,則通道執行指定的通道程序去控制外設工作。
當通道工作正常完成時,即通道狀態字中僅有通道結束、控制器結束和設備結束時,通道形成一個輸入輸出正常結束中斷事件。此時操作系統使有關進程從等等狀態進入就緒狀態。
如果通道工作時發現設備故障或設備特殊情況(如硬件故障、缺紙等)時形成操作異常結束的I/O中斷事件。此時由操作系統組織通道復執(重新執行程序)或產生有關信息請求用戶或操作員來處理。
總之,中央處理器是借助于I/O中斷來實現配合工作的。通道借助I/O中斷請求CPU進行干預,CPU根據產生的I/O中斷事件了解輸入輸出操作的執行情況,對通道操作而言,當操作正常結束或異常結束(如設備故障、設備特殊情況引起異常結束)形成I/O中斷,由CPU根據相應情況分別處理。
14、?答:把利用緩沖區來緩解處理器與外圍設備之間工作速度不匹配的矛盾而采用的技術稱為緩沖技術。
采用緩沖的原因:
①緩解CPU和外設之間速度不匹配的矛盾。②協調邏輯記錄與物理記錄大小不一致的問題。
15、什么是輸入井和輸出井??
答:為實現虛擬設備,必須在磁盤上劃出的專用存儲空間,這部分空間就是“井”,其中又分為兩部分:用于存放作業的初始信息的井是輸入井,存放作業執行結果的是輸出井。
16、SPOOL系統由哪些部分組成?簡述它們的功能。?
答:SPOOL系統由三部分程序組成:??
- 預輸入程序。通過該程序把作業流中每個作業的初始信息傳送到“輸入井”保存起來以以備作業執行時使用。?
- 井管理程序:包括井管理讀程序和井管理寫程序兩個功能,井管理讀程序負責從輸入機上讀取文件信息供用戶使用,井管理寫程序負責把作業執行產生的結果保存到輸出井中。?
- 緩輸出程序。它負責查看“輸出井”中是否有待輸出的結果信息,若有則啟動打印機把作業結果輸出。
17、實現虛擬設備的主要條件是什么??
答:實現虛擬設備的硬件條件:大容量磁盤;中斷裝置和通道;中央處理器與通道并行工作的能力。
實現虛擬設備的軟件條件是要求操作系統采用多道程序設計技術。
18、SPOOL系統為什么能提高獨占設備的利用率??
答:SPOOL系統借助硬件的中斷裝置和通道技術使得中央處理器與各種外圍設備以及各外圍設備之間均可并行工作。操作系統采用多道程序設計技術,合理分配處理器,實現聯機的外圍設備同時操作。
作業執行時從磁盤上讀寫信息來代替從輸入機和打印機的讀寫操作,不僅使多個作業可以同時執行,而且加快了作業的執行速度,提高了單位時間內處理作業的能力。在作業執行的同時還可利用輸入機繼續預輸入作業信息和利用打印機輸出結果,于是,整個系統可以是第一批作業的執行結果在打印輸出,第二批作業正在處理,第三批作業信息正在預輸入到磁盤的“輸入井”中。
這種聯機同時操作極大地提高了獨占設備的利用率,也使計算機系統的各種資源被充分利用。
19、實現虛擬設備后從哪些方面提高了系統效率??
答:實現虛擬設備后系統從輸入、輸出以及作業執行速度方面均提高了效率。具體如上題答案中所述。
20、
21、
22、
23、
?
第七章復習題
1、解釋進程的順序性和并發性。?
答:目前使用的計算機基本上是馮.諾依曼式結構,其基本特點是處理器順序執行指令。進程在順序的處理器上的執行是嚴格按順序進行的,這就是進程的順序性。當一個進程獨占處理器順序執行時,具有兩個特性:一、封閉性 二、可再現性。
在多道程序設計系統中,多個作業可以同時執行,一個作業又由多個進程協助完成,當一個進程的工作沒有全部完成之前,另一個進程就可以開始工作,它們的執行在時間上是重迭的。我們把它們稱為是“可同時執行的”。若系統中存在一組可同時執行的進程,則就該進程就具有并發性,可同時執行的進程稱為“并發進程”。
2、并發進程執行時一定會產生與時間有關的錯誤嗎?為什么??
答:并發進程由于其執行的隨機性,執行速度不能由自己控制,往往會出現一個進程對另一進程的影響不可預測的情況,從而產生與時間有關的錯誤。但是并發進程并不一定都會產生與時間有關的錯誤:
首先,無關的并發進程不會產生與時間有關的錯誤;
其次,有交往的并發進程如果不交叉訪問共享變量,也不會產生與時間有關的錯誤。
產生這類錯誤根本原因在于對共享變量不受限制的使用。
3、什么是臨界區?什么是相關臨界區??
答:并發進程中與共享變量有關的程序段稱為“臨界區”。相關臨界區是指并發進程中涉及到相同變量的那些程序段。
4、對相關臨界區的管理有哪些要求??
答: 1)一次最多讓一個進程在臨界區執行,當有進程在臨界區時其他想進入臨界區執行的進程必須等待。
- 2)任何一個進入臨界區執行的進程必須在有限的時間內退出臨界區,即任何一個進程都不應該無限地逗留在自己的臨界區。
- 3)不能強迫一個進程無限地等待進入它的臨界區,即有進程退出時應讓一個等待進入臨界區的進程進入它的臨界區。
5、若用PV操作管理某一組相關臨界區,其信號量S的值在[-1,1]之間變化,當S=-1,S=0,S=1時它們各自的物理含義是什么??
答:
S=-1 表示等待隊列中有1個進程(|S|)等待進入臨界區,而且當前已有進程在相關臨界區中訪問臨界資源。
S=0:表示當前有進程在相關臨界區訪問臨界資源,并且沒有任何進程等待使用臨界資源。
S=1: 表示有一個進程可以訪問臨界資源或進入相關臨界區執行。?
6、信號量S,初值為1每輛列車執行下列程序段即可。
P(S)
A->B
V(S)
7、今有3個并發進程R,M,P,它們之間共享一個緩沖器。進程R負責從輸入設備讀信息,每讀出一個記錄后把它存放在緩沖器B中。進程M在緩沖器B中加工進程R存入的記錄。進程P把加工后的記錄打印輸出。緩沖器B中每次只能存放一個記錄,當記錄被加工輸出后,緩沖器B中又可存放一個新記錄。請用PV操作為同步機制寫出它們并發執行能正確工作的程序。?
解:在這題中 R 是生產者, M是 R 的消費者。將 M 看成是生產者,則 P是 M的消費者。設置三個信號量SR,SM,SP,當其值為1時,SR表示緩沖器為空,SM表示緩沖器中存有待加工記錄,SP表示緩沖器中記錄已被加工好了。
| ?begin Buffer:integer; SR,SM,SP:SEmapore; SR=1;SM=0;SP=0; cobegin PROCESS R //讀入一個記錄進程 begin L1: read; P(SR); //讀之前檢查緩沖器是否為空,為空則讀入一條記錄 Buffer:=read; V(SM); //讀好后允許加工進程工作 goto L1 end; PROCESS M ?//加工記錄進程 begin ???? L2:product; P(SM); //檢查緩沖器中是否有待加工記錄 Buffer:=product; V(SP); //允許打印進程工作 goto L2 end; PROCESS P //打印進程 begin L3: P(SP); //檢查是否可以打印 take a product from Buffer; V(SR); //允許讀入記錄 print; ????????goto L3 end; coend; end; |
8、解:
R1,R2互斥,設置信號量SF,初值為1.
R1,W1同步,設置信號量S2,初值為0.
R2,W2同步,設置信號量S3,初值為0.
程序段如下:
?
R1
{L1:從磁盤讀入數據X;
P(SF);
B=X;;
V(S2);
GOTO L1;
}
R2
{L2:從鍵盤讀入數據 Y;
P(SF);
B=Y;
V(S3);
GOTO L2;
}
W1
{L3:P(S2);
從B中取出數據X;
V(SF);
打印輸出;
GOTO L3;
}
W2
{L4:P(S3);
從B中取出數據Y;
V(SF);
打印輸出;
GOTO L4;
}
?
?
9、、兩個并發進程的程序如下:?
| ? begin N: integer; N:=3; cobegin PROCESS A ???begin ???? ?????L1:N:=N+5; ??? ???goto L1 end; PROCESS B ???begin ???L2:print(N); ??????N:=0; ???goto L2 end; coend; end; |
若PROCESS A先執行了三個循環后,PROCESS A和PROCESS B又并發執行了一個循環,寫出可能出現的打印值。正確的打印值應該是多少?請用PV操作進行管理,使它們并發執行時不出現與時間有關的錯誤。
解: 可能出現的打印值為18或23。因為N的初始值為3,當進程A執行三個循環后,N的值為18,此時Process A和ProcessB并發執行,如果正巧是B先進入CPU執行的話,打印值就是18,打印時A進程為N增加的值就沒有被記錄下來。正確的打印值應該是23。PV操作的管理程序如下:
| ?begin N: integer; N:=3; S:SEmaphore; S:=1 cobegin PROCESS A begin L1:P(S); N:=N+5; V(S); goto L1 end; PROCESS B begin L2:P(S); print(N); N:=0; V(S); goto L2 end; coend; end; |
10、在公共汽車上,司機和售票員的工作流程如下圖所示。為保證乘客的安全,司機和售票員應密切配合協調工作。請用PV操作來實現司機與售票員之間的同步。?
解:在這個問題中,有兩組進程,一組是司機啟動車輛,行車和停車的進程,另一組是售票員售票、開車門和關車門的進程,兩組進程的制約關系為啟動車輛->行駛-停車->開車門->(旅客上車)關車門->啟動車輛。關鍵在于開門應在停車之后,啟動車輛應在關門之后。設有兩個信號用于司機和售票員之間通信,一個是Run,另一個是Open,Run等于1表示可以開車,Open等于1表示可以開門。 過程如下:
| ?begin Buffer:integer; Run,Open:Semapore; Run:=1;Open:=0; cobegin PROCESS Busman; //司機進程 ????begin L1:P(Run) //檢查是否可以啟動車輛 ??? start; //啟動車輛 driving; //行駛 stop; //停車 V(Open); //允許開門 ????goto L1 end; RPOCESS Conductor; //售票員進程 begin ? L2: selling tickets;//售票 ? P(Open);//檢查是否可以打開車門 Open the door;//開車門讓乘客上車 Close the door; //關門 V(Run); //允許開車 goto L2; end; ? coend; end; ? |
11、設置信號量S1,S2,S3用于進程間的同步 ;
設置信號量M用于進程間對盤子使用的互斥。程序如下:
cobegin
S1=2;S2=0;s3=0;m=1
?
producefather
{l0:取蘋果;
??P(S1);
?p(m);
把蘋果放入盤子;
v(m);
V(S2);
GOTO L0;}
producemother
{l1:取桔子;
??P(S1);
?p(m);
把桔子放入盤子;
v(m);
V(S3);
GOTO L1;}
consumerson
{l2:p(s3);
p(m);
把桔子從盤子取出;
v(m);
v(s1);
吃桔子;
GOTO L2;}
consumerdauther
{l3:p(s2);
p(m);
把蘋果從盤子取出;
v(m);
v(s1);
吃蘋果;
GOTO L3;}
?
12、
13、
14、
15、
16、
17、采用多線程技術有什么優點?
答:
補充:請用進程通信的辦法解決生產消費者問題。
解:設生產者的與消費者之間進行直接通信,在message中說明可用產品的信息。
| ?begin Process M; //生產者進程: begin L1:{生產物品}; send (B,message);//發送一條消息給B進程 goto L1; end; Process B; 消費者進程: begin L2:recieve(M,message); //取出信箱信件,如有信件則可以消費 {取出物品消費}; goto L2; end; end; ? |
?
?
第八章復習題
1、什么叫死鎖?什么原因會引起死鎖?(201007)?
答:若系統中存在一組進程(兩個或多個進程),它們中的每一個進程都占用了某種資源而又都在等待其中另一個進程所占用的資源,這種等待永遠不能結束,則說系統出現了“死鎖”。
死鎖產生的原因:與資源的分配策略有關,當系統中若干進程需求資源的總數大于系統能提供的資源數時,進程間會出現競爭資源,如果對進程競爭的資源分配不當就會引起死鎖。
死鎖的出現也與并發進程的執行速度有關,并發進程的執行速度是不可預知的。因此可能形成死鎖。?
2、有哪些策略可防止和避免死鎖?
防止死鎖的策略:破壞死鎖的四個必要條件的一個條件即可:資源的靜態分配、可搶奪資源、資源的按序分配;
避免死鎖的策略:銀行家算法。
3、某系統有輸入機和打印機各一臺,今有兩個進程都要同時使用它們,采用PV操作實現請求使用和歸還釋放后,還會產生死鎖嗎?若否,說明理由;若會產生死鎖則給出一種防止死鎖的方法。?
答:這兩個進程采用PV操作,可能不產生死鎖,也可能產生死鎖。如果PV操作對兩個資源進行按序分配,則不會產生死鎖,反之,則于進行的并發性,其執行速度無法預知,當一個進程得到輸入機另一進程得到打印機時,PV操作雖然實現互斥訪問,但兩個進程進入循環等待而死鎖。
以下是根據按序分配的策略寫成的PV操作控制方法:
| ?????begin S1,S2:semaphore; ????????S1=1;S2=1; ????????cobegin ???????? PROCESS P1 ???????? begin ???????? P(S1); //先申請S1再申請S2 ???????? P(S2); ???????? 操作 ???????? V(S1); ???????? V(S2); ??????? end; ???? PROCESS P2 ???????? begin ? ???????? P(S1); //先申請S1再申請S2 ???????? P(S2); ???????? 操作 ???????? V(S1); ???????? V(S2); ??????? end; ?end; ? |
可見其會類似于哲學家一樣而產生死鎖。(如進程R1占用了打印機,請求輸入設備,而R2占用輸入設備,請求打印機)。解決的方法是同時申請這兩個資源,一起使用。
4、現有同類資源12個供4個進程共享,假定進程所需資源和已占資源的情況如下表所示。回答:?
| ?進程 | 已占資源數 | 最大需求數 |
| P1 | 2 | 4 |
| P2 | 3 | 6 |
| P3 | 4 | 7 |
| P4 | 1 | 4 |
(1)目前系統是否處于安全狀態?為什么?
(2).4個進程在執行中又都提出申請一個資源的要求,則在什么情況下會引起死鎖?為什么??
答:(1).處于安全狀態。
在當前狀態下,尚余2個資源可供分配,如果先滿足進程P1的要求,把其中2個資源分配給P1進程,P1進程可執行完畢歸還系統4個資源,則系統剩余資源為4個,可滿足P2,P3,P4中的一個。因此可以找到一個安全序列P1,P2,P3,P4.所以系統是安全的。
(2).根據目前的資源占用情況,若先滿足P2,或P3,或P4的一個資源要求,則系統只剩下1個資源,不能滿足任何一個的資源需求,從而使系統處于死鎖狀態。
5、某系統有A,B,C,D這4類資源供5個進程共享,進程對資源的需求和分配情況如下表所示。現在系統還剩資源A類1個,B類5個,C類2個和D類0個,請按銀行家算法回答下面問題:?
| ?進程 | 已占資源數 | 最大需求數 |
| A B C D | A B C D | |
| P1 | 0 0 1 2 | 0 0 1 2 |
| P2 | 1 0 0 0 | 1 7 5 0 |
| P3 | 1 3 5 4 | 2 3 5 6 |
| P4 | 0 6 3 2 | 0 6 5 2 |
| P5 | 0 0 1 4 | 0 6 5 6 |
a.現在系統是否處于安全狀態?
b.如果現在進程P2提出需要(0,4,2,0)個資源的要求,系統能否滿足它的請求??
答:a.在這里,進程P1已經擁有足夠資源,在執行行后可歸還C和D資源,,同時,進程P3可以得到足夠的資源完成執行,其后,P2,P4、P5可以依次得到足夠的資源來完成,因此,用銀行家算法分配資源時,系統處于安全狀態。
b.系統可滿足進程P2的資源要求。根據銀行家算法,P2進程首次申請B類資源4個,不大于其所需的最大資源數(7個),也不大于系統尚存可用資源數(5個),同樣對于C類資源也是可以滿足的,因此系統按其當前申請數分配給P2進程。系統仍能按前面所述的資源分配序列P1,P3,P2,P4,P5來完成運行,系統處于安全狀態。
6、某系統有同類資源m個供n個進程共享,如果每個進程最多申請x個資源(1≤x≤m)且各進程的最大需求量之和小于(m+n),證明該系統不會發生死鎖。 證明:因為每個進程最多申請x個資源,最壞情況下n個進程各已申請了x-1 個資源。所以現在還剩下的資源是m-n(x-1),又因為各進程的最大需求量之和小于(m+n),因此有n(x-1)<m?
(即每個進程至少還差一個資源才能得到滿足)。所以剩余資源m-n(x-1)≥1,這樣,系統至少還有一個資源可使其中一個進程得到所需的全部資源,在它執行結束后,歸還的資源可供其他進程使用,因而不可能發生死鎖。?
7、有3個進程P1,P2和P3并發執行,進程P1需使用資源S3和S1,進程P2需使用資源S1和S2,進程P3需使用資源S2和S1,回答:?
a.若對資源分配不加限制,會發生什么情況?為什么?
b.為保證進程能執行到結束,應采用怎樣的資源根本策略?
答:a.若對資源分配不加限制,可能出現死鎖情況:如下表
| ?進程名 | 已占資源 | 申請資源 |
| P1 | S3 | S1 |
| P2 | S1 | S2 |
| P3 | S2 | S1 |
三個進程都不能得到自己所需的另一個資源,從而產生死鎖。
b. 有幾種方法可以避免死鎖產生:
?(1)采用靜態分配策略,每一個進程在開始執行前申請到所需的全部資源后,該進程才能開始執行,只要一個資源不能滿足,系統就不分配任何資源給該進程使其等待。
- (2)采用釋放已占資源策略,即當進程申請新的資源時必須先釋放已經占用的資源才可以給予分配資源。
- (3)采用按序分配策略,如給S1,S2,S3資源確定編號,進程在申請資源時必須從小到大的編號進行申請,即P1按S1,S3的順序,P2按S1,S2的順序,P3按S1,S2的順序申請,這樣的話,只要S1被任何一個進程申請到,別的進程就不可以申請到任何資源,從而保證了系統的安全。?
8、當前某系統有同類資源10個,進程P1,P2,P3所需資源總數分別為8,4,9。它們向系統申請資源的次序和數量如下表所示。回答:?
a.系統采用銀行家算法分配資源,請你寫出系統完成第6次分配后各進程的狀態及所占資源量。
b.在以后各次的申請中,哪次的申請要求可先得到滿足?
| ?次序 | 進程 | 申請量 | 次序 | 進程 | 申請量 |
| 1 | P3 P1 P2 | 2 | 6 | P2 P3 P1 P3 | 2 |
答:系統完成第6次分配后各進程狀態如下:
| 進程 | 已分配資源數 | 尚需資源數 | 進程狀態 | 系統剩余資源數 |
| P1 | 4 | 4 | 等待 | 0 |
| P2 | 4 | 0 | 運行 | |
| P3 | 2 | 7 | 等待 |
附:按銀行家算法進行的各進程的資源分配狀態變化如下:
| 次序 | P1 | P2 | P3 | 系統剩余資源數 |
| 1 | 0 | 0 | 2 | 8 |
| 2 | 4 | 0 | 2 | 4 |
| 3 | 4 | 2 | 2 | 2 |
| 4 | 4 | 2 | 2 | 2 |
| 5 | 4 | 2 | 2 | 2 |
| 6 | 4 | 4 | 2 | 0 |
b.進程P2運行結束后,第7次申請不能得到滿足,因為歸還的4個資源不足P3進程的剩余需求量,而第8次申請則可以使P1進程完成任務,因此第8次申請將先得到滿足。
?
?
總結
以上是生活随笔為你收集整理的02326操作系统课后答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VGGNet网络结构学习
- 下一篇: 计算机控制系统第二章答案,计算机控制技术