1. 程式人生 > >自考(2017年版)《作業系統》——第二章思考與練習題參考答案(自做)

自考(2017年版)《作業系統》——第二章思考與練習題參考答案(自做)

1.請簡述處理器的組成和工作原理。你認為哪些部分和作業系統密切相關,為什麼?
答:處理器一般由運算器、控制器、一系列的暫存器以及快取記憶體構成。其中,運算器實現指令中的算術和邏輯運算,是計算機的核心。控制器負責控制長征執行的流程。暫存器是一種暫時儲存器件,用於CPU執行指令的過程中暫存資料、地址以及指令資訊,為CPU本身提供了一定的儲存能力,但容量很小。處理器中的運算器、控制器、暫存器都與作業系統密切相關。作業系統就是通過對處理器中的這些部件來實現對程式的運算和程式流程的控制的。(P54)
2.為了支援作業系統,現代處理器一般都提供哪兩種工作狀態,以隔離作業系統和普通程式,兩種狀態各有什麼特點?


答:現代處理器一般都提供管態和目態等兩種工作狀態。使用者程式在目態下執行,只能使用非特權指令,具有較低的特權級別;作業系統在管態下執行,可以使用特權指令和非特權指令,具有較高的特權級別。 (P56)
3.計算機系統中既有作業系統程式,又有使用者程式,在什麼情況下作業系統才能佔用中央處理器?
答:當用戶程式佔用CPU時,CPU在目態下執行,只能使用非特權指令;當需要使用特權指令時,將引起一次處理器狀態的切換,此時處理器通過中斷機制將目態轉換為管態,然後將處理權移交給作業系統中的一段程式碼,作業系統才能佔用CPU。從目態變為管態其轉換的惟一途徑是通過中斷。(P56)
4.為什麼要把“啟動I/O”等指令定義為特權指令?

答:一個程式可以在其它程式等待外圍裝置傳送資訊時佔用處理器執行,在執行中如果它也使用啟動指令去啟動一臺正在工作的外圍裝置,那麼就會造成衝突。為保護輸入輸出的完整性,把“啟動I/O”等的一類可能影響系統安全的指令定義為特權指令。特權指令只允許作業系統使用,使用者程式不能使用特權指令。使用者程式若要啟動I/O,必須請求作業系統代為啟動,這種方式不但可以保證安全地使用外圍裝置,正確地傳送資訊,而且可減少使用者為啟動裝置而必須瞭解外圍裝置特性以及啟動等工作,大大方便了使用者。(P55)
5.怎樣限制使用者程式中使用特權指令?
答:當用戶程式佔用CPU時,CPU在目態下執行,只能使用非特權指令。若此刻CPU取到了一條特權指令,CPU將拒絕執行並形成“非法操作”事件。中斷機制識別到該事件,執行狀態就從目態變為管態,將控制權轉給作業系統,通過作業系統通知使用者“程式中有非法指令”。 (P57)
6.什麼是分級的儲存體系結構?它主要解決了什麼問題?

