自考(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.當應用程序執行到系統調用時,系統是如何處理的?
答:當用戶使用操作系統調用是,產生一條相應的指令(異常指令),處理器在執行到該指令時發生相應的中斷,併發出有關信號給該處理機構(異常處理機構);該處理機構在收到了處理器發來的信號後,啓動相關的處理程序去完成該系統調用所要求的功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章