答:計算機儲存系統的設計主要考慮容量、速度和成本三個問題。容量是儲存系統的基礎,都希望配置儘可能大的儲存系統.同時要求儲存系統的讀寫速度能與處理器的速度相匹配。此外成本也應該在一個合適的範圍之內。但這三個目標不可能同時達到最優。一般情況下,儲存裝置讀寫速度越快,平均單位容量的價格越高,儲存容量越小;反之,儲存裝置讀寫速度越慢,平均單位容量的價格越低,儲存容量越大。為了在這三者之間取得平衡,就採用分級的儲存體系結構,由暫存器、快取記憶體、主記憶體、硬碟儲存器、磁帶機和光碟儲存器等構成。作業系統經常訪問較小、較貴而快速的儲存裝置,以較大、較便宜而讀寫速度較慢的儲存裝置作後盾。在整體上通過對訪問頻率的控制來提高儲存系統的效能。 (P59)
7.請簡述程式區域性性原理
答:程式區域性性原理,是指程式在執行時呈現出區域性性規律,即在一段時間內,整個程式的執行僅限於程式中的某一部分。相應地,執行所訪問的儲存空間也侷限於某個記憶體區域。(P59)
8.什麼是儲存保護,有哪些方法實現儲存保護?
答:為使系統能正常工作,應防止由於一個使用者程式出錯而破壞其它使用者程式和系統軟體的資料,還要防止一個使用者程式不合法的訪問不是分給它的主存區域。為此,系統提供儲存保護。主要通過地址越界檢查和訪問許可權控制的方式實現。(P60)
9.作業系統與硬體如何配合來實現儲存保護的?
答:作業系統通過與硬體中的界地址暫存器配合實現儲存保護。其方法是在CPU中設定一對界限暫存器來存放某個作業在記憶體中的下限和上限地址,或者一個暫存器作為基址暫存器,另一個作為限長暫存器。每當CPU訪問記憶體時,硬體自動將被訪問的記憶體地址與界限暫存器的內容進行比較以判斷是否越界。如果未越界,則按此地址訪問記憶體,否則將產生越界中斷。(P60)
10.常用的I/O控制技術有哪些,各有什麼特點?
答:I/O控制方式的發展經歷了四個階段:程式查詢方式、I/O中斷方式、DMA方式和I/O通道方式。程式查詢方式。在早期計算機或現代一些簡單的微型計算機系統中,採用程式查詢I/O方式。

  • 程式查詢是一種用程式直接控制I/O操作的方式。CPU與外設的活動本質上是非同步的,為了實現CPU與外設間的資訊傳送,CPU必須重複測試外設的狀態,僅當外設是處在準備好的狀態時,CPU才能與外設交換資訊。所以,在程式查詢I/O方式的介面電路中必須設定一狀態埠,以使CPU通過執行輸入指令瞭解外設的狀態。當採用程式查詢傳送方式時,每當程式要使用某一外設進行I/O操作時,CPU要執行一段迴圈測試程式,以實現在外設準備好時執行一條輸入/輸出指令,進行一位元組或字的資料傳送操作。在這種方式下,CPU的大量時間消耗在等待輸入/輸出的迴圈檢測上,使CPU與外設序列工作,嚴重影響了CPU和外設的使用效率,致使整個系統效率很低。
  • I/O中斷方式。引入中斷技術後,每當裝置完成I/O操作時,便向CPU發出中斷請求訊號,通知CPU外設已準備好,可以進行資料傳送操作。這樣,CPU一旦啟動I/O裝置後便可執行其他程式,僅在收到I/O中斷請求時才執行其中斷服務程式,進行I/O處理和I/O操作。程式中斷傳送方式改善了CPU的利用率,並使CPU與外設並行操作。但I/O資料的處理和I/O操作的控制都是由CPU承擔的,仍然消耗了CPU不少時間。
  • 直接儲存器訪問(DMA)方式。雖然I/O中斷方式比程式查詢方式更有效,但須注意,它仍是以位元組或字為單位進行輸入/輸出的,每當完成一位元組或字時,控制器便要向CPU請求一次中斷。換言之,採用I/O中斷方式時的CU,是以位元組或字為單位進行干預的。如果將這種方式用於塊裝置的I/O,顯然是低效的。例如,為了從磁碟中讀出1KB的資料塊,需要中斷CPU 1000次。為了進一步減少CPU對I/O的干預而引入了直接儲存器訪問(DMA)方式。
  • I/O通道方式。I/O通道方式是DMA方式的發展,它會進一步較少對CPU的干預,即把對一個數據塊的讀(或寫)為單位的干預,減少為對一組資料塊的讀(或寫)有關的控制和管理為單位的干預。I/O通道有自己的指令系統,即通道程式,可以與CPU並行操作,獨立管理外設和實現主存和外設之間的資訊傳輸,使CPU擺脫了繁忙的I/O操作。在配置通道的計算機系統中,不僅能實現CPU與通道的並行操作,而且通道與通道、各通道的外設之間均能實現並行操作,因而有效地提高了整個系統的使用效率。

11.緩衝技術在計算機系統中起著什麼樣的作用,它是如何工作的?
答:作用是解決了處理器處理資料速度與裝置傳輸資料速度不相匹配的問題。
工作原理是外部裝置輸入資料時先把資料暫存在緩衝區,緩衝區存滿或資料輸入結束後再把資料讀入到工作區由處理器進行處理。(P62)
12.時鐘對作業系統有什麼重要作用?
答:時鐘可防止系統陷入死迴圈、實現作業按時間片輪轉執行、給出正確的時間訊號、定時喚醒事先按確定時間執行的事件、記錄事項、記錄使用者和系統所需要的絕對時間等。(P62-P63)
13.硬體時鐘怎樣實現,其作用是什麼?
答:硬體時鐘 工作原理是,在電路中的晶體振盪器每隔一定時間間隔產生固定的脈衝頻率,時鐘電路中的時鐘暫存器依據時鐘電路所產生的脈衝數,對時鐘暫存器進行加1的工作。作用是提供絕對時鐘作為整個計算機系統中的時間參考基準。也可以用來實現相對時鐘。(P63)
14.軟體時鐘怎樣實現,其作用是什麼?
答:軟體時鐘主要是利用記憶體單元模擬時鐘暫存器,並採用一段程式來計算相應的脈衝數,對記憶體時鐘暫存器進行加1或者減1的操作,模擬時鐘的功能。作用是彌補硬體時鐘相對較少的缺陷,滿足作業系統和應用程式對時鐘的需求,可以用來實現相對時鐘。(P63)
15.什麼是中斷,為什麼說中斷對現代計算機很重要?
答:中斷是指CPU對系統中或系統外所發生的非同步事件的響應。非同步事件是指無一定時序關係的隨機發生的事件。中斷是所有要打斷CPU的正常工作次序、並要求其去處理某一事件的一種常用手段。
中斷技術解決了主機和外設並行工作的問題,消除了因外設的慢速而使得主機等待的現象,為多機操作和實時處理提供了硬體基礎。 (P63)
16.中斷的作用是什麼?
答:中斷的作用有兩個方面:首先是使CPU能充分發揮使用效率,讓I/O裝置用中斷的方式同CPU通訊,報告其完成CPU所要求的資料傳輸的情況和問題,以免除CPU
不斷地查詢和等待,從而大大提高CPU的效率。其次是提高系統的實時能力:當系統要求實時處理某些事件時,可以通過中斷請求及時處理,從而使CPU立即作出響應。(P64)
17.中斷向量是什麼,其作用是什麼?
答:引起中斷的事件稱為中斷事件或中斷源計算機系統提供的中斷源的有序集合稱為中斷字。處理某一種中斷事件的程式稱為中斷處理程式。為了使中斷裝置便於找到所需的中斷處理程式,專門設計了中斷處理程式入口地址對映表,稱為中斷向量表。表中的每一項稱為中斷向量,主要由程式狀態字PSW和程式計數器PC的值組成。中斷向量的作用是通過它可以找到中斷處理程式在記憶體中的儲存位置。(P64)
18.中斷響應主要做哪些工作?
答:中斷響應主要包括5個工作:
1. 處理器接收中斷訊號;
2. 保護現場,將中斷斷點的PSW和程式計數器PC的值存入系統堆疊;
3. 分析中斷向量,取得中斷處理程式的入口地址;
4. 將處理器的PC值置為中斷處理程式的入口地址;
5. 呼叫中斷處理程式。(P66)

19.中斷處理的主要步驟是什麼?
答:中斷處理指中斷訊號已經被中斷系統的硬體中斷裝置接收和響應之後,相應的中斷處理程式進行中斷處理的步驟。包括:

  • 檢查I/O相關的狀態資訊、操縱I/O裝置或者在裝置和記憶體之間傳送資料。
  • 根據中斷請求的類別和要求不同,進行相應的中斷處理。
  • 在中斷處理程式結束工作之後,處理器檢測到一條中斷返回指令。
  • 處理器執行中斷返回指令,把恢復中斷時所保護的中斷斷點現場。
  • 處理器也恢復成被中斷時的狀態,整個中斷處理結束。
    (P66)

20.為什麼要對中斷進行遮蔽?
答:如果沒有中斷遮蔽,當中斷裝置響應了某個中斷後中斷處理程式在進行處理時,中斷裝置也可能去響應另一箇中斷事件,就會出現優先順序低的中斷事件的處理打斷優先順序高的中斷事件的處理,使得中斷事件的處理順序與響應順序不一致,而且會形成多重巢狀處理,使多現場保護、程式返回等工作變得複雜。因此設定中斷遮蔽。
21.多箇中斷同時發生時,系統是怎樣處理的?
答:同時有多箇中斷請求時,系統接收中斷優先順序最高的中斷而忽略其中中斷優先順序較低的中斷。如果同一中端級中的多個裝置介面都有中斷請求,則按照固定的優先數或作者輪轉法確定響應的順序。
22.簡述硬體的中斷裝置的作用
答:硬體的中斷裝置負責捕獲中斷源發出的中斷請求,並以一定的方式響應中斷源(將中斷現場的程式狀態字PSW,指令計數器PC的值和其他重要現場資訊壓入系統堆疊),然後將處理器的控制權交給與中斷源相應的中斷處理程式。(P65,P70)
23.哪些中斷事件一定會引起程序狀態的變化,哪些中斷事件可能引起程序狀態的變化,有不引起程序狀態變化的中斷事件嗎?
答:一定會引起程序狀態變化的中斷事件:硬體故障中斷、輸入輸出中斷、自願中斷;可能會引起變化的中斷事件:外部性中斷事件、程式性中斷事件。程序在執行中狀態會不斷地改變,每個程序在任何時刻總是處於三種基本狀態之一:等待態、就緒態、執行態。中斷事件是否引起程序狀態的變化,還要看該中斷事件的中斷優先順序和程序PSW的中斷遮蔽位。曉津認為:硬體故障中斷和自願中斷是一定會引起程序狀態變化的,而其他中斷則可能引起程序狀態變化。
24.作業系統為什麼要提供“系統呼叫”?
答:系統呼叫是作業系統為使用者程式提供的一種服務介面,也可以說是作業系統保證程式設計語言能正常工作的一種支援。在源程式一級,使用者用程式設計語言描述算題任務的邏輯要求,例如讀檔案、寫檔案、請求主存資源等。這些要求的實現只有通過作業系統的系統呼叫才能完成,其中有些要求還必須執行硬體的特權指令才能達到目的。
25.在作業系統中實現系統呼叫機制應該解決哪些問題?
答:程序控制、檔案操作、程序通訊、裝置管理、資訊維護等等。(P71)
26.當應用程式執行到系統呼叫時,系統是如何處理的?
答:當用戶使用作業系統呼叫是,產生一條相應的指令(異常指令),處理器在執行到該指令時發生相應的中斷,併發出有關訊號給該處理機構(異常處理機構);該處理機構在收到了處理器發來的訊號後,啟動相關的處理程式去完成該系統呼叫所要求的功能。