第一篇:張堯學-操作系統(tǒng)課后題答案
第一章 緒論
1.什么是操作系統(tǒng)的基本功能?
答:操作系統(tǒng)的職能是管理和控制汁算機系統(tǒng)中的所有硬、軟件資源,合理地組織計算
機工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:
處理機管理、存儲管理、設備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。
2.什么是批處理、分時和實時系統(tǒng)?各有什么特征?
答:批處理系統(tǒng)(batchprocessingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動依次處理。其主要特征是:用戶脫機使用計算機、成批處理、多道程序運行。
分時系統(tǒng)(timesharingoperationsystem):把處理機的運行時間分成很短的時間片,按時間片輪轉的方式,把處理機分配給各進程使用。其主要特征是:交互性、多用戶同時性、獨立性。
實時系統(tǒng)(realtimesystem):在被控對象允許時間范圍內作出響應。其主要特征是:對實時信息分析處理速度要比進入系統(tǒng)快、要求安全可靠、資源利用率低。
3.多道程序(multiprogramming)和多重處理(multiprocessing)有何區(qū)別?
答;多道程序(multiprogramming)是作業(yè)之間自動調度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時值行多個作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個CPU,能真正同時執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設計技術,而多道程序設計原則上 不一定要求多重處理系統(tǒng)的支持。
6。設計計算機操作系統(tǒng)時與那些硬件器件有關
運算器、控制器、存儲器、輸入設備、輸出設備
第二章 作業(yè)管理和用戶接口
2. 作業(yè)由哪幾部分組成?各有什么功能?
答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。
3.作業(yè)的輸入方式有哪幾種?各有何特點
答:作業(yè)的輸入方式有5種:聯(lián)機輸入方式、脫機輸入方式、直接耦合方式、SPOOLING
(Simultaneous Peripheral OperationsOnline)系統(tǒng)和網絡輸入方式,各有如下特點:
(1)聯(lián)機輸入方式:用戶和系統(tǒng)通過交互式會話來輸入作業(yè)。
(2)脫機輸入方式:又稱預輸入方式,利用低檔個人計算機作為外圍處理機進行輸入處理,存儲在后備存儲器上,然后將此后援存儲器連接到高速外圍設備上和主機相連,從而在較短的時間內完成作業(yè)的輸入工作。
(3)直接耦合方式:把主機和外圍低檔機通過一個公用的大容量外存直接耦合起來,從而省去了在脫機輸入中那種依靠人工干預宋傳遞后援存儲器的過程。
(4)SPOOLING系統(tǒng):可譯為外圍設備同時聯(lián)機操作。在SPOOLING系統(tǒng)中,多臺外圍設備通過通道或DMA器件和主機與外存連接起來,作業(yè)的輸入輸出過程由主機中的操作系統(tǒng)控制。
(5)網絡輸入方式:網絡輸入方式以上述幾種輸入方式為基礎,當用戶需要把在計算機網絡中某一臺主機上輸入的信息傳送到同一網中另一臺主機上進行操作或執(zhí)行時,就構成了網絡輸入方式。
6.操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么?
答:操作系統(tǒng)為用戶提供兩個接口,一個是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計算機系統(tǒng)。另一個接口是系統(tǒng)調用,編程人員使用系統(tǒng)調用來請求操作系統(tǒng)提供服務,例如申請和釋放外設等類資源、控制程序的執(zhí)行速度等。
8.什么是系統(tǒng)調用?系統(tǒng)調用與一般用戶程序有什么區(qū)別?與庫函數(shù)和實用程序又有什么區(qū)別?
答:系統(tǒng)調用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調用系統(tǒng)中已有的系統(tǒng)功能 來完成那些與機器硬件部分相關的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調用像一個黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關的功能。它 與一般用戶程序、庫函數(shù)和實用程序的區(qū)別是:系統(tǒng)調用程序是在核心態(tài)執(zhí)行,調用它們需要一個類似于硬件中斷處理的中斷處理機制來提供系統(tǒng)服務。
9.簡述系統(tǒng)調用的實現(xiàn)過程。
答;用戶在程序中使用系統(tǒng)調用,給出系統(tǒng)凋用名和函數(shù)后,即產生一條相應的陷入指令,通過陷入處理機制調用服務,引起處理機中斷,然后保護處理機現(xiàn)場,取系統(tǒng)調用功能號并尋找子程序入口,通過入口地址表來調用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。
第三章 用戶管理和配置管理
2.試比較進程和程序的區(qū)別。
答:(1)進程是一個動態(tài)概念,而程序是一個靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義,進程則強調執(zhí)行的過程。
(2)進程具有并行特征(獨立性,異步性),程序則沒有。
(3)不同的進程可以包含同一個程序,同一程序在執(zhí)行中也可以產生多個進程。
4.試比較作業(yè)和進程的區(qū)別。
答:一個進程是一個程序對某個數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用于需要計算機完成某項任務,而要求計算機所做工作的集合。一個作業(yè)的完成要經過作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個階段。而進程是已提交完畢的程序所執(zhí)行過程的描述,足資源分配的基本單位。其主要區(qū)別關 系如下:
(1)作業(yè)是用戶向計算機提交任務的任務實體。在用戶向計算機提交作業(yè)之后,系統(tǒng)將存儲在外存中的作業(yè)等待隊列中等待執(zhí)行。而進程則是完成用戶任務的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。任一進程,只要它被創(chuàng)建,總有相應的部分存在于內存中。
(2)一個作業(yè)可由多個進程組成。且必須至少由一個進程組成,但反過來不成立。
(3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時系統(tǒng)中,則沒有作業(yè)概念。而進程的概念則用在幾乎所有的多道程序系統(tǒng)中。
6.什么是臨界區(qū)?試舉一臨界區(qū)的例子。
答:臨界區(qū)是指不允許多個并發(fā)進程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。
例如:
getspace:
Begin local g
top=top-1
End
release(ad):
Begin
top’top十1
stack[top]=ad
End
8.什么是進程間的互斥?什么是進程間同步?
答:進程間的互斥是指:一組并發(fā)進程中的一個或多個程序段,因共享某一公有資源而導致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個以上的共享該資源的并發(fā)進程同時進入臨界區(qū)。
進程間的同步是指:異步環(huán)境下的一組并發(fā)進程因直接制約互相發(fā)送消息而進行互相合作、互相等待,各進程按一定的速度執(zhí)行的過程。
第四章 進程管理
4.進程調度的功能有哪些?
答:進程調度的功能有:
(1)記錄和保存系統(tǒng)中所有進程的執(zhí)行情況;
(2)選擇占有處理機的進程;
(3)進行進程上下文切換。
5.進程調度的時機有哪幾種?
答:進程調度的時機有:
(1)正在執(zhí)行的進程執(zhí)行完畢。這時如果不選擇新的就緒進程執(zhí)行,將浪費處理機資源。
(2)執(zhí)行中進程自己調用阻塞原語將自己阻塞起來進入睡眠等待狀態(tài)。
(3)執(zhí)行中進程調用了P原語操作,從而因資源不足而被阻塞:或調用了V原語操作激活了等待資源的進程隊列。
(4)執(zhí)行中進程提出I/O請求后被阻塞。
(5)在分時系統(tǒng)中時間片已經用完。
(6)在執(zhí)行完系統(tǒng)調用等系統(tǒng)程序后返回用戶程序時,可看做系統(tǒng)進程執(zhí)行完畢,從而調度選擇一新的用戶進程執(zhí)行。
(7)在CPU執(zhí)行方式是可剝奪時,還有:就緒隊列中的某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級,從而也將引發(fā)進 程調度。
第五章 處理器管理
3.實現(xiàn)地址重定位的方法有哪幾類?
答:實現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動態(tài)地址重定位。
(1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點是不需要硬件支持,但是用靜態(tài)地址重定位方法進行地址變換無法實現(xiàn)虛擬存儲器。靜態(tài)重定位的另一個缺點是必須占用連續(xù)的內存空間和難以做到程序和數(shù)據(jù)的共享。
(2)動態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內存之前由硬件地址變換機構將要訪問的程序或數(shù)據(jù)地址轉換成內存地址。動態(tài)地址重定位的主要優(yōu)點有:
①可以對內存進行非連續(xù)分配。
②動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎。
③動態(tài)重定位有利于程序段的共享。
形式化描述:略。
6.動態(tài)分區(qū)式管理的常用內存分配算法有哪幾種?比較它們各自的優(yōu)缺點。
答:動態(tài)分區(qū)式管理的常用內存分配算法有最先適應法(FF)、最佳適應法(BF)和最壞適應法(WF)。
優(yōu)缺點比較:
①從搜索速度上看最先適應法最佳,最佳適應法和最壞適應法都要求把不同大小的空閑區(qū)按大小進行排隊。
②從回收過程來看,最先適應法也是最佳,因為最佳適應法和最壞適應法都必須重新調整空閑區(qū)的位置。
③最佳適應法找到的空閑區(qū)是最佳的,但是會造成內存碎片較多,影響了內存利用率,而最壞適應法的內存碎片最少,但是對內存的請求較多的進程有可能分配失敗。
總之,三種算法各有所長,針對不同的請求隊列,它們的效率和功能是不一樣的。
8.簡述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么?
答:將程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結構讓那些不會同時執(zhí)行的程序段共享同一塊內存區(qū)的內存擴充技術就是覆蓋。交換是指先將內存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再從外存交換區(qū)中調入指定的程序或數(shù)據(jù)到內存中來,并讓其執(zhí)行的一種內存擴充技術。與覆蓋技術相比,交換不要求程序員給出程序段之間的覆蓋結構,而且,交換主要是在進程或作業(yè)之間進行,而覆蓋則主要在同一個作業(yè)或同一個進程內進行。另外,覆蓋只能覆蓋那 些與覆蓋程序段無關的程序段。
11.請求頁式管理中有哪幾種常用的頁面置換算法?試比較它們的優(yōu)缺點。
答:比較常用的頁面置換算法有:
(1)隨機淘汰算法(randomglongram)。即隨機地選擇某個用戶頁面并將其換出。
(2)輪轉法RR(roundrobin)。輪轉法循回換出內存可用區(qū)內一個可以被換出的頁,無論該頁是剛被換進或已經換進內存很長時間。
(3)先進先出法FIFO(firstinfirstout)。FIFO算法選擇在內存駐留時間最長的一頁將其淘汰。
(4)最近最久未使用頁面置換算法I.RU(1east recently unused)。該算法的基本思想是:當需要淘汰某一頁時,選擇離當前時間最近的一段時間內最久沒有使用過的頁面先淘汰。
(5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來再也不出現(xiàn)的或是在離當前最遠的位置上出現(xiàn)的頁面。
第九章 外部設備管理
4. 什么是中斷?什么叫中斷處理?什么叫中斷響應?
答: 中斷是指計算機在執(zhí)行期間,系統(tǒng)內發(fā)生任何非尋常的或非預期的急需處理事件,使得CPU暫時中斷當前正在執(zhí)行的程序而轉去執(zhí)行相應的事件處理程序,待處理 完畢后又返回原來被中斷處繼續(xù)執(zhí)行的過程。CPU轉去執(zhí)行相應的事件處理程序的過程稱為中斷處理。CPU收到中斷請求后轉到相應的事件處理程序稱為中斷響 應。
5.什么叫關中斷?什么叫開中斷?什么叫中斷屏蔽?
答:把CPU內部的處理機狀態(tài)字PSW的中斷允許位清除從而不允許CPU響應中斷叫做關中斷。設置CPU內部的處理機狀態(tài)字PSW的中斷允許位從而允許CPU響應中斷叫做開中斷。
中斷屏蔽是指在中斷請求產生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應。
7.描述中斷控制方式時的CPU動作過程。
答:(1)首先,CPU檢查響應中斷的條件是否滿足。如果中斷響應條件不滿足,則中斷處理無法進行。
(2)如果CPU響應中斷,則CPU關中斷。
(3)保存被中斷進程現(xiàn)場。
(4)分析中斷原因,調用中斷處理子程序。
(5)執(zhí)行中斷處理子程序。
(6)退出中斷,恢復被中斷進程的現(xiàn)場或調度新進程占據(jù)處理機。
(7)開中斷,CPU繼續(xù)執(zhí)行。
第二篇:計算機操作系統(tǒng) 課后習題答案 張堯學
第一章 緒論
1.什么是操作系統(tǒng)的基本功能?
答:操作系統(tǒng)的職能是管理和控制汁算機系統(tǒng)中的所有硬、軟件資源,合理地組織計算
機工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:
處理機管理、存儲管理、設備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。
2.什么是批處理、分時和實時系統(tǒng)?各有什么特征?
答:批處理系統(tǒng)(batchprocessingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動依次處理。其主要特征是:用戶脫機使用計算機、成批處理、多道程序運行。
分時系統(tǒng)(timesharingoperationsystem):把處理機的運行時間分成很短的時間片,按時間片輪轉的方式,把處理機分配給各進程使用。其主要特征是:交互性、多用戶同時性、獨立性。
實時系統(tǒng)(realtimesystem):在被控對象允許時間范圍內作出響應。其主要特征是:對實時信息分析處理速度要比進入系統(tǒng)快、要求安全可靠、資源利用率低。
3.多道程序(multiprogramming)和多重處理(multiprocessing)有何區(qū)別?
答;多道程序(multiprogramming)是作業(yè)之間自動調度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時值行多個作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個CPU,能真正同時執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設計技術,而多道程序設計原則上 不一定要求多重處理系統(tǒng)的支持。
6.設計計算機操作系統(tǒng)時與那些硬件器件有關
運算器、控制器、存儲器、輸入設備、輸出設備
第二章 作業(yè)管理和用戶接口
2. 作業(yè)由哪幾部分組成?各有什么功能?
答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。
3.作業(yè)的輸入方式有哪幾種?各有何特點
答:作業(yè)的輸入方式有5種:聯(lián)機輸入方式、脫機輸入方式、直接耦合方式、SPOOLING
(Simultaneous Peripheral OperationsOnline)系統(tǒng)和網絡輸入方式,各有如下特點:
(1)聯(lián)機輸入方式:用戶和系統(tǒng)通過交互式會話來輸入作業(yè)。
(2)脫機輸入方式:又稱預輸入方式,利用低檔個人計算機作為外圍處理機進行輸入處理,存儲在后備存儲器上,然后將此后援存儲器連接到高速外圍設備上和主機相連,從而在較短的時間內完成作業(yè)的輸入工作。
(3)直接耦合方式:把主機和外圍低檔機通過一個公用的大容量外存直接耦合起來,從而省去了在脫機輸入中那種依靠人工干預宋傳遞后援存儲器的過程。
(4)SPOOLING系統(tǒng):可譯為外圍設備同時聯(lián)機操作。在SPOOLING系統(tǒng)中,多臺外圍設備通過通道或DMA器件和主機與外存連接起來,作業(yè)的輸入輸出過程由主機中的操作系統(tǒng)控制。
(5)網絡輸入方式:網絡輸入方式以上述幾種輸入方式為基礎,當用戶需要把在計算機網絡中某一臺主機上輸入的信息傳送到同一網中另一臺主機上進行操作或執(zhí)行時,就構成了網絡輸入方式。4.試述spooling系統(tǒng)的工作原理
6.操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么?
答:操作系統(tǒng)為用戶提供兩個接口,一個是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計算機系統(tǒng)。另一個接口是系統(tǒng)調用,編程人員使用系統(tǒng)調用來請求操作系統(tǒng)提供服務,例如申請和釋放外設等類資源、控制程序的執(zhí)行速度等。
8.什么是系統(tǒng)調用?系統(tǒng)調用與一般用戶程序有什么區(qū)別?與庫函數(shù)和實用程序又有什么區(qū)別?
答:系統(tǒng)調用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調用系統(tǒng)中已有的系統(tǒng)功能 來完成那些與機器硬件部分相關的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調用像一個黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關的功能。它 與一般用戶程序、庫函數(shù)和實用程序的區(qū)別是:系統(tǒng)調用程序是在核心態(tài)執(zhí)行,調用它們需要一個類似于硬件中斷處理的中斷處理機制來提供系統(tǒng)服務。
9.簡述系統(tǒng)調用的實現(xiàn)過程。
答;用戶在程序中使用系統(tǒng)調用,給出系統(tǒng)凋用名和函數(shù)后,即產生一條相應的陷入指令,通過陷入處理機制調用服務,引起處理機中斷,然后保護處理機現(xiàn)場,取系統(tǒng)調用功能號并尋找子程序入口,通過入口地址表來調用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。
第三章 用戶管理和配置管理
2.試比較進程和程序的區(qū)別。
答:(1)進程是一個動態(tài)概念,而程序是一個靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義,進程則強調執(zhí)行的過程。
(2)進程具有并行特征(獨立性,異步性),程序則沒有。
(3)不同的進程可以包含同一個程序,同一程序在執(zhí)行中也可以產生多個進程。
4.試比較作業(yè)和進程的區(qū)別。
答:一個進程是一個程序對某個數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用于需要計算機完成某項任務,而要求計算機所做工作的集合。一個作業(yè)的完成要經過作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個階段。而進程是已提交完畢的程序所執(zhí)行過程的描述,足資源分配的基本單位。其主要區(qū)別關 系如下:
(1)作業(yè)是用戶向計算機提交任務的任務實體。在用戶向計算機提交作業(yè)之后,系統(tǒng)將存儲在外存中的作業(yè)等待隊列中等待執(zhí)行。而進程則是完成用戶任務的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。任一進程,只要它被創(chuàng)建,總有相應的部分存在于內存中。
(2)一個作業(yè)可由多個進程組成。且必須至少由一個進程組成,但反過來不成立。
(3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時系統(tǒng)中,則沒有作業(yè)概念。而進程的概念則用在幾乎所有的多道程序系統(tǒng)中。
6.什么是臨界區(qū)?試舉一臨界區(qū)的例子。
答:臨界區(qū)是指不允許多個并發(fā)進程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。
例如:
getspace:
Begin local g
top=top-1
End
release(ad):
Begin
top’top十1
stack[top]=ad
End
8.什么是進程間的互斥?什么是進程間同步? 3
答:進程間的互斥是指:一組并發(fā)進程中的一個或多個程序段,因共享某一公有資源而導致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個以上的共享該資源的并發(fā)進程同時進入臨界區(qū)。
進程間的同步是指:異步環(huán)境下的一組并發(fā)進程因直接制約互相發(fā)送消息而進行互相合作、互相等待,各進程按一定的速度執(zhí)行的過程。
15.什么是線程?試述線程與進程的區(qū)別,答;線程是在進程內用于調度和占有處理機的基本單位,它由線程控制表、存儲線程上下文的用戶棧以及核心棧組成。線程可分為用戶級線程、核心級線程以及用戶/核心混合型線程等類型。其中用戶級線程在用戶態(tài)下執(zhí)行,CPU調度算法和各線程優(yōu)先級都由用戶設置,與操作系統(tǒng)內核無關。核心級線程的調度算法及線程優(yōu)先級的控制權在操作系統(tǒng)內核。混合型線程的控制權則在用戶和操作系統(tǒng)內核二者。線程與進程的主要區(qū)別有:
(1)進程是資源管理的基本單位,它擁有自己的地址空間和各種資源,例如內存空間、外部設備等;線程只是處理機調度的基本單位,它只和其他線程一起共享進程資源,但自己沒有任何資源。
(2)以進程為單位進行處理機切換和調度時,由于涉及到資源轉移以及現(xiàn)場保護等問題,將導致處理機切換時間變長,資源利用率降低。以線程為單位進行處理機切換和調度時,由于不發(fā)生資源變化,特別是地址空間的變化,處理機切換的時間較短,從而處理機效率也較高。
(3)對用戶來說,多線程可減少用戶的等待時間。提高系統(tǒng)的響應速度。例如,當一個進程需要對兩個不同的服務器進行遠程過程凋用時,對于無線程系統(tǒng)的操作系統(tǒng)來說需要順序等待兩個不同調用返回結果后才能繼續(xù)執(zhí)行,且在等待中容易發(fā)生進程調度。對于多線程系統(tǒng)而言,則可以在同一進程中使用不同的線程同時進行遠程過程調用,從而縮短進程的等待時間。
(4)線程和進程一樣,都有自己的狀態(tài).也有相應的同步機制,不過,由于線程沒有單獨的數(shù)據(jù)和程序空間,因此,線程不能像進程的數(shù)據(jù)與程序那樣,交換到外存存儲空間。從而線程沒有掛起狀態(tài)。
(5)進程的調度、同步等控制大多由操作系統(tǒng)內核完成,而線程的控制既可以由操作系統(tǒng)內核進行,也可以由用戶控制進行。第四章 進程管理
2.試述作業(yè)調度的主要功能。
答: 作業(yè)調度的主要功能是:按一定的原則對外存輸入井上的大量后備作業(yè)進行選擇,給選出的作業(yè)分配內存、輸入輸出設備等必要的資源,并建立相應進程,使該作業(yè)的相關進程獲得競爭處理機的權利。另外,當作業(yè)執(zhí)行完
畢時,還負責回收系統(tǒng)資源。3.作業(yè)調度的性能評價標準有哪些?這些性能評價標準在任何情況下都能反映調度策略的優(yōu)劣嗎? 答:對于批處理系統(tǒng),由于主要用于計算,因而對于作業(yè)的周轉時間要求較高。從而作業(yè)的平均周轉時間或平均帶權周轉時間被用來衡量調度程序的優(yōu)劣。但對于分時系統(tǒng)來說,平均響應時間又被用來衡量調度策略的優(yōu)劣。對于分時系統(tǒng),除了要保證系統(tǒng)吞吐量大、資源利用率高之外,還應保證用戶能夠容忍的響應時間。因此,在分時系統(tǒng)中,僅僅用周轉時間或帶權周轉時間來衡量調度性能是不夠的。對于實時系統(tǒng),衡量調度算法優(yōu)劣的主要標志則是滿足用戶要求的時限時間。
4.進程調度的功能有哪些?
答:進程調度的功能有:
(1)記錄和保存系統(tǒng)中所有進程的執(zhí)行情況;
(2)選擇占有處理機的進程;
(3)進行進程上下文切換。5.進程調度的時機有哪幾種?
答:進程調度的時機有:
(1)正在執(zhí)行的進程執(zhí)行完畢。這時如果不選擇新的就緒進程執(zhí)行,將浪費處理機資源。
(2)執(zhí)行中進程自己調用阻塞原語將自己阻塞起來進入睡眠等待狀態(tài)。
(3)執(zhí)行中進程調用了P原語操作,從而因資源不足而被阻塞:或調用了V原語操作激活了等待資源的進程隊列。
(4)執(zhí)行中進程提出I/O請求后被阻塞。
(5)在分時系統(tǒng)中時間片已經用完。
(6)在執(zhí)行完系統(tǒng)調用等系統(tǒng)程序后返回用戶程序時,可看做系統(tǒng)進程執(zhí)行完畢,從而調度選擇一新的用戶進程執(zhí)行。
(7)在CPU執(zhí)行方式是可剝奪時,還有:就緒隊列中的某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級,從而也將引發(fā)進 程調度。
6.進程上下文切換由哪幾部分組成?描述進程上下文切換過程。
答:進程上下文切換由以下4個步驟組成;
(1)決定是否作上下文切換以及是否允許作上下文切換。包括對進程調度原因的檢查分析,以及當前執(zhí)行進程的資格和CPU執(zhí)行方式的檢查等。在操作系統(tǒng)中,上下文切換程序并不是每時每刻都在檢查和分析是否可作上下文切換,它們設置有適當?shù)臅r機。
(2)保存當前執(zhí)行進程的上下文。這里所說的當前執(zhí)行進程,實際上是指調用上下文切換程序之前的執(zhí)行進程。如果上下文切換不是被那個當前執(zhí)行進程所調用,且不屬于該進程,則所保存的上下文應是先前執(zhí)行進程的上下文,或稱為“老”進程上下文。顯然,上下文切換程序不能破壞“老”進程的上下文結構。(3)使用進程調度算法,選擇一處于就緒狀態(tài)的進程。
(4)恢復或裝配所選進程的上下文,將CPU控制權交到所選進程手中。
第五章 處理器管理
2.什么是虛擬存儲器?其特點是什么? 答:由進程中的目標代碼、數(shù)據(jù)等的虛擬地址組成的虛擬空間稱為虛擬存儲器。虛擬存儲器不考慮物理存儲器的大小和信息存放的實際位置,只規(guī)定每個進程中相互關聯(lián)信息的相對位置。每個進程都擁有自己的虛擬存儲器,且虛擬存儲
器的容量是由計算機的地址結構和尋址方式來確定。實現(xiàn)虛擬存儲器要求有相應的地址轉換機構,以便把指令的虛擬地址變換為實際物理地址;另外,由于內存空間較小,進程只有部分內容存放于內存中,待執(zhí)行時根據(jù)需要再調指令入內存。3.實現(xiàn)地址重定位的方法有哪幾類?
答:實現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動態(tài)地址重定位。
(1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點是不需要硬件支持,但是用靜態(tài)地址重定位方法進行地址變換無法實現(xiàn)虛擬存儲器。靜態(tài)重定位的另一個缺點是必須占用連續(xù)的內存空間和難以做到程序和數(shù)據(jù)的共享。
(2)動態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內存之前由硬件地址變換機構將要訪問的程序或數(shù)據(jù)地址轉換成內存地址。動態(tài)地址重定位的主要優(yōu)點有:
①可以對內存進行非連續(xù)分配。
②動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎。
③動態(tài)重定位有利于程序段的共享。
形式化描述:略。
6.動態(tài)分區(qū)式管理的常用內存分配算法有哪幾種?比較它們各自的優(yōu)缺點。
答:動態(tài)分區(qū)式管理的常用內存分配算法有最先適應法(FF)、最佳適應法(BF)和最壞適應法(WF)。
優(yōu)缺點比較:
①從搜索速度上看最先適應法最佳,最佳適應法和最壞適應法都要求把不同大小的空閑區(qū)按大小進行排隊。
②從回收過程來看,最先適應法也是最佳,因為最佳適應法和最壞適應法都必須重新調整空閑區(qū)的位置。
③最佳適應法找到的空閑區(qū)是最佳的,但是會造成內存碎片較多,影響了內存利用率,而最壞適應法的內存碎片最少,但是對內存的請求較多的進程有可能分配失敗。
總之,三種算法各有所長,針對不同的請求隊列,它們的效率和功能是不一樣的7.5.3節(jié)討論的分區(qū)式管理可以實現(xiàn)虛存嗎?如果不能,需要怎樣修改?試設計一個分區(qū)式管理實現(xiàn)虛存的程序流程圖。如果能,試說明理由。
答:5.3節(jié)討論的分區(qū)式管理不能實現(xiàn)虛存。如果要實現(xiàn)虛存,可以在分區(qū)的基礎之上對每個分區(qū)內部進行請求調頁式管理。
8.簡述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么? 答:將程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結構讓那些不會同時執(zhí)行的程序段共享同一塊內存區(qū)的內存擴充技術就是覆蓋。交換是指先將內存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再從外存交換區(qū)中調入指定的程序或數(shù)據(jù)到內存中來,并讓其執(zhí)行的一種內存擴充技術。與覆蓋技術相比,交換不要求程序員給出程序段之間的覆蓋結構,而且,交換主要是在進程或作業(yè)之間進行,而覆蓋則主要在同一個作業(yè)或同一個進程內進行。另外,覆蓋只能覆蓋那 些與覆蓋程序段無關的程序段。
9.什么是頁式管理?靜態(tài)頁式管理可以實現(xiàn)虛存嗎? 答:頁式管理就是把各進程的虛擬空間劃分為若干長度相等的頁面,把指令按頁面大小劃分后存放在內存中執(zhí)行或只在內存中存放那些經常被執(zhí)行或即將被執(zhí)行的頁面,而那些不被經常執(zhí)行以及在近期內不可能被執(zhí)行的頁面則存放于外存中,按一定規(guī)則調入的一種內存管理方式。
靜態(tài)頁式管理不能實現(xiàn)虛存,這是因為靜態(tài)頁式管理要求進程或作業(yè)在執(zhí)行前全部被裝入內存,作業(yè)或進程的大小仍受內存可用頁面數(shù)的限制。
11.請求頁式管理中有哪幾種常用的頁面置換算法?試比較它們的優(yōu)缺點。
答:比較常用的頁面置換算法有:
(1)隨機淘汰算法(randomglongram)。即隨機地選擇某個用戶頁面并將其換出。
(2)輪轉法RR(roundrobin)。輪轉法循回換出內存可用區(qū)內一個可以被換出的頁,無論該頁是剛被換進或已經換進內存很長時間。
(3)先進先出法FIFO(firstinfirstout)。FIFO算法選擇在內存駐留時間最長的一頁將其淘汰。
(4)最近最久未使用頁面置換算法I.RU(1east recently unused)。該算法的基本思想是:當需要淘汰某一頁時,選擇離當前時間最近的一段時間內最久沒有使用過的頁面先淘汰。
(5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來再也不出現(xiàn)的或是在離當前最遠的位置上出現(xiàn)的頁面。15.段式管理可以實現(xiàn)虛存嗎?如果可以,簡述實現(xiàn)方法。
答:段式管理可以實現(xiàn)虛存。
段式管理把程序按照內容或過程(函數(shù))關系分成段,每段擁有自己的名字。一個用戶作業(yè)或進程所包含的段對應于—個二維線性虛擬空間(段號s與段內相對地址w),也就是一個二維虛擬存儲器。段式管理以段為單位分配內存,然后通過地址映射機構把段式虛擬地址轉換成實際的內存物理地址。只把那些經常訪問的段駐留內存,而把那些在將來一段時間內不被訪問的段放入外存,待需要時產生缺段中斷,自動調入。
18.段頁式管理的主要缺點是什么?有什么改進辦法? 答:段頁式管理的主要缺點是對內存中指令或數(shù)據(jù)進行存取時,至少需要對內存進行三次以上的訪問。第一次是由段表地址寄存器取段表始址后訪問段表,由此取出對應段的頁表在內存中的地址。第二次則是訪問頁表得到所要訪問的指令或數(shù)據(jù)的物理地址。只有在訪問了段表和頁表之后,第三次才能訪問真正需要訪問的物理單元。顯然。這將大大降低CPU執(zhí)行指令的速度。改進辦法是設置快速聯(lián)想寄存器。在快速聯(lián)想寄存器中.存放當前最常用的段號s,頁號p和對應的內存頁面地址與其他控制項。當需要訪問內存空間某一單元時,可在通過段表、頁表進行內存地址查找的同時,根據(jù)快速聯(lián)想寄存器查找其段號和頁號。如果所要訪問的段或頁的地址在快速聯(lián)想寄存器中,則系統(tǒng)不再訪問內存中的段表、頁表而直接把快速聯(lián)想寄存器中的值與頁內相對地址d拼接起來得到內存地址。
19.什么是局部性原理?什么是抖動?你有什么辦法減少系統(tǒng)的抖動現(xiàn)象? 答:局部性原理是指在幾乎所有程序的執(zhí)行過程中,在一段時間內,CPU總是集中地訪問程序中的某—個部分而不是對程序的所有部分具有平均的訪問概率。抖動是指當給進程分配的內存小于所要求的工作區(qū)時,由于內存外存之間交換頻繁,訪問外存的時間和輸入輸出處理時間大大增加,反而造成CPU因等待數(shù)據(jù)而空轉,使得整個系統(tǒng)性能大大下降。在物理系統(tǒng)中,為防止抖動的產生,在進行淘汰或替換時,—般總是把缺頁進程鎖住,不讓其換出,從而防止抖動發(fā)生。防止抖動發(fā)生的另一個辦法是設置較大的內存工作區(qū)。
第八章 文件系統(tǒng)
1.什么是文件、文件系統(tǒng)?文件系統(tǒng)有哪些功能?
答:在計算機系統(tǒng)中,文件被解釋為一組賦名的相關字符流的集合,或者是相關記錄的集合。
文件系統(tǒng)是操作系統(tǒng)中與管理文件有關的軟件和數(shù)據(jù)。
文件系統(tǒng)的功能是用戶建立文件,撤銷、讀寫修改和復制文件,以及完成對文件的按名存取和進行存取控制。
2.文件系統(tǒng)一般按什么分類?可以分為哪幾類?
答:文件系統(tǒng)一般按性質、用途、組織形式、文件中的信息流向或文件的保護級別等分類。
按文件的性質與用途可以分為系統(tǒng)文件、庫文件和用戶文件。按文件的組織形式可以分為普通文件、目錄文件和特殊文件。按文件中的信息流向可以分為輸入文件、輸出文件和輸入/輸出文件。按文件的保護級別可以分為只讀文件、讀寫文件、可執(zhí)行文件和不保護文件。3.什么是文件的邏輯結構?什么是記錄?
答:文件的邏輯結構就是用戶可見的結構,可分為字符流式的無結構文件和記錄式的有結構文件兩大類。
記錄是一個具有特定意義的信息單位,它由該記錄在文件中的邏輯地址(相對地址)與記錄名所對應的一組關鍵字、屬性及其屬性值所組成。
7.文件的物理結構有哪幾種?為什么說串聯(lián)文件結構不適于隨機存取?
答:文件的物理結構是指文件在存儲設備上的存放方法。常用的文件物理結構有連續(xù)文件、串聯(lián)文件和索引文件3種。串聯(lián)文件結構用非連續(xù)的物理塊來存放文件信息,這些非連續(xù)的物理塊之間沒有順序關系,鏈接成一個串聯(lián)隊列,搜索時只能按隊列中的串聯(lián)指針順序搜索,存取方法應該是順序存取的。否則,為了讀取某個信息塊而造成的磁頭大幅度移動將花去較多的時間。因此,串聯(lián)文件結構不適于隨機存取 11.什么是文件目錄?文件目錄中包含哪些信息?
答:一個文件的文件名和對該文件實施控制管理的說明信息稱為該文件的說明信息,又稱為該文件的目錄。
文件目錄中包含文件名、與文件名相對應的文件內部標識以及文件信息在文件存儲設備上第一個物理塊的地址等信息。另外還可能包含關于文件邏輯結構、物理結構、存取控制和管理等信息。第九章 外部設備管理
1.設備管理的目標和功能是什么? 答:設備管理的目標是:選擇和分配輸入/輸出設備以便進行數(shù)據(jù)傳輸操作;控制輸入/輸出設備和CPU(或內存)之間交換數(shù)據(jù),為用戶提供一個友好的透明接口,提高設備和設備之間、CPU和設備之間,以及進程和進程之間的并行操作,以使操作系統(tǒng)獲得最佳效率。設備管理的功能是:提供和進程管理系統(tǒng)的接口;進行設備分配;實現(xiàn)設備和設備、設備和CPU等之間的并行操作;進行緩沖區(qū)管理。
4. 什么是中斷?什么叫中斷處理?什么叫中斷響應?
答: 中斷是指計算機在執(zhí)行期間,系統(tǒng)內發(fā)生任何非尋常的或非預期的急需處理事件,使得CPU暫時中斷當前正在執(zhí)行的程序而轉去執(zhí)行相應的事件處理程序,待處理 完畢后又返回原來被中斷處繼續(xù)執(zhí)行的過程。CPU轉去執(zhí)行相應的事件處理程序的過程稱為中斷處理。CPU收到中斷請求后轉到相應的事件處理程序稱為中斷響 應。
5.什么叫關中斷?什么叫開中斷?什么叫中斷屏蔽?
答:把CPU內部的處理機狀態(tài)字PSW的中斷允許位清除從而不允許CPU響應中斷叫做關中斷。設置CPU內部的處理機狀態(tài)字PSW的中斷允許位從而允許CPU響應中斷叫做開中斷。
中斷屏蔽是指在中斷請求產生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應。
6.什么是陷阱?什么是軟中斷?試述中斷、陷阱和軟中斷之間異同。
答:陷阱指處理機和內存內部產生的中斷,它包括程序運算引起的各種錯誤,如地址非法、校驗錯、頁面失效。存取訪問控制錯、從用戶態(tài)到核心態(tài)的切換等都是陷阱的例子。軟中斷是通信進程之間用來模擬硬中斷的一種信號通信方式。
7.描述中斷控制方式時的CPU動作過程。答:(1)首先,CPU檢查響應中斷的條件是否滿足。如果中斷響應條件不滿足,則中斷處理無法進行。
(2)如果CPU響應中斷,則CPU關中斷。(3)保存被中斷進程現(xiàn)場。(4)分析中斷原因,調用中斷處理子程序。(5)執(zhí)行中斷處理子程序。(6)退出中斷,恢復被中斷進程的現(xiàn)場或調度新進程占據(jù)處理機。(7)開中斷,CPU繼續(xù)執(zhí)行。8.什么是緩沖?為什么要引入緩沖? 答:緩沖即是使用專用硬件緩沖器或在內存中劃出一個區(qū)域用來暫時存放輸入輸出數(shù)據(jù)的器件。引入緩沖是為了匹配外設和CPU之間的處理速度,減少中斷次數(shù)和CPU的中斷處理時間,同時解決DMA或通道方式時的數(shù)據(jù)傳輸瓶頸問題。
第三篇:操作系統(tǒng)習題解答 (張堯學)
第一章
1.什么是操作系統(tǒng)的基本功能? 答:操作系統(tǒng)的職能是管理和控制計算機系統(tǒng)中的所有硬、軟件資源,合理地組織計算機工作流程,并為用戶提供一個良好的工作環(huán)境和友好的接口。操作系統(tǒng)的基本功能包括:處理機管理、存儲管理、設備管理、信息管理(文件系統(tǒng)管理)和用戶接口等。
2.什么是批處理、分時和實時系統(tǒng)?各有什么特征? 答:批處理系統(tǒng)(batch processingsystem):操作員把用戶提交的作業(yè)分類,把一批作業(yè)編成一個作業(yè)執(zhí)行序列,由專門編制的監(jiān)督程序(monitor)自動依次處理。其主要特征是:用戶脫機使用計算機、成批處理、多道程序運行。
分時系統(tǒng)(time sharing operation system):把處理機的運行時間分成很短的時間片,按時間片輪轉的方式,把處理機分配給各進程使用。其主要特征是:交互性、多用戶同時性、獨立性。
實時系統(tǒng)(real time system):在被控對象允許時間范圍內作出響應。其主要特征是:對實時信息分析處理速度要比進入系統(tǒng)快、要求安全可靠、資源利用率低。
3. 多道程序設計和多重處理有何區(qū)別? 答;多道程序(multiprogramming)是作業(yè)之間自動調度執(zhí)行、共享系統(tǒng)資源,并不是真正地同時執(zhí)行多個作業(yè);而多重處理(multiprocessing)系統(tǒng)配置多個CPU,能真正同時執(zhí)行多道程序。要有效使用多重處理,必須采用多道程序設計技術,而多道程序設計原則上不一定要求多重處理系統(tǒng)的支持。
4. 討論操作系統(tǒng)可以從哪些角度出發(fā),如何把它們統(tǒng)一起來?
答;討論操作系統(tǒng)可以從以下角度出發(fā):(1)操作系統(tǒng)是計算機資源的管理者;(2)操作系統(tǒng)為用戶提供使用計算機及界面;(3)用進程管理觀點研究操作系統(tǒng),即圍繞進程運行過程來討論操作系統(tǒng)。
上述這些觀點彼此并不矛盾,分別代表了從不同角度對同一事物(操作系統(tǒng))的觀點。每種觀點都有助于理解、分析和設計操作系統(tǒng)。
6. 設計計算機操作系統(tǒng)與哪些硬件器件有關? 答;計算機操作系統(tǒng)的重要功能之一是對硬件資源的管理。因此設計計算機操作系統(tǒng)時應考慮下述計算機硬件資源:(1)CPU與指令的長度與執(zhí)行方式;(2)內存、緩存和高速緩存等存儲裝置;(3)各類寄存器,包括各種通用寄存器、控制寄存器和狀態(tài)寄存器;(4)中斷機構;(5)外部設備與I/O控制裝置;(6)內部總線與外部總線;(7)對硬件進行操作的指令集。第二章
1.什么是作業(yè)?作業(yè)步? 答:把在一次應用業(yè)務處理過程中,從輸入開始到輸出結束,用戶要求計算機所做的有關該次業(yè)務處理的全部工作稱為一個作業(yè)。作業(yè)由不同的順序相連的作業(yè)步組成。作業(yè)步是在一個作業(yè)的處理過程中,計算機所做的相對獨立的工作。如,編輯輸入是一個作業(yè)步,它產生源程序文件;編譯也是一個作業(yè)步,它產生目標代碼文件。
2.作業(yè)由哪幾部分組成? 各有什么功能? 答:作業(yè)由三部分組成:程序、數(shù)據(jù)和作業(yè)說明書。程序和數(shù)據(jù)完成用戶所要求的業(yè)務處理工作,作業(yè)說明書則體現(xiàn)用戶的控制意圖。
3.作業(yè)的輸入方式有哪幾種?各有何特點
答:作業(yè)的輸入方式有5種:聯(lián)機輸入方式、脫機輸入方式、直接耦合方式、SPOOLING(Simultaneous Peripheral Operations Online)系統(tǒng)和網絡輸入方式,各有如下特點:
(1)聯(lián)機輸入方式:用戶和系統(tǒng)通過交互式會話來輸入作業(yè)。(2)脫機輸入方式:又稱預輸入方式,利用低檔個人計算機作為外圍處理機進行輸入處理,存儲在后備存儲器上,然后將此后援存儲器連接到高速外圍設備上和主機相連,從而在較短的時間內完成作業(yè)的輸入工作。(3)直接耦合方式:把主機和外圍低檔機通過一個公用的大容量外存直接耦合起來,從而省去了在脫機輸入中那種依靠人工干預來傳遞后援存儲器的過程。(4)SPOOLING系統(tǒng):可譯為外圍設備同時聯(lián)機操作。在SPOOLING系統(tǒng)中,多臺外圍設備通過通道或DMA器件和主機與外存連接起來,作業(yè)的輸入輸出過程由主機中的操作系統(tǒng)控制。(5)網絡輸入方式:網絡輸入方式以上述幾種輸入方式為基礎,當用戶需要把在計算機網絡中某一臺主機上輸入的信息傳送到同一網中另一臺主機上進行操作或執(zhí)行時,就構成了網絡輸入方式。
4.試述SPOOLING系統(tǒng)的工作原理。
答:在SPOOLING系統(tǒng)中,多臺外圍設備通過通道或DMA器件和主機與外存連接起來,作業(yè)的輸入輸出過程由主機中的操作系統(tǒng)控制。操作系統(tǒng)中的輸入程序包含兩個獨立的過程,一個過程負責從外部設備把信息讀入緩沖區(qū),另一個過程是寫過程,負責把緩沖區(qū)中的信息送入到外存輸入井中。
在系統(tǒng)輸入模塊收到作業(yè)輸入請求后,輸入管理模塊中的讀過程負責將信息從輸入裝置讀入緩沖區(qū)。當緩沖區(qū)滿時,由寫過程將信息從緩沖區(qū)寫到外存輸入井中。讀過程和寫過程反復循環(huán),直到一個作業(yè)輸入完畢。當讀過程讀到一個硬件結束標志后,系統(tǒng)再次驅動寫過程把最后一批信息寫入外存并調用中斷處理程序結束該次輸入。然后,系統(tǒng)為該作業(yè)建立作業(yè)控制塊JCB,從而使輸入井中的作業(yè)進入作業(yè)等待隊列,等待作業(yè)調度程序選中后進入內存。5.操作系統(tǒng)為用戶提供哪些接口?它們的區(qū)別是什么? 答:操作系統(tǒng)為用戶提供兩個接口,一個是系統(tǒng)為用戶提供的各種命令接口,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行或管理計算機系統(tǒng)。另一個接口是系統(tǒng)調用,編程人員使用系統(tǒng)調用來請求操作系統(tǒng)提供服務,例如申請和釋放外設等類資源、控制程序的執(zhí)行速度等。
6.作業(yè)控制方式有哪幾種?調查你周圍的計算機的作業(yè)控制方式。
答:作業(yè)控制的主要方式有兩種:脫機方式和聯(lián)機方式。脫機控制方式利用作業(yè)控制語言來編寫表示用戶控制意圖的作業(yè)控制程序,也就是作業(yè)說明書。作業(yè)控制語言的語句就是作業(yè)控制命令。不同的批處理系統(tǒng)提供不同的作業(yè)控制語言。
聯(lián)機控制方式不同于脫機控制方式,它不要求用戶填寫作業(yè)說明書,系統(tǒng)只為用戶提供一組鍵盤或其他操作方式的命令。用戶使用操作系統(tǒng)提供的操作命令和系統(tǒng)會話,交互地控制程序執(zhí)行和管理計算機系統(tǒng)。
7.什么是系統(tǒng)調用?系統(tǒng)調用與一般用戶程序有什么區(qū)別?與庫函數(shù)和實用程序又有什么區(qū)別? 答:系統(tǒng)調用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員利用系統(tǒng)調用,在源程序一級動態(tài)請求和釋放系統(tǒng)資源,調用系統(tǒng)中已有的系統(tǒng)功能來完成那些與機器硬件部分相關的工作以及控制程序的執(zhí)行速度等。因此,系統(tǒng)調用像一個黑箱子那樣,對用戶屏蔽了操作系統(tǒng)的具體動作而只提供有關的功能。
系統(tǒng)調用與一般用戶程序、庫函數(shù)和實用程序的區(qū)別是:系統(tǒng)調用程序是在核心態(tài)執(zhí)行,調用它們需要一個類似于硬件中斷處理的中斷處理機制來提供系統(tǒng)服務。
8.簡述系統(tǒng)調用的實現(xiàn)過程。
答:用戶在程序中使用系統(tǒng)調用,給出系統(tǒng)調用名和函數(shù)后,即產生一條相應的陷入指令,通過陷入處理機制調用服務,引起處理機中斷,然后保護處理機現(xiàn)場,取系統(tǒng)調用功能號并尋找子程序入口,通過入口地址表來調用系統(tǒng)子程序,然后返回用戶程序繼續(xù)執(zhí)行。
9.為什么說分時系統(tǒng)沒有作業(yè)的概念?
答:因為咋分時系統(tǒng)中,每個用戶得到的時間片有限,用戶的程序和數(shù)據(jù)信息直接輸入到內存工作區(qū)中和其它程序一起搶占系統(tǒng)資源投入執(zhí)行,而不必進入外存輸入井等待作業(yè)調度程序選擇。因此,分時系統(tǒng)沒有作業(yè)控制表,也沒有作業(yè)調度程序。第三章
1.有人說,一個進程是由偽處理機執(zhí)行的一個程序,這話對嗎?為什么?
答:對。因為偽處理機的概念只有在執(zhí)行時才存在,它表示多個進程在單處理機上并發(fā)執(zhí)行的一個調度單位。因此,盡管進程是動態(tài)概念,是程序的執(zhí)行過程,但是,在多個進程并發(fā)執(zhí)行時,仍然只有一個進程占據(jù)處理機執(zhí)行,而其它并發(fā)進程則處于就緒或等待狀態(tài)。這些并發(fā)進程就相當于由偽處理機執(zhí)行的程序。
2.試比較進程和程序的區(qū)別。
答:(1)進程是一個動態(tài)概念,而程序是一個靜態(tài)概念,程序是指令的有序集合,無執(zhí)行含義,進程則強調執(zhí)行的過程。
(2)進程具有并行特征(獨立性,異步性),程序則沒有。(3)不同的進程可以包含同一個程序,同一程序在執(zhí)行中也可以產生多個進程。
4.試比較作業(yè)和進程的區(qū)別。答:并非對所有的程序均成立。例如: begin local x x:=10 print(x)end 上述程序中x是內部變量,不可能被外部程序訪問,因此這段程序的運行不會受外界環(huán)境影響。
4.試比較作業(yè)和進程的區(qū)別。
答:一個進程是一個程序對某個數(shù)據(jù)集的執(zhí)行過程,是分配資源的基本單位。作業(yè)是用于需要計算機完成某項任務,而要求計算機所做工作的集合。一個作業(yè)的完成要經過作業(yè)提交,作業(yè)收容、作業(yè)執(zhí)行和作業(yè)完成4個階段。而進程是已提交完畢的程序所執(zhí)行過程的描述,是資源分配的基本單位。其主要區(qū)別關系如下:
(1)作業(yè)是用戶向計算機提交任務的任務實體。在用戶向計算機提交作業(yè)之后,系統(tǒng)將存儲在外存中的作業(yè)等待隊列中等待執(zhí)行。而進程則是完成用戶任務的執(zhí)行實體,是向系統(tǒng)申請分配資源的基本單位。任一進程,只要它被創(chuàng)建,總有相應的部分存在于內存中。
(2)一個作業(yè)可由多個進程組成。且必須至少由一個進程組成,但反過來不成立。
(3)作業(yè)的概念主要用在批處理系統(tǒng)中。像Unix這樣的分時系統(tǒng)中,則沒有作業(yè)概念。而進程的概念則用在幾乎所有的多道程序系統(tǒng)中。
6.什么是臨界區(qū)?試舉一臨界區(qū)的例子。
答:臨界區(qū)是指不允許多個并發(fā)進程交叉執(zhí)行的一段程序。它是由于不同并發(fā)進程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的。所以它又被稱為訪問公用數(shù)據(jù)的那段程序。
例如:
getspace: begin local g g=stact[top]
top=top-1 End release(ad): Begin top=top+1 stack[top]=ad End
7.并發(fā)進程間的制約有哪兩種?引起制約的原因是什么? 答:并發(fā)進程所受的制約有兩種:直接制約和間接制約。直接制約是由并發(fā)進程互相共享對方的私有資源所引起的。間接制約是由競爭共有資源而引起的。
8.什么是進程間的互斥?什么是進程間同步? 答:進程間的互斥是指:一組并發(fā)進程中的一個或多個程序段,因共享某一公有資源而導致它們必須以一個不許交叉執(zhí)行的單位執(zhí)行,即不允許兩個以上的共享該資源的并發(fā)進程同時進入臨界區(qū)。
進程間的同步是指:異步環(huán)境下的一組并發(fā)進程因直接制約互相發(fā)送消息而進行互相合作、互相等待,使得各進程按一定的速度執(zhí)行的過程。
9.試比較P,V原語法和加鎖法實現(xiàn)進程間互斥的區(qū)別。
答:互斥的加鎖實現(xiàn)是這樣的:當某個進程進入臨界區(qū)之后,它將鎖上臨界區(qū),直到它退出臨界區(qū)時為止。并發(fā)進程在申請進入臨界區(qū)時,首先測試該臨界區(qū)是否是上鎖的,如果該臨界區(qū)已被鎖住,則該進程要等到該臨界區(qū)開鎖之后才有可能獲得臨界區(qū)。
加鎖法存在如下弊端:(1)循環(huán)測試鎖定位將損耗較多的CPU計算時間;(2)產生不公平現(xiàn)象。
P,V原語法采用信號量管理相應臨界區(qū)的公有資源,信號量的數(shù)值僅能由P,V原語操作改變,而P,V原語執(zhí)行期間不允許中斷發(fā)生。其過程是這樣的:當某個進程正在臨界區(qū)內執(zhí)行時,其他進程如果執(zhí)行了P原語,則該進程并不像lock時那樣因進不了臨界區(qū)而返回到lock的起點,等以后重新執(zhí)行測試,而是在等待隊列中等待由其他進程做V原語操作釋放資源后,進入臨界區(qū),這時P原語才算真正結束。若有多個進程做P原語操作而進入等待狀態(tài)之后,一旦有V原語釋放資源,則等待進程中的一個進入臨界區(qū),其余的繼續(xù)等待。
總之,加鎖法是采用反復測試lock而實現(xiàn)互斥的,存在CPU浪費和不公平現(xiàn)像,P,V原語使用了信號量,克服了加鎖法的弊端。
10.答:設第I塊緩沖區(qū)的公有信號量為metex[I],保證生產者進程和消費者進程對同一塊緩沖區(qū)操作的互斥,初值為1;
設信號量avail為生產者進程的私有信號量,初值為m; 設信號量full為消費者進程的私有信號量,初值為0。用信號量和P、V操作描述發(fā)送過程deposit(data)和接收過程remove(data)如下:
deposit(data):
begin
P(avail)
選擇一個空緩沖區(qū)i
P(mutex[i])
送數(shù)據(jù)入緩沖區(qū)i
V(mutex[i])
V(full)
End
P(full)
選擇一個滿緩沖區(qū)i P(mutex[i])
取緩沖區(qū)i中的數(shù)據(jù)
V(mutex[i])V(avail)12.
答:定義數(shù)組buf[0],buf[1]。
設bufempty[0],buffull[1]是Pa的公有信號量;設bufempty[1],buffull[0]是Pb的公有信號量;初值為: bufempty[0]= bufempty[1]=n buffull[0]= buffull[1]=0 用信號量和P、V操作描述發(fā)送過程send(i,m)和接收過程receive(i,m)如下:
send(i,m):
begin
local x
P(bufempty[i])
按FIFO選擇一個空緩沖區(qū)buf[i](x)buf[i](x)=m buf[i](x)置滿標記
V(buffull[i])
End receive(i,m):
begin
local x
P(buffull[i])
按FIFO選擇一個滿緩沖區(qū)buf[i](x)m=buf[i](x)buf[i](x)置空標記
V(bufempty[i])
End Pa調用send(0,m)和receive(1,m)Pb調用send(1,m)和receive(0,m)14.
答:設信號量c[i],初值為1;i=0,1,2,3,4。i表示第i號筷子。(1)第i個哲學家要吃飯: eat(i):
begin
P(c[i])remove(data):
begin
End
P(c[i+1 mod 5])
吃飯
V(c[i+1 mod 5])
V(c[i])
End 該過程能保證兩個鄰座不同時吃飯,但有可能出現(xiàn)每人只拿到一支筷子,誰也吃不上飯的情況。
(1)為解決上述情況,讓奇數(shù)號的哲學家先取右手邊的筷子,偶數(shù)號的哲學家先取左手邊的筷子。這樣只要有一個哲學家拿到了一支筷子,就阻止了鄰座的哲學家吃法的企圖,從而不會死鎖,除非某哲學家永遠吃下去。
算法描述如下: eat(i):
begin if i mod 2 == 0 then
{ P(c[i])
P(c[i+1 mod 5])
吃飯
V(c[i+1 mod 5])
V(c[i])
}
else
{
P(c[i+1 mod 5])P(c[i])
吃飯
V(c[i])
V(c[i+1 mod 5])
} End 另解:最多只允許4個哲學家同時要求進餐,這樣至少有一位哲學家能取到兩只筷子并可以進餐,進餐后釋放兩只筷子,其他哲學家可以陸續(xù)進餐。
設哲學家進餐信號量sm=4;筷子信號量c[i]=1(i=0,1,2,3,4)eat(i):
begin P(sm)
P(c[i])
P(c[i+1 mod 5])
吃飯
V(c[i+1 mod 5])
V(c[i])V(sm)
End 15.什么是線程? 試述線程與進程的區(qū)別。答;線程是在進程內用于調度和占有處理機的基本單位,它由線程控制表、存儲線程上下文的用戶棧以及核心棧組成。線程可分為用戶級線程、核心級線程以及用戶/核心混合型線程等類型。其中用戶級線程在用戶態(tài)下執(zhí)行,CPU調度算法和各線程優(yōu)先級都由用戶設置,與操作系統(tǒng)內核無關。核心級線程的調度算法及線程優(yōu)先級的控制權在操作系統(tǒng)內核。混合型線程的控制權則在用戶和操作系統(tǒng)內核二者。
線程與進程的主要區(qū)別有:
(1)進程是資源管理的基本單位,它擁有自己的地址空間和各種資源,例如內存空間、外部設備等;線程只是處理機調度的基本單位,它只和其他線程一起共享進程資源,但自己沒有任何資源。
(2)以進程為單位進行處理機切換和調度時,由于涉及到資源轉移以及現(xiàn)場保護等問題,將導致處理機切換時間變長,資源利用率降低。以線程為單位進行處理機切換和調度時,由于不發(fā)生資源變化,特別是地址空間的變化,處理機切換的時間較短,從而處理機效率也較高。
(3)對用戶來說,多線程可減少用戶的等待時間。提高系統(tǒng)的響應速度。例如,當一個進程需要對兩個不同的服務器進行遠程過程凋用時,對于無線程系統(tǒng)的操作系統(tǒng)來說需要順序等待兩個不同調用返回結果后才能繼續(xù)執(zhí)行,且在等待中容易發(fā)生進程調度。對于多線程系統(tǒng)而言,則可以在同一進程中使用不同的線程同時進行遠程過程調用,從而縮短進程的等待時間。
(4)線程和進程一樣,都有自己的狀態(tài).也有相應的同步機制,不過,由于線程沒有單獨的數(shù)據(jù)和程序空間,因此,線程不能像進程的數(shù)據(jù)與程序那樣,交換到外存存儲空間。從而線程沒有掛起狀態(tài)。
(5)進程的調度、同步等控制大多由操作系統(tǒng)內核完成,而線程的控制既可以由操作系統(tǒng)內核進行,也可以由用戶控制進行。思考題:讀者與寫者關系問題(讀者優(yōu)先)。
答:設寫者互斥信號量wm=1;讀者計數(shù)器readcount=0;互斥操作readcount的信號量rm=1;reader()begin P(rm)Readcount:=readcount+1 If readcount==1 then P(wm)V(rm)讀數(shù)據(jù) P(rm)Readcount:=readcount-1 If readcount==0 then V(wm)V(rm)end writer()begin P(wm)寫數(shù)據(jù) V(wm)end 第四章
1.什么是分級調度?分時系統(tǒng)中有作業(yè)調度的概念嗎?如果沒有,為什么? P86 答:處理機調度問題實際上也是處理機的分配問題。顯然只有那些參與競爭處理及所必需的資源都已得到滿足的進程才能享有競爭處理機的資格。這時它們處于內存就緒狀態(tài)。這些必需的資源包括內存、外設及有關數(shù)據(jù)結構等。從而,在進程有資格競爭處理機之前,作業(yè)調度程序必須先調用存儲管理、外設管理程序,并按一定的選擇順序和策略從輸入井中選擇出幾個處于后備狀態(tài)的作業(yè),為它們分配資源和創(chuàng)建進程,使它們獲得競爭處理機的資格。
另外,由于處于執(zhí)行狀態(tài)下的作業(yè)一般包括多個進程,而在單機系統(tǒng)中,每一時刻只能有一個進程占有處理機,這樣,在外存中,除了處于后備狀態(tài)的作業(yè)外,還存在處于就緒狀態(tài)而等待得到內存的作業(yè)。我們需要有一定的方法和策略為這部分作業(yè)分配空間。因此處理機調度需要分級。
一般來說,處理機調度可分為4級:
(1)作業(yè)調度: 又稱宏觀調度,或高級調度。
(2)交換調度:又稱中級調度。其主要任務是按照給定的原則和策略,將處于外存交換區(qū)中的就緒狀態(tài)或等待狀態(tài)的進程調入內存,或處于內存就緒狀態(tài)或等待狀態(tài)的進程交換到外存交換區(qū)。交換調度主要涉及到內存管理與擴充。
(3)進程調度:又稱微觀調度或低級調度。其主要任務是按照某種策略和方法選取一個處于就緒狀態(tài)的進程占用處理機。在確立了占用處理機的進程之后,系統(tǒng)必須進行進程上下文切換以建立與占用處理機進程相適應的執(zhí)行環(huán)境。
(4)線程調度:進程中相關堆棧和控制表等的調度。
2.試述作業(yè)調度的主要功能。P88 答: 作業(yè)調度的主要功能是:(1)記錄系統(tǒng)中各作業(yè)的狀況。
(2)按一定的原則對外存輸入井上的大量后備作業(yè)進行選擇。
(3)給選出的作業(yè)分配內存、輸入輸出設備等必要的資源,并建立相應進程,使該作業(yè)的相關進程獲得競爭處理機的權利。
(4)當作業(yè)執(zhí)行完畢時,還負責回收系統(tǒng)資源。
3.作業(yè)調度的性能評價標準有哪些?這些性能評價標準在任何情況下都能反映調度策略的優(yōu)劣嗎? 答:調度的性能評價標準:
(1)對所有作業(yè)應該是公平合理的;(2)應使設備有高的利用率;(3)每天執(zhí)行盡可能多的作業(yè);(4)有快的響應時間。
不能。對于批處理系統(tǒng),由于主要用于計算,因而對于作業(yè)的周轉時間要求較高。從而作業(yè)的平均周轉時間或平均帶權周轉時間被用來衡量調度程序的優(yōu)劣。但對于分時系統(tǒng)來說,平均響應時間又被用來衡量調度策略的優(yōu)劣。對于分時系統(tǒng),除了要保證系統(tǒng)吞吐量大、資源利用率高之外,還應保證用戶能夠容忍的響應時間。因此,在分時系統(tǒng)中,僅僅用周轉時間或帶權周轉時間來衡量調度性能是不夠的。
對于實時系統(tǒng),衡量調度算法優(yōu)劣的主要標志則是滿足用戶要求的時限時間。
4.進程調度的功能有哪些? P91 答:進程調度的功能有:
(1)記錄和保存系統(tǒng)中所有進程的執(zhí)行情況;(2)選擇占有處理機的進程;(3)進行進程上下文切換。
5.進程調度的時機有哪幾種? P92 答:進程調度的時機有:
(1)正在執(zhí)行的進程執(zhí)行完畢。這時如果不選擇新的就緒進程執(zhí)行,將浪費處理機資源。
(2)執(zhí)行中進程自己調用阻塞原語將自己阻塞起來進入睡眠等待狀態(tài)。(3)執(zhí)行中進程調用了P原語操作,從而因資源不足而被阻塞:或調用了V原語操作激活了等待資源的進程隊列。
(4)執(zhí)行中進程提出I/O請求后被阻塞。(5)在分時系統(tǒng)中時間片已經用完。
(6)在執(zhí)行完系統(tǒng)調用等系統(tǒng)程序后返回用戶程序時,可看做系統(tǒng)進程執(zhí)行完畢,從而調度選擇一新的用戶進程執(zhí)行。
(7)在CPU執(zhí)行方式是可剝奪時,還有:就緒隊列中的某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級,從而也將引發(fā)進 程調度。
6.假設有4道作業(yè),它們的提交時間及執(zhí)行時間由下表給出:
作業(yè)號
提交時刻(時)執(zhí)行時間(小時)1 10:00 2 2 10:20 1 3 10:40 0.5 4 10:50 0.3 計算在單道程序環(huán)境下,采用先來先服務調度算法和最短作業(yè)優(yōu)先調度算法時的平均周轉時間和平均帶權周轉時間,并指出它們的調度順序。
答:(1)先來先服務調度: 調度順序: 1、2、3、4 1 Ts1:10:00 Te1:12:00 Tr1:2 Tw1: 0 2 Ts2:10:20 Te2:13:00 Tr2:1 Tw2: 1.7 3 Ts3:10:40 Te3:13:30 Tr3: 0.5 Tw3:2.3 4 Ts4:10:50 Te4:13:50 Tr4: 0.3 Tw4:2.7
T=0.25*(2+2.7+2.8+3)=2.625(h)W=0.25*(4+0+1.7/1+2.3/0.5+2.7/0.3)=4.825
(2)最短作業(yè)優(yōu)先調度: 調度順序: 4、3、2、1 1 Ts4: 10:50 Te4:11:10 Tr4:0.3 Tw4:0 2 Ts3:10:40 Te3:11:40 Tr3: 0.5 Tw3:0.5 3 Ts2;10:20 Te2:12:40 Tr2: 1 Tw2: 1.3 4 Ts1:10:00 Te1: 14:40 Tr1:2 Tw1:2.7 T:0.25*(0.3+1+2.3+4.7)= 2.075(h)W: 0.25*(4+0+1+1.3+2.7/2)=1.9125 以上是4個作業(yè)提交完后的調度情況(提交過程中運行其它作業(yè))。如果邊提交邊調度,又如何? 第五章
1.存儲管理的主要功能是什么? P109 5.1節(jié)
答:存儲管理的主要功能包括以下幾點:
(1)在硬件的支持下完成統(tǒng)一管理內存和外存之間數(shù)據(jù)和程序段自動交換的虛擬存儲。
(2)將多個虛存的一維線性空間或多維線性空間變換到內存的唯一的一維物理線性地址。
(3)控制內外存之間的數(shù)據(jù)傳輸。(4)實現(xiàn)內存的分配和回收。
(5)實現(xiàn)內存信息的共享與保護。
2. 什么是虛擬存儲器?其特點是什么? P110 答:由進程中的目標代碼、數(shù)據(jù)等的虛擬地址組成的虛擬空間稱為虛擬存儲器。虛擬存儲器不考慮物理存儲器的大小和信息存放的實際位置,只規(guī)定每個進程中相互關聯(lián)信息的相對位置。每個進程都擁有自己的虛擬存儲器,且虛擬存儲器的容量是由計算機的地址結構和尋址方式來確定。
實現(xiàn)虛擬存儲器要求有相應的地址變換機構,以便把指令的虛擬地址變換為實際物理地址;另外,由于內存空間較小,進程只有部分內容存放于內存中,待執(zhí)行時根據(jù)需要再調入內存。
3.實現(xiàn)地址重定位的方法有哪幾類? P111 答:實現(xiàn)地址重定位的方法有兩種:靜態(tài)地址重定位和動態(tài)地址重定位。
(1)靜態(tài)地址重定位是在虛空間程序執(zhí)行之前由裝配程序完成地址映射工作。靜態(tài)重定位的優(yōu)點是不需要硬件支持,但是用靜態(tài)地址重定位方法進行地址變換無法實現(xiàn)虛擬存儲器。靜 態(tài)重定位的另一個缺點是必須占用連續(xù)的內存空間和難以做到程序和數(shù)據(jù)的共享。
(2)動態(tài)地址重定位是在程序執(zhí)行過程中,在CPU訪問內存之前由硬件地址變換機構將要訪問的程序或數(shù)據(jù)地址轉換成內存地址。動態(tài)地址重定位的主要優(yōu)點有:
① 可以對內存進行非連續(xù)分配。
② 動態(tài)重定位提供了實現(xiàn)虛擬存儲器的基礎。③ 動態(tài)重定位有利于程序段的共享。
4.常用的內存信息保護方法有哪幾種?它們各自的特點是什么? P113 答:常用的內存保護方法有硬件法、軟件法和軟硬件結合保護法三種。上下界保護法是一種常用的硬件保護法。上下界存儲保護技術要求為每個進程設置對上下界寄存器。上下界寄存器中裝有被保護程序和數(shù)據(jù)段的起始地址和終止地址。在程序執(zhí)行過程 中,在對內存進行訪問操作時首先進行訪問地址合法性檢查,即檢查經過重定位之后的內存地址是否在上、下界寄存器所規(guī)定的范圍之內。若在規(guī)定的范圍之內,則訪問是合法的;否則是非法的,并產生訪問越界中斷。
保護鍵法也是一種常用的軟件存儲保護法。保護鍵法為每—個被保護存儲塊分配一個單獨的保護鍵。在程序狀態(tài)字中則設置相應的保護鍵開關字段,對不同的進程賦予不同的開關代碼 以和被保護的存儲塊中的保護鍵匹配。保護鍵可以設置成對讀寫同時保護的或只對讀寫進行單項保護的。如果開關字段與保護鍵匹配或存儲塊未受到保護,則訪問該存儲塊是允許的,否則將產生訪問出錯中斷。
另外一種常用的硬軟件內存保護方式是:界限存儲器與CPU的用戶態(tài),核心態(tài)相結合的保護方式。在這種保護方式下,用戶態(tài)進程只能訪問那些在界限寄存器所規(guī)定范圍內的內存部分,而核心態(tài)進程則可以訪問整個內存地址空間。
6.動態(tài)分區(qū)式管理的常用內存分配算法有哪幾種?比較它們各自的優(yōu)缺點。P118 答:動態(tài)分區(qū)式管理的常用內存分配算法有最先適應法(FF)、最佳適應法(BF)和最壞適應法(WF)。
優(yōu)缺點比較:
① 從搜索速度上看最先適應法最佳,最佳適應法和最壞適應法都要求把不同大小的空閑區(qū)按大小進行排隊。
② 從回收過程來看,最先適應法也是最佳,因為最佳適應法和最壞適應法都必須重新調整空閑區(qū)的位置。
③ 最佳適應法找到的空閑區(qū)是最佳的,但是會造成內存碎片較多,影響了內存利用率,而最壞適應法的內存碎片最少,但是對內存的請求較多的進程有可能分配失敗。
總之,三種算法各有所長,針對不同的請求隊列,它們的效率和功能是不一樣的。
8.簡述什么是覆蓋?什么是交換?覆蓋和交換的區(qū)別是什么? P121 答:將程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結構讓那些不會同時執(zhí)行的程序段共享同一塊內存區(qū)的內存擴充技術就是覆蓋。交換是指先將內存某部分的程序或數(shù)據(jù)寫入外存交換區(qū),再從外存交換區(qū)中調入指定的程序或數(shù)據(jù)到內存中來,并讓其執(zhí)行的一種內存擴充技術。與覆蓋技術相比,交換不要求程序員給出程序段之間的覆蓋結構,而且,交換主要是在進程或作業(yè)之間進行,而覆蓋則主要在同一個作業(yè)或同一個進程內進行。另外,覆蓋只能覆蓋那些與覆蓋程序段無關的程序段。
9.什么是頁式管理?靜態(tài)頁式管理可以實現(xiàn)虛存嗎? P123 答:頁式管理就是把各進程的虛擬空間劃分為若干長度相等的頁,把指令按頁面大小劃分后存放在內存中執(zhí)行或只在內存中存放那些經常被執(zhí)行或即將被執(zhí)行的頁,而那些不被經常執(zhí)行以及在近期內不可能被執(zhí)行的頁則存放于外存中,按一定規(guī)則調入的一種內存管理方式。靜態(tài)頁式管理不能實現(xiàn)虛存,這是因為靜態(tài)頁式管理要求進程或作業(yè)在執(zhí)行前全部被裝入內存,作業(yè)或進程的大小仍受內存可用頁面數(shù)的限制。
10.什么是請求頁式管理? P127 答:請求頁式管理是動態(tài)頁式內存管理的一種,它在作業(yè)或進程開始執(zhí)行之前,不把作業(yè)或進程的程序段和數(shù)據(jù)段一次性的全部裝入內存,而只裝入被認為是經常反復執(zhí)行和調用的工作區(qū)部分。其他部分則在執(zhí)行過程中動態(tài)裝入。
請求頁式管理的調入方式是,當需要執(zhí)行某條指令而又發(fā)現(xiàn)它不在內存時,或當執(zhí)行某條指令需要訪問其他數(shù)據(jù)或指令時,而這些指令和數(shù)據(jù)又不在內存中,從而發(fā)生缺頁中斷,系統(tǒng)將外存中相應的頁調入內存。
11.請求頁式管理中有哪幾種常用的頁面置換算法?試比較它們的優(yōu)缺點。P129 答:比較常用的頁面置換算法有:
(1)隨機淘汰算法(randomglongram)。即隨機地選擇某個用戶頁面并將其換出。
(2)輪轉法RR(roundrobin)。輪轉法循回換出內存可用區(qū)內一個可以被換出的頁,無論該頁是剛被換進或已經換進內存很長時間。
(3)先進先出法FIFO(firstinfirstout)。FIFO算法選擇在內存駐留時間最長的一頁將其淘汰。
(4)最近最久未使用頁面置換算法LRU(1east recently unused)。該算法的基本思想是:當需要淘汰某一頁時,選擇離當前時間最近的一段時間內最久沒有使用過的頁面先淘汰。
該算法很難實現(xiàn),比較常用的近似算法:最不經常使用頁面淘汰算法LFU、最近沒有使用頁面淘汰算法NUR。
(5)理想型淘汰算法OPT(optimalreplacementalgorithm)。該算法淘汰在訪問串中將來再也不出現(xiàn)的或是在離當前最遠的位置上出現(xiàn)的頁面。
12.什么是Belady現(xiàn)象?找出一個Belady現(xiàn)象的例子。P131 答:使用FIFO算法時,在未給進程或作業(yè)分配足它所要求的頁面數(shù)時,有時會出現(xiàn)分配的頁面數(shù)增多,缺頁次數(shù)反而增加的奇怪現(xiàn)象。這種現(xiàn)象稱為Belady現(xiàn)象。
假設進程P共有5個頁,訪問順序是:1,2,3,4,1,2,5,1,2,3,4,5的缺頁情況。
分配3個頁面,缺頁9次:缺頁率9/12=75%
分配4個頁面,缺頁10次:缺頁率10/12=83.3%
此例就出現(xiàn)分配的頁面數(shù)增多,缺頁次數(shù)反而增加的奇怪現(xiàn)象,即Belady現(xiàn)象。
14.什么是段式管理?它與頁式管理有何區(qū)別? P133 答:段式管理就是將程序按照內容或過程(函數(shù))關系分成段,每段擁有自己的名字。一個用戶作業(yè)或進程所包含的段對應于一個二維線性虛擬空間,也就是一個二維虛擬存儲器。段式管理程序以段為單位分配內存,然后通過地址映射機構把段式虛擬地址轉換成實際的內存物理地址。同頁式管理時一樣,段式管理也采用只把那些經常訪問的段駐留內存,而把那些在將來一段時間內不被訪問的段放入外存,待需要時自動調入相關段的方法實現(xiàn)二維虛擬存儲器。
段式管理和頁式管理的主要區(qū)別有:
(1)頁式管理中源程序進行編譯鏈接時是將主程序、子程序、數(shù)據(jù)區(qū)等按照線性空間的一維地址順序排列起來。段式管理則是將程序按照內容或過程(函數(shù))關系分成段,每段擁有自己的名字。一個用戶作業(yè)或進程所包含的段對應于一個二維線性虛擬空間,也就是一個二維虛擬存儲器。
(2)同動態(tài)頁式管理一樣,段式管理也提供了內外存統(tǒng)一管理的虛存實現(xiàn)。與頁式管理不同的是:段式虛存每次交換的是一段有意義的信息,而不是像頁式虛存管理那樣只交換固定大小的頁,從而需要多次的缺頁中斷才能把所需信息完整地調入內存。
(3)在段式管理中,段長可根據(jù)需要動態(tài)增長。這對那些需要不斷增加或改變新數(shù)據(jù)或子程序的段來說,將是非常有好處的。
(4)段式管理便于對具有完整邏輯功能的信息段進行共享。
(5)段式管理便于進行動態(tài)鏈接,而頁式管理進行動態(tài)鏈接的過程非常復雜。
15.段式管理可以實現(xiàn)虛存嗎?如果可以,簡述實現(xiàn)方法。P133 答:段式管理可以實現(xiàn)虛存。
段式管理把程序按照內容或過程(函數(shù))關系分成段,每段擁有自己的名字。一個用戶作業(yè)或進程所包含的段對應于一個二維線性虛擬空間(段號s與段內相對地址w),也就是一個二維虛擬存儲器。段式管理以段為單位分配內存,然后通過地址映射機構把段式虛擬地址轉換成實際的內存物理地址。只把那些經常訪問的段駐留內存,而把那些在將來一段時間內不被訪問的段放入外存,待需要時產生缺段中斷,自動調入。
16.為什么要提出段頁式管理?它與段式管理及頁式管理有何區(qū)別? P138 答:因為段式管理和頁式管理各有所長。段式管理為用戶提供了一個二維的虛擬地址空間,反映了程序的邏輯結構,有利于段的動態(tài)增長以及共享和內存保護等,這極大地方便了用戶。而分頁系統(tǒng)則有效地克服了碎片,提高了存儲器的利用效率。從存儲管理的目的來講,主要是方便用戶的程序設計和提高內存的利用率。所以人們提出了將段式管理和頁式管理結合起來讓其互相取長補短的段頁式管理。段頁式管理與段式和頁式管理相比,其訪問時間較長。因此,執(zhí)行效率低。
17.為什么說段頁式管理時的虛擬地址仍是二維的? 答:因為在段頁式內存管理中,對每一段內的地址空間進行分頁式管理只是為了克服在內存分配過程中產生的大量碎片,從而提高存儲器的利用效率,它并沒有改變段內地址空間的一維結構,所以段頁式內存管理中的虛擬地址仍然和段式內存管理中的虛擬地址一樣,是二維結構的。
18.段頁式管理的主要缺點是什么?有什么改進辦法? 答:段頁式管理的主要缺點是對內存中指令或數(shù)據(jù)進行存取時,至少需要對內存進行三次以上的訪問。第一次是由段表地址寄存器取段表始址后訪問段表,由此取出對應段的頁表在內存中的地址。第二次則是訪問頁表得到所要訪問的指令或數(shù)據(jù)的物理地址。只有在訪問了段表和頁表之后,第三次才能訪問真正需要訪問的物理單元。顯然。這將大大降低CPU執(zhí)行指令的速度。
改進辦法是設置快速聯(lián)想寄存器。在快速聯(lián)想寄存器中.存放當前最常用的段號s,頁號p和對應的內存頁面地址與其他控制項。當需要訪問內存空間某一單元時,可在通過段表、頁表進行內存地址查找的同時,根據(jù)快速聯(lián)想寄存器查找其段號和頁號。如果所要訪問的段或頁的地址在快速聯(lián)想寄存器中,則系統(tǒng)不再訪問內存中的段表、頁表而直接把快速聯(lián)想寄存器中的值與頁內相對地址d拼接起來得到內存地址。
19.什么是局部性原理?什么是抖動?你有什么辦法減少系統(tǒng)的抖動現(xiàn)象? P140 答:局部性原理是指在幾乎所有程序的執(zhí)行過程中,在一段時間內,CPU總是集中地訪問程序中的某一個部分而不是對程序的所有部分具有平均的訪問概率。
抖動是指當給進程分配的內存小于所要求的工作區(qū)時,由于內存外存之間交換頻繁,訪問外存的時間和輸入輸出處理時間大大增加,反而造成CPU因等待數(shù)據(jù)而空轉,使得整個系統(tǒng)性能大大下降。
在物理系統(tǒng)中,為防止抖動的產生,在進行淘汰或替換時,一般總是把缺頁進程鎖住,不讓其換出,從而防止抖動發(fā)生。防止抖動發(fā)生的另一個辦法是設置較大的內存工作區(qū)。
第六章
1.簡述Linux系統(tǒng)進程的概念? 答:P148 2.Linux進程上下文由哪幾部分組成?為什么說核心程序不是進程上下文上午一部分?進程頁表也在核心區(qū),它們也不是進程上下文上午一部分嗎?
答:進程上下文由task_struct結構、用戶棧和核心棧的內容、用戶地址空間的征文段、數(shù)據(jù)段、硬件寄存器的內容以及頁表等組成。
核心頁表被所有進程共享,所以不是進程上下文的一部分。而進程頁表是進程上下文的一部分。
4.Linux的調度策略是什么? 調度時應該封鎖中斷嗎?如果不封鎖,會發(fā)生什么問題?
答:Linux使用三種調度策略,動態(tài)優(yōu)先數(shù)調度SCHED_OTHER,先來先服務調度SCHED_FIFO和輪轉法調度SCHED_RR。其中動態(tài)優(yōu)先級調度策略用于普通進程,后兩種調度策略用于實時進程。
在調度時應封鎖中斷,否則在調度過程中由于中斷會使進程上下文的切換出現(xiàn)錯誤。
6. Linux在哪幾種情況下發(fā)生調度? 答:兩種情況:一是進程自動放棄處理機時主動裝入調度過程,二是在由核心態(tài)轉入用戶態(tài)時,系統(tǒng)設置了高優(yōu)先級就緒進程的強迫調度標識need_resched時發(fā)生調度。
8.什么是軟中斷? 答:P162 13.Linux存儲管理策略中交換和請求調頁方式有何區(qū)別? 答:P171
第八章
1.什么是文件、文件系統(tǒng)?文件系統(tǒng)有哪些功能? P198 答:在計算機系統(tǒng)中,文件被解釋為一組賦名的相關字符流的集合,或者是相關紀錄的集合。
文件系統(tǒng)是操作系統(tǒng)中與管理文件有關的軟件和數(shù)據(jù)。
文件系統(tǒng)的功能是為用戶建立文件、撤銷、讀寫、修改和復制文件,以及完成對文件的按名存取和進行存取控制。
2、文件一般按什么分類?可以分為哪幾類? P199 答:文件一般按性質、用途、組織形式、文件中的信息流向或文件的保護級別等分類。
按性質和用途可分為系統(tǒng)文件、庫文件和用戶文件。按文件的組織形式可分為普通文件、目錄文件和特殊文件。
按文件中的信息流向可分為輸入文件、輸出文件和輸入/輸出文件。按文件的保護級別可分為只讀文件、讀寫文件、可執(zhí)行文件和不保護文件。
3、什么是文件的邏輯結構?什么是紀錄?P200 答:文件的邏輯結構就是用戶可見的結構,可分為字符流式的 無結構文件和記錄式的有結構文件兩大類。
記錄是一個具有特定意義的信息單位,他由該紀錄在文件中的邏輯地址(相對位置)與記錄名所對應的一組關鍵字、屬性及其屬性值所組成。
7、文件的物理結構有哪幾種?為什么說串聯(lián)文件結構不適于隨機存取?P205 答:文件的物理結構是指文件在存儲設備上的存取方法。常用的文件的物理結構有連續(xù)文件、串聯(lián)文件和索引文件三種。
串聯(lián)文件結構用非連續(xù)的物理塊來存取文件信息。這些非連續(xù)的物理塊之間沒有順序關系,鏈接成一個串聯(lián)隊列。搜索時只能按隊列中的串聯(lián)指針順序搜索,存取方法應該是順序存取的。否則,為了讀取某個信息塊而造成的磁頭大幅度移動將花去較多的時間。因此,串聯(lián)文件結構不適于隨機存取。
9、常用的文件存儲設備的管理方法有哪些?試述主要優(yōu)缺點。P209 答:文件存儲設備的管理實質上是一個空閑塊的組織和管理問題。有3種不同的空閑塊管理方法,即空閑文件目錄、空閑塊鏈和位示圖。
空閑文件目錄管理方法就是把文件存儲設備中的空閑塊的塊號統(tǒng)一放在一個稱為空閑文件目錄的物理塊中,其中空閑文件目錄的每個表項對應一個由多個空閑塊構成的空閑區(qū)。該方法實現(xiàn)簡單,適于連續(xù)文件結構的文件存儲區(qū)的分配與回收。但是由于回收時不進行合并,所以使用該方法容易產生大量的小塊空閑區(qū)。
空閑塊鏈法把文件存儲設備上的所有空閑塊鏈接在一起,從鏈頭分配空閑塊,把回收的空閑塊插入到鏈尾。該方法不占用額外的空間,但實現(xiàn)復雜。
位示圖法是從內存中劃出若干字節(jié),每個比特位對應一個物理塊的使用情況。如果該位為0表示對應的塊是空閑的,為1表示對應的物理塊已分配出去。位示圖法在查找空閑塊時無需啟動外設,但要占用內存空間。
11、什么是文件目錄?文件目錄中包含哪些信息?P211 答:一個文件的文件名和對該文件實施控制管理的說明信息成為該文件的說明信息,又稱為該文件的文件控制塊(FCB)。把所有的FCB組織在一起,就構成了文件目錄,即文件控制塊的有序集合。
文件目錄中包含文件名、與文件名相對應的文件內部標識以及文件信息在文件存儲設備上的第一個物理塊的地址等信息。另外還可能包含關于文件的邏輯結構、物理結構、存取控制信息和管理等信息。
13、文件存取控制方式有哪幾種?試比較它們各自的優(yōu)缺點。P216 答:文件存取控制方式一般有存取控制矩陣、存取控制表、口令和密碼術4種方式。存取控制矩陣方式以一個二維矩陣來進行存取控制。而且矩陣的一維是所有的用戶。另一維是所有的文件。對應的矩陣元素則是用戶對文件的存取控制權。存取控制矩陣的方法在概念上比較簡單,但是當用戶和文件較多時,存取控制矩陣將變得非常龐大,從而時間和空間的開銷都很大。
存取控制表以文件為單位,把用戶按某種關系劃分為若干組,同時規(guī)定每組的存取限制。這樣所有用戶組對文件權限的集合就形成了該文件的存取控制表。存取控制表方法占用空間較小,搜索效率也較高,但要對用戶分組,引入了額外的開銷。
口令方式有兩種。一種是當用戶進入系統(tǒng)時,為建立終端進程時獲得系統(tǒng)使用權的口令。另一種方式是,每個用戶在創(chuàng)建文件時,為每個創(chuàng)建的文件設置一個口令,且將其置于文件說明中。當任一用戶想使用該文件時,都必須首先提供口令。口令方式比較簡單,占用的內存單元以及驗證口令所費時間都非常少。不過,相對來說,口令方式保密性能比較差。
密碼術方式在用戶創(chuàng)建源文件并寫入存儲設備時對文件進行編碼加密,在讀出文件時對文件進行譯碼解密。加密方式具有保密性強的優(yōu)點。但是,由于加密解密工作要耗費大量的處理時間,因此,加密技術是以犧牲系統(tǒng)開銷為代價的。
第九章
1.設備管理的目標和功能是什么? 答:設備管理的目標是:
(1)選擇和分配輸入/輸出設備以便進行數(shù)據(jù)傳輸操作;(2)控制輸入/輸出設備和CPU(或內存)之間交換數(shù)據(jù);(3)為用戶提供一個友好的透明接口;(4)提高設備和設備之間、CPU和設備之間,以及進程和進程之間的并行操作,以使操作系統(tǒng)獲得最佳效率。
設備管理的功能是:
(1)提供和進程管理系統(tǒng)的接口;(2)進行設備分配;
(3)實現(xiàn)設備和設備、設備和CPU等之間的并行操作;(4)進行緩沖區(qū)管理。
2.數(shù)據(jù)傳送控制方式有哪幾種?試比較它們各自的優(yōu)缺點。
答:數(shù)據(jù)傳送控制方式有程序直接控制方式、中斷控制方式、DMA方式和通道方式4種。
程序直接控制方式就是由用戶進程來直接控制內存或CPU和外圍設備之間的數(shù)據(jù)傳送。它的優(yōu)點是控制簡單,也不需要多少硬件支持。它的缺點是CPU和外圍設備只能串行工作;設備之間只能串行工作,無法發(fā)現(xiàn)和處理由于設備或其他硬件所產生的錯誤。
中斷控制方式是利用向CPU發(fā)送中斷的方式控制外圍設備和CPU之間的數(shù)據(jù)傳送。它的優(yōu)點是大大提高了CPU的利用率且能支持多道程序和設備的并行操作。它的缺點是由于數(shù)據(jù)緩沖寄存器比較小,如果中斷次數(shù)較多,仍然占用了大量CPU時間;在外圍設備較多時,由于中斷次數(shù)的急劇增加,可能造成CPU無法響應中斷而出現(xiàn)中斷丟失的現(xiàn)象;如果外圍設備速度比較快,可能會出現(xiàn)CPU來不及從數(shù)據(jù)緩沖寄存器中取走數(shù)據(jù)而丟失數(shù)據(jù)的情況。DMA方式是在外圍設備和內存之間開辟直接的數(shù)據(jù)交換通路進行數(shù)據(jù)傳送。它的優(yōu)點是除了在數(shù)據(jù)塊傳送開始時需要CPU的啟動指令,在整個數(shù)據(jù)塊傳送結束時需要發(fā)中斷通知CPU進行中斷處理之外,不需要CPU的頻繁干涉。它的缺點是在外圍設備越來越 多的情況下,多個DMA控制器的同時使用,會引起內存地址的沖突并使得控制過程進一步復雜化。
通道方式是使用通道來控制內存或CPU和外圍設備之間的數(shù)據(jù)傳送。通道是一個獨立與CPU的專管輸入/輸出控制的機構,它控制設備與內存直接進行數(shù)據(jù)交換。它有自己的通道指令,這些指令受CPU啟動,并在操作結束時向CPU發(fā)中斷信號。該方式的優(yōu)點是進一步減輕了CPU的工作負擔,增加了計算機系統(tǒng)的并行工作程度。缺點是增加了額外的硬件,造價昂貴。
3.什么是通道?試畫出通道控制方式時的CPU、通道和設備的工作流程圖。
答:通道是一個獨立與CPU的專管輸入/輸出控制的機構,它控制設備與內存直接進行數(shù)據(jù)交換。它有自己的通道指令,這些指令受CPU啟動,并在操作結束時向CPU發(fā)中斷信號。
4.什么是中斷?什么叫中斷處理?什么叫中斷響應? 答: 中斷是指計算機在執(zhí)行期間,系統(tǒng)內發(fā)生任何非尋常的或非預期的急需處理事件,使得CPU暫時中斷當前正在執(zhí)行的程序而轉去執(zhí)行相應的事件處理程序,待處理完畢后又返回原來被中斷處繼續(xù)執(zhí)行的過程。
CPU轉去執(zhí)行相應的事件處理程序的過程稱為中斷處理。CPU收到中斷請求后轉到相應的事件處理程序稱為中斷響應。
5.什么叫關中斷?什么叫開中斷?什么叫中斷屏蔽? 答:把CPU內部的處理機狀態(tài)字PSW的中斷允許位清除從而不允許CPU響應中斷叫做關中斷。設置CPU內部的處理機狀態(tài)字PSW的中斷允許位從而允許CPU響應中斷叫做開中斷。
中斷屏蔽是指在中斷請求產生之后,系統(tǒng)用軟件方式有選擇地封鎖部分中斷而允許其余部分的中斷仍能得到響應。
6.什么是陷阱?什么是軟中斷?試述中斷、陷阱和軟中斷之間異同。
答:陷阱指處理機和內存內部產生的中斷,它包括程序運算引起的各種錯誤,如地址非法、校驗錯、頁面失效。存取訪問控制錯、從用戶態(tài)到核心態(tài)的切換等都是陷阱的例子。軟中斷是通信進程之間用來模擬硬中斷的一種信號通信方式。
8.什么是緩沖?為什么要引入緩沖?
答:緩沖即是使用專用硬件緩沖器或在內存中劃出一個區(qū)域用來暫時存放輸入輸出數(shù)據(jù)的器件。
引入緩沖是為了匹配外設和CPU之間的處理速度,減少中斷次數(shù)和CPU的中斷處理時間,同時解決DMA或通道方式時的數(shù)據(jù)傳輸瓶頸問題。
13.什么是I/O控制?它的主要任務是什么? 答:I/O控制是指從用戶進程的輸入輸出請求開始,給用戶進程分配設備和啟動有關設備進行I/O操作,并在I/O操作完成之后響應中斷,直至善后處理為止的整個系統(tǒng)控制過程。
15.設備驅動程序是什么?為什么要有設備驅動程序?用戶進程怎樣使用驅動程序? 答:設備驅動程序是驅動外部物理設備和相應DMA控制器或I/O控制器等器件,使之可以直接和內存進行I/O操作的子程序的集合。它們負責設置相應設備有關寄存器的值,啟動設備進行I/O操作,指定操作的類型和數(shù)據(jù)流向等。
設備驅動程序屏蔽了直接對硬件操作的細節(jié),為編程者提供操縱設備的友好接口。
用戶進程通過調用設備驅動程序提供的接口來使用設備驅動程序。
第四篇:操作系統(tǒng)課后題答案
課本課后題部分答案 第一章
1.設計現(xiàn)代OS的主要目標是什么?
答:(1)有效性(2)方便性(3)可擴充性(4)開放性 2.OS的作用可表現(xiàn)在哪幾個方面?
答:(1)OS作為用戶與計算機硬件系統(tǒng)之間的接口(2)OS作為計算機系統(tǒng)資源的管理者(3)OS實現(xiàn)了對計算機資源的抽象
13.OS有哪幾大特征?其最基本的特征是什么?
答:并發(fā)性、共享性、虛擬性和異步性四個基本特征;最基本的特征是并發(fā)性。14.處理機管理有哪些主要功能?它們的主要任務是什么?
答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調度; 進程管理:為作業(yè)創(chuàng)建進程,撤銷已結束進程,控制進程在運行過程中的狀態(tài)轉換。進程同步:為多個進程(含線程)的運行______________進行協(xié)調。通信:用來實現(xiàn)在相互合作的進程之間的信息交換。處理機調度:
(1)作業(yè)調度。從后備隊里按照一定的算法,選出若干個作業(yè),為他們分配運行所需 的資源(首選是分配內存)。
(2)進程調度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給 它,并設置運行現(xiàn)場,使進程投入執(zhí)行。
15.內存管理有哪些主要功能?他們的主要任務是什么?
北京石油化工學院信息工程學院計算機系3/48 《計算機操作系統(tǒng)》習題參考答案余有明與計07和計G09的同學們編著 3/48 答:內存管理的主要功能有:內存分配、內存保護、地址映射和內存擴充。內存分配:為每道程序分配內存。
內存保護:確保每道用戶程序都只在自己的內存空間運行,彼此互不干擾。地址映射:將地址空間的邏輯地址轉換為內存空間與對應的物理地址。內存擴充:用于實現(xiàn)請求調用功能,置換功能等。16.設備管理有哪些主要功能?其主要任務是什么?
答:主要功能有: 緩沖管理、設備分配和設備處理以及虛擬設備等。
主要任務: 完成用戶提出的I/O 請求,為用戶分配I/O 設備;提高CPU 和I/O 設 備的利用率;提高I/O速度;以及方便用戶使用I/O設備.17.文件管理有哪些主要功能?其主要任務是什么?
答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護。文件管理的主要任務:管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性。
第二章
1.什么是前趨圖?為什么要引入前趨圖?
答:前趨圖(Precedence Graph)是一個有向無循環(huán)圖,記為DAG(Directed Acyclic Graph),用于描述進程之間執(zhí)行的前后關系。
2.畫出下面四條語句的前趨圖: S1=a:=x+y;S2=b:=z+1;S3=c:=a – b; S4=w:=c+1;答:其前趨圖為:
5.在操作系統(tǒng)中為什么要引入進程概念?它會產生什么樣的影響? 答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和描述,在操 作系統(tǒng)中引入了進程概念。
影響: 使程序的并發(fā)執(zhí)行得以實行。
7.試說明PCB 的作用,為什么說PCB 是進程存在的惟一標志?
答:PCB 是進程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結構。作用是使一個在 多道程序環(huán)境下不能獨立運行的程序,成為一個能獨立運行的基本單位,成為能與其它進程 并發(fā)執(zhí)行的進程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進程進行控制和管理的。8.試說明進程在三個基本狀態(tài)之間轉換的典型原因。答:(1)就緒狀態(tài)→執(zhí)行狀態(tài):進程分配到CPU資源(2)執(zhí)行狀態(tài)→就緒狀態(tài):時間片用完(3)執(zhí)行狀態(tài)→阻塞狀態(tài):I/O請求(4)阻塞狀態(tài)→就緒狀態(tài):I/O完成
22.試寫出相應的程序來描述圖2-17所示的前驅圖。
答:(a)Var a, b, c, d, e, f, g, h;semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);S6;signal(h);end;begin wait(f);wait(g);wait(h);S7;end;2 parend end(b)Var a, b, c, d, e, f, g, h,i,j;semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);signal(f);end;begin wait(c);S4;signal(g);end;begin wait(d);S5;signal(h);end;begin wait(e);S6;signal(i);end;begin wait(f);S7;signal(j);end;begin wait(g);wait(h);wait(i);wait(j);S8;end;parend end 第三章
第三章 處理機調度與死鎖
2.何謂作業(yè)、作業(yè)步和作業(yè)流?
答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說明書。系統(tǒng)根據(jù)該說明書對程序的運行進行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調入內存。
作業(yè)步是指每個作業(yè)運行期間都必須經過若干個相對獨立相互關聯(lián)的順序加工的步驟。作業(yè)流是指若干個作業(yè)進入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進程處理,于是形成了處理作業(yè)流。5.試說明低級調度的主要功能。
答:(1)保存處理機的現(xiàn)場信息(2)按某種算法選取進程(3)把處理機分配給進程。8.在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種進程(作業(yè))調度算法? 答:批處理系統(tǒng)的調度算法:短作業(yè)優(yōu)先、優(yōu)先權、高響應比優(yōu)先、多級反饋隊列調度算法。分時系統(tǒng)的調度算法:時間片輪轉法。
實時系統(tǒng)的調度算法:最早截止時間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法。9.何謂靜態(tài)和動態(tài)優(yōu)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?
答:靜態(tài)優(yōu)先級是指在創(chuàng)建進程時確定且在進程的整個運行期間保持不變的優(yōu)先級。
動態(tài)優(yōu)先級是指在創(chuàng)建進程時賦予的優(yōu)先權,可以隨進程推進或隨其等待時間增加而改變的優(yōu)先級,可以獲得更好的調度性能。
確定進程優(yōu)先級的依據(jù):進程類型、進程對資源的需求和用戶要求。11.在時間片輪轉法中,應如何確定時間片的大小?
答:時間片應略大于一次典型的交互需要的時間。一般應考慮三個因素:系統(tǒng)對相應時間的 要求、就緒隊列中進程的數(shù)目和系統(tǒng)的處理能力。
12.通過一個例子來說明通常的優(yōu)先級調度算法不能適用于實時系統(tǒng)?
答:實時系統(tǒng)的調度算法很多,主要是基于任務的開始截止時間和任務緊急/松弛程度的任務優(yōu)先級調度算法,通常的優(yōu)先級調度算法不能滿足實時系統(tǒng)的調度實時性要求而不適用。
13.為什么說多級反饋隊列調度算法能較好地滿足各方面用戶的需求?
答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在 3 第一隊列規(guī)定的時間片內完成,終端作業(yè)用戶就會感到滿足。
(2)短批處理作業(yè)用戶,開始時像終端型作業(yè)一樣,如果在第一隊列中執(zhí)行一個時間片段即可完成,便可獲得與終端作業(yè)一樣的響應時間。對于稍長作業(yè),通常只需在第二和第三隊列各執(zhí)行一時間片即可完成,其周轉時間仍然較短。
(3)長批處理作業(yè),它將依次在第1,2,?,n個隊列中運行,然后再按輪轉方式運行,用戶不必擔心其作業(yè)長期得不到處理。所以,多級反饋隊列調度算法能滿足多用戶需求。
18.何謂死鎖?產生死鎖的原因和必要條件是什么? 答:死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處于這種僵持狀 態(tài)時,若無外力作用,它們都將無法再向前推進。
產生死鎖的原因為競爭資源和進程間推進順序非法。其必要條件是:互斥條件、請求和 保持條件、不剝奪條件、環(huán)路等待條件。
19.在解決死鎖問題的幾個方法中,哪種方法最易于實現(xiàn)?哪種方法使資源利用率最高? 答:解決死鎖的四種方法即預防、避免、檢測和解除死鎖中,預防死鎖最容易實現(xiàn); 避免死鎖使資源的利用率最高。
20.請詳細說明可通過哪些途徑預防死鎖。
答:(1)擯棄“請求和保持”條件,就是如果系統(tǒng)有足夠資源,便一次性把進程需要的所 有資源分配給它;
(2)擯棄“不剝奪”條件,就是已經擁有資源的進程,當它提出新資源請求而不能立即 滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;
(3)擯棄“環(huán)路等待”條件,就是將所有資源按類型排序標號,所有進程對資源的請求 必須嚴格按序號遞增的次序提出。
21.在銀行家算法的例子中,如果P0發(fā)出請求向量由Request(0,2,0)改為Request(0,1,0),問系統(tǒng)可否將資源分配給它?
答:(1)可以。銀行家算法各種資源數(shù)量分別為10、5、7,在T0時刻的資源分配如圖所示:
(2)具體分析如下:
①Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);系統(tǒng)先假定可為P0分配資源,并修改Available0,Allocation0和Need0向量,由此形成 的資源變化情況如下圖所示:
(3)P0請求資源:P0發(fā)出請求向量Requst0(0,1,0),系統(tǒng)按銀行家算法進行檢查: ① Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);③ 系統(tǒng)暫時先假定可為P0分配資源,并修改______________有關數(shù)據(jù),如下圖所示
綜上所述系統(tǒng)可以將資源分配給它。
22.銀行家算法中出現(xiàn)以下資源分配,試問(1)該狀態(tài)是否安全?(2)若進程P2 提出 Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?
試問:(1)該狀態(tài)是否安全?
(2)若進程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它? 答:(1)安全,因為存在安全序列{P0,P3,P4,P1,P2}(2)系統(tǒng)能分配資源,分析如下。
① Request(1,2,2,2)<= Need2(2,3,5,6);② Request(1,2,2,2)<= Available2(1,3,5,4);
③ 系統(tǒng)先假定可為P2分配資源,并修改Available2,Allocation2和Need2向量,由此形成的資源變化情況如下圖所示:
④ 再利用安全性算法檢查此時系統(tǒng)是否安全。如下圖
由此進行的安全性檢查得知,可以找到一個安全序列{P2,P0,P1,P3,P4}。
第四章
2.可采用哪幾種方式將程序裝入內存?它們分別適用于何種場合? 答:(1)絕對裝入方式,只適用于單道程序環(huán)境。(2)可重定位裝入方式,適用于多道程序環(huán)境。
(3)動態(tài)運行時裝入方式,用于多道程序環(huán)境;不允許程序運行時在內存中移位置。17.分段和分頁存儲管理有何區(qū)別? 答:
(1)是信息的物理單位,分頁是為了實現(xiàn)離散分配方式,以消減內存的外部零頭,提高內 存利用率。段則是信息的邏輯單位,它含有一組相對完整的信息。
(2)頁的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁號和頁內地址兩部分,是由 機械硬件實現(xiàn)的,因而在系統(tǒng)中只能有一種大小的的頁面;而段的長度卻不固定,決定于用戶 所編寫的程序,通常由編譯程序在對原程序進行編譯時,根據(jù)信息的性質來劃分。(3)分頁的作業(yè)地址空間是一維的,而分段作業(yè)地址空間則是二維的。19.虛擬存儲器有哪些特征?其中最本質的特征是什么?
答:虛擬存儲器有多次性、對換性、虛擬性三大特征。最本質的特征是虛擬性。20.實現(xiàn)虛擬存儲器需要哪些硬件支持?
答:(1)請求分頁(段)的頁(段)表機制(2)缺頁(段)中斷機構(3)地址變換機構 21.實現(xiàn)虛擬存儲器需要哪幾個關鍵技術? 答:
(1)在分頁請求系統(tǒng)中是在分頁的基礎上,增加了請求調頁功能和頁面置換功能所形成的 頁式虛擬存儲系統(tǒng)。允許只裝入少數(shù)頁面的程序(及數(shù)據(jù)),便啟動運行。
(2)在請求分段系統(tǒng)中是在分段系統(tǒng)的基礎上,增加了請求調段及分段置換功能后形成的 段式虛擬存儲系統(tǒng)。允許只裝入少數(shù)段(而非所有段)的用戶程序和數(shù)據(jù),即可啟動運行。25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式?為什么?
答:固定分配方式是基于進程的類型(交互型)或根據(jù)程序員、系統(tǒng)管理員的建議,為每個進 6 程分配固定頁數(shù)的內存空間,整個運行期間不再改變;采用可變分配方式有全局置換和局部置換兩種,前者易于實現(xiàn),后者效率高。26.在一個請求分頁系統(tǒng)中,采用LRU 頁面置換算法時,假如一個作業(yè)的頁面走向為 4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5,當分配給該作業(yè)的物理塊數(shù)M分別為3和4時,試計算訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率 ? 比較所得結果 ? 答:當分配給該作業(yè)的物理塊數(shù)M為3時,缺頁7次,缺頁率: 7/12=0.583; 當分配給該作業(yè)的物理塊數(shù)M為4時,缺頁4次,缺頁率: 4/12=0.333.28.試說明改進型 Clock 置換算法的基本原理.答:因為修改過的頁面在換出時付出的開銷比未被修改過的頁面大,在改進型Clock 算法 中,既考慮頁面的使用情況,還要增加置換代價的因素;在選擇頁面作為淘汰頁面時,把同 時滿足未使用過和未被修改作為首選淘汰頁面。
第五章
7.有哪幾種I/O控制方式?各適用于何種場合? 答:共有四種I/O 控制方式。
(1)程序I/O 方式:早期計算機無中斷機構,處理機對I/O設備的控制采用程序I/O方式或稱忙等的方式。
(2)中斷驅動I/O 控制方式:適用于有中斷機構的計算機系統(tǒng)中。
(3)直接存儲器訪問(DMA)I/O 控制方式:適用于具有DMA控制器的計算機系統(tǒng)中。(4)I/O 通道控制方式:具有通道程序的計算機系統(tǒng)中。
9.引入緩沖的主要原因是什么? 答:引入緩沖的主要原因是:
(1)緩和CPU與I/O 設備間速度不匹配的矛盾
(2)減少對CPU的中斷頻率,放寬對中斷響應時間的限制(3)提高CPU與I/O 設備之間的并行性
17.何謂設備虛擬?實現(xiàn)設備虛擬時所依賴的關鍵技術是什么? 答:設備虛擬是指把獨占設備經過某種技術處理改造成虛擬設備。可虛擬設備是指一臺物理設備在采用虛擬技術后,可變成多臺邏輯上的虛擬設備,則可虛擬設備是可共享的設備,將它同時分配給多個進程使用,并對這些訪問該物理設備的先后次序進行控制。
18.試說明SPOOLing 系統(tǒng)的組成。
答:SPOOLing 系統(tǒng)由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進程 SPi 和輸出進程 SPo 三部分組成。
19.在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應為請求I/O 的進程提供哪些服務? 答:在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應為請求 I/O的進程提供以下服務:(1)由輸出進程在輸出井中申請一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;
(2)輸出進程為用戶進程申請空白用戶打印表,填入打印要求,將該表掛到請求打印隊列。(3)一旦打印機空閑,輸出進程便從請求打印隊列的隊首取出一張請求打印表,根據(jù)表中要求將要打印的數(shù)據(jù)從輸出井傳送到內存緩沖區(qū),再由打印機進行打印。
第六章
1.何謂數(shù)據(jù)項、記錄和文件?
答:①數(shù)據(jù)項分為基本數(shù)據(jù)項和組合數(shù)據(jù)項。基本數(shù)據(jù)項描述一個對象某種屬性的字符集,7 具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個特性。組合數(shù)據(jù)項由若干數(shù)據(jù)項構成。②記錄是一組相關數(shù)據(jù)項的集合,用于描述一個對象某方面的屬性。③文件是具有文件名的一組相關信息的集合。
4.何謂邏輯文件?何謂物理文件?
答:邏輯文件是物理文件中存儲的數(shù)據(jù)的一種視圖方式,不包含具體數(shù)據(jù),僅包含物理文件中數(shù)據(jù)的索引。物理文件又稱文件存儲結構,是指文件在外存上的存儲組織形式。8.試說明順序文件的結構及其優(yōu)點。
答:第一種是串結構:各記錄之間的順序與關鍵字無關。第二種是順序結構:指文件中的所有記錄按關鍵字(詞)排列。可以按關鍵詞長短排序或英文字母順序排序。順序文件的最佳應用場合是對諸記錄進行批量存取時,存取效率最高;只有順序文件才能存儲在磁帶上并有效工作。
15.什么是索引文件?為什么要引入多級索引?
答:索引文件是指當記錄為可變長度時,通常為之建立一張索引表,并為每個記錄設置一個表項構成的文件。通常將索引非順序文件簡稱為索引文件。索引是為了是用戶的訪問速度更快,多級索引結構可以有效的管理索引文件,可根據(jù)用戶的訪問情況多級處理。17.對目錄管理的主要要求是什么?
答:實現(xiàn)按名存取、提高檢索目錄的速度、文件共享、允許文件重名。18.采用單級目錄能否滿足對目錄管理的主要要求?為什么?
答:不能。單級目錄在整個文件系統(tǒng)中只建立一張目錄表,每個文件占一個目錄項,其中含文件名、文件擴展名、文件長度、文件類型、文件物理地址、狀態(tài)位等其它文件屬性。單級只能實現(xiàn)目錄管理的基本功能,不能滿足查找速度、允許重名和文件共享的要求。19.目前廣泛應用的目錄結構有哪些?它有什么優(yōu)點?
答:現(xiàn)代操作系統(tǒng)都采用多級目錄結構。基本特點是查詢速度快、層次結構清晰、文件管理和保護易于實現(xiàn)。
第五篇:操作系統(tǒng)課后題答案
第一章
1.設計現(xiàn)代OS的主要目標是什么?
答:(1)有效性(2)方便性(3)可擴充性(4)開放性 2.OS的作用可表現(xiàn)在哪幾個方面?
答:(1)OS作為用戶與計算機硬件系統(tǒng)之間的接口(2)OS作為計算機系統(tǒng)資源的管理者(3)OS實現(xiàn)了對計算機資源的抽象
3.為什么說OS實現(xiàn)了對計算機資源的抽象?
答:OS首先在裸機上覆蓋一層I/O設備管理軟件,實現(xiàn)了對計算機硬件操作的第一層次抽 象;在第一層軟件上再覆蓋文件管理軟件,實現(xiàn)了對硬件資源操作的第二層次抽象。OS 通 過在計算機硬件上安裝多層系統(tǒng)軟件,增強了系統(tǒng)功能,隱藏了對硬件操作的細節(jié),由它們 共同實現(xiàn)了對計算機資源的抽象。
4.試說明推動多道批處理系統(tǒng)形成和發(fā)展的主要動力是什么? 答:主要動力來源于四個方面的社會需求與技術發(fā)展:(1)不斷提高計算機資源的利用率;(2)方便用戶;
(3)器件的不斷更新?lián)Q代;
(4)計算機體系結構的不斷發(fā)展。
5.何謂脫機I/O和聯(lián)機I/O?
答:脫機I/O 是指事先將裝有用戶程序和數(shù)據(jù)的紙帶或卡片裝入紙帶輸入機或卡片機,在 外圍機的控制下,把紙帶或卡片上的數(shù)據(jù)或程序輸入到磁帶上。該方式下的輸入輸出由外圍 機控制完成,是在脫離主機的情況下進行的。
而聯(lián)機I/O方式是指程序和數(shù)據(jù)的輸入輸出都是在主機的直接控制下進行的。6.試說明推動分時系統(tǒng)形成和發(fā)展的主要動力是什么?
答:推動分時系統(tǒng)形成和發(fā)展的主要動力是更好地滿足用戶的需要。主要表現(xiàn)在:CPU 的 分時使用縮短了作業(yè)的平均周轉時間;人機交互能力使用戶能直接控制自己的作業(yè);主機的 共享使多用戶能同時使用同一臺計算機,獨立地處理自己的作業(yè)。7.實現(xiàn)分時系統(tǒng)的關鍵問題是什么?應如何解決?
答:關鍵問題是當用戶在自己的終端上鍵入命令時,系統(tǒng)應能及時接收并及時處理該命令,在用戶能接受的時延內將結果返回給用戶。
解決方法:針對及時接收問題,可以在系統(tǒng)中設置多路卡,使主機能同時接收用戶從各個終 端上輸入的數(shù)據(jù);為每個終端配置緩沖區(qū),暫存用戶鍵入的命令或數(shù)據(jù)。針對及時處理問題,應使所有的用戶作業(yè)都直接進入內存,并且為每個作業(yè)分配一個時間片,允許作業(yè)只在自己 的時間片內運行,這樣在不長的時間內,能使每個作業(yè)都運行一次。8.為什么要引入實時OS?
答:實時操作系統(tǒng)是指系統(tǒng)能及時響應外部事件的請求,在規(guī)定的時間內完成對該事件的處 理,并控制所有實時任務協(xié)調一致地運行。引入實時OS 是為了滿足應用的需求,更好地滿 足實時控制領域和實時信息處理領域的需要。
9.什么是硬實時任務和軟實時任務?試舉例說明。
答:硬實時任務是指系統(tǒng)必須滿足任務對截止時間的要求,否則可能出現(xiàn)難以預測的結果。舉例來說,運載火箭的控制等。
軟實時任務是指它的截止時間并不嚴格,偶爾錯過了任務的截止時間,對系統(tǒng)產生的影 響不大。舉例:網頁內容的更新、火車售票系統(tǒng)。
10.在8位微機和16位微機中,占據(jù)了統(tǒng)治地位的是什么操作系統(tǒng)?
答:單用戶單任務操作系統(tǒng),其中最具代表性的是CP/M和MS-DOS.11.試列出Windows OS 中五個主要版本,并說明它們分別較之前一個版本有何改進。答:
(1)Microsoft Windows 1.0是微軟公司在個人電腦上開發(fā)圖形界面的首次嘗試。(2)Windows 95是混合的16位/32位系統(tǒng),第一個支持32位。帶來了更強大、更穩(wěn) 定、更實用的桌面圖形用戶界面,結束了桌面操作系統(tǒng)間的競爭。
(3)Windows 98是微軟公司的混合16位/32位Windows 操作系統(tǒng),改良了硬件標準 的支持,革新了內存管理,是多進程操作系統(tǒng)。
(4)Windows XP是基于Windows 2000的產品,擁有新用戶圖形界面月神Luna。簡 化了用戶安全特性,整合了防火墻。
(5)Windows Vista 包含了上百種新功能;特別是新版圖形用戶界面和Windows Aero 全新界面風格、加強的搜尋功能(Windows Indexing Service)、新媒體創(chuàng)作工具以及重 新設計的網絡、音頻、輸出(打印)和顯示子系統(tǒng)。
12.試從交互性、及時性以及可靠性方面,將分時系統(tǒng)與實時系統(tǒng)進行比較。
答:(1)及時性:實時信息處理系統(tǒng)對實時性的要求與分時系統(tǒng)類似,都是以人所能接受 的等待時間來確定;而實時控制系統(tǒng)的及時性,是以控制對象所要求的開始截止時間或完成 截止時間來確定的,一般為秒級到毫秒級,甚至有的要低于100微妙。
(2)交互性:實時信息處理系統(tǒng)具有交互性,但人與系統(tǒng)的交互僅限于訪問系統(tǒng)中某 些特定的專用服務程序。不像分時系統(tǒng)那樣能向終端用戶提供數(shù)據(jù)和資源共享等服務。(3)可靠性:分時系統(tǒng)也要求系統(tǒng)可靠,但相比之下,實時系統(tǒng)則要求系統(tǒng)具有高度 的可靠性。因為任何差錯都可能帶來巨大的經濟損失,甚至是災難性后果,所以在實時系統(tǒng) 中,往往都采取了多級容錯措施保障系統(tǒng)的安全性及數(shù)據(jù)的安全性。13.OS有哪幾大特征?其最基本的特征是什么?
答:并發(fā)性、共享性、虛擬性和異步性四個基本特征;最基本的特征是并發(fā)性。14.處理機管理有哪些主要功能?它們的主要任務是什么?
答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調度; 進程管理:為作業(yè)創(chuàng)建進程,撤銷已結束進程,控制進程在運行過程中的狀態(tài)轉換。進程同步:為多個進程(含線程)的運行______________進行協(xié)調。通信:用來實現(xiàn)在相互合作的進程之間的信息交換。
處理機調度:
(1)作業(yè)調度。從后備隊里按照一定的算法,選出若干個作業(yè),為他們分配運行所需 的資源(首選是分配內存)。
(2)進程調度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給 它,并設置運行現(xiàn)場,使進程投入執(zhí)行。
15.內存管理有哪些主要功能?他們的主要任務是什么?
北京石油化工學院信息工程學院計算機系3/48 《計算機操作系統(tǒng)》習題參考答案余有明與計07和計G09的同學們編著 3/48 答:內存管理的主要功能有:內存分配、內存保護、地址映射和內存擴充。內存分配:為每道程序分配內存。
內存保護:確保每道用戶程序都只在自己的內存空間運行,彼此互不干擾。地址映射:將地址空間的邏輯地址轉換為內存空間與對應的物理地址。內存擴充:用于實現(xiàn)請求調用功能,置換功能等。16.設備管理有哪些主要功能?其主要任務是什么?
答:主要功能有: 緩沖管理、設備分配和設備處理以及虛擬設備等。
主要任務: 完成用戶提出的I/O 請求,為用戶分配I/O 設備;提高CPU 和I/O 設 備的利用率;提高I/O速度;以及方便用戶使用I/O設備.17.文件管理有哪些主要功能?其主要任務是什么?
答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護。文件管理的主要任務:管理用戶文件和系統(tǒng)文件,方便用戶使用,保證文件安全性。18.是什么原因使操作系統(tǒng)具有異步性特征?
答:操作系統(tǒng)的異步性體現(xiàn)在三個方面:一是進程的異步性,進程以人們不可預知的速度向 前推進,二是程序的不可再現(xiàn)性,即程序執(zhí)行的結果有時是不確定的,三是程序執(zhí)行時間的 不可預知性,即每個程序何時執(zhí)行,執(zhí)行順序以及完成時間是不確定的。19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決?
答:(1)模塊接口法存在的問題:①在OS設計時,各模塊間的接口規(guī)定很難滿足在模塊完 成后對接口的實際需求。②在OS 設計階段,設計者必須做出一系列的決定,每一個決定必 須建立在上一個決定的基礎上。但模塊化結構設計的各模塊設計齊頭并進,無法尋找可靠的 順序,造成各種決定的無序性,使程序設計人員很難做到設計中的每一步決定都建立在可靠 的基礎上,因此模塊接口法被稱為“無序模塊法”。
(2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。20.在微內核OS中,為什么要采用客戶/服務器模式?
答:C/S 模式具有獨特的優(yōu)點:⑴數(shù)據(jù)的分布處理和存儲。⑵便于集中管理。⑶靈活性和 可擴充性。⑷易于改編應用軟件。21.試描述什么是微內核OS。
答:1)足夠小的內核 2)基于客戶/服務器模式
3)應用機制與策略分離原理 4)采用面向對象技術。22.在基于微內核結構的OS中,應用了哪些新技術?
答:在基于微內核結構的OS 中,采用面向對象的程序設汁技術。
23.何謂微內核技術?在微內核中通常提供了哪些功能?
答:把操作系統(tǒng)中更多的成分和功能放到更高的層次(即用戶模式)中去運行,而留下一個 盡量小的內核,用它來完成操作系統(tǒng)最基本的核心功能,稱這種技術為微內核技術。在微內 核中通常提供了進程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。24.微內核操作系統(tǒng)具有哪些優(yōu)點?它為何能有這些優(yōu)點? 答:1)提高了系統(tǒng)的可擴展性 2)增強了系統(tǒng)的可靠性 3)可移植性
4)提供了對分布式系統(tǒng)的支持 5)融入了面向對象技術
第二章
1.什么是前趨圖?為什么要引入前趨圖?
答:前趨圖(Precedence Graph)是一個有向無循環(huán)圖,記為DAG(Directed Acyclic Graph),用于描述進程之間執(zhí)行的前后關系。
2.畫出下面四條語句的前趨圖: S1=a:=x+y;S2=b:=z+1;S3=c:=a – b; S4=w:=c+1;3 答:其前趨圖為:3.什么程序并發(fā)執(zhí)行會產生間斷性特征?
答:程序在并發(fā)執(zhí)行時,由于它們共享系統(tǒng)資源,為完成同一項任務需要相互合作,致使這 些并發(fā)執(zhí)行的進程之間,形成了相互制約關系,從而使得進程在執(zhí)行期間出現(xiàn)間斷性。4.程序并發(fā)執(zhí)行時為什么會失去封閉性和可再現(xiàn)性?
答:程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,因而這些資源的狀態(tài)由多個程序改 變,致使程序運行失去了封閉性,也會導致其失去可再現(xiàn)性。
5.在操作系統(tǒng)中為什么要引入進程概念?它會產生什么樣的影響? 答:為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并對并發(fā)執(zhí)行的程序加以控制和描述,在操 作系統(tǒng)中引入了進程概念。
影響: 使程序的并發(fā)執(zhí)行得以實行。
6.試從動態(tài)性,并發(fā)性和獨立性上比較進程和程序? 答:(1)動態(tài)性是進程最基本的特性,表現(xiàn)為由創(chuàng)建而產生,由調度而執(zhí)行,因得不到資源 而暫停執(zhí)行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是靜 態(tài)實體。
(2)并發(fā)性是進程的重要特征,同時也是OS 的重要特征。引入進程的目的正是為了使 其程序能和其它進程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的。
(3)獨立性是指進程實體是一個能獨立運行的基本單位,也是系統(tǒng)中獨立獲得資源和獨 立調度的基本單位。對于未建立任何進程的程序,不能作為獨立單位參加運行。7.試說明PCB 的作用,為什么說PCB 是進程存在的惟一標志?
答:PCB 是進程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結構。作用是使一個在 多道程序環(huán)境下不能獨立運行的程序,成為一個能獨立運行的基本單位,成為能與其它進程 并發(fā)執(zhí)行的進程。OS是根據(jù)PCB對并發(fā)執(zhí)行的進程進行控制和管理的。8.試說明進程在三個基本狀態(tài)之間轉換的典型原因。答:(1)就緒狀態(tài)→執(zhí)行狀態(tài):進程分配到CPU資源(2)執(zhí)行狀態(tài)→就緒狀態(tài):時間片用完(3)執(zhí)行狀態(tài)→阻塞狀態(tài):I/O請求
(4)阻塞狀態(tài)→就緒狀態(tài):I/O完成
9.為什么要引入掛起狀態(tài)?該狀態(tài)有哪些性質?
答:引入掛起狀態(tài)處于五種不同的需要: 終端用戶需要,父進程需要,操作系統(tǒng)需要,對換
北京石油化工學院信息工程學院計算機系5/48 《計算機操作系統(tǒng)》習題參考答案余有明與計07和計G09的同學們編著 5/48 需要和負荷調節(jié)需要。處于掛起狀態(tài)的進程不能接收處理機調度。10.在進行進程切換時,所要保存的處理機狀態(tài)信息有哪些? 答:進行進程切換時,所要保存的處理機狀態(tài)信息有:(1)進程當前暫存信息
(2)下一指令地址信息(3)進程狀態(tài)信息
(4)過程和系統(tǒng)調用參數(shù)及調用地址信息。
11.試說明引起進程創(chuàng)建的主要事件。
答:引起進程創(chuàng)建的主要事件有:用戶登錄、作業(yè)調度、提供服務、應用請求。12.試說明引起進程被撤銷的主要事件。
答:引起進程被撤銷的主要事件有:正常結束、異常結束(越界錯誤、保護錯、非法指令、特權指令錯、運行超時、等待超時、算術運算錯、I/O 故障)、外界干預(操作員或操作系 統(tǒng)干預、父進程請求、父進程終止)。
13.在創(chuàng)建一個進程時所要完成的主要工作是什么?
答:
(1)OS 發(fā)現(xiàn)請求創(chuàng)建新進程事件后,調用進程創(chuàng)建原語Creat();(2)申請空白PCB;(3)為新進程分配資源;(4)初始化進程控制塊;
(5)將新進程插入就緒隊列.14.在撤銷一個進程時所要完成的主要工作是什么?
答:
(1)根據(jù)被終止進程標識符,從PCB 集中檢索出進程PCB,讀出該進程狀態(tài)。
(2)若被終止進程處于執(zhí)行狀態(tài),立即終止該進程的執(zhí)行,置調度標志真,指示該進程被 終止后重新調度。
(3)若該進程還有子進程,應將所有子孫進程終止,以防它們成為不可控進程。(4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統(tǒng)。
(5)將被終止進程PCB 從所在隊列或列表中移出,等待其它程序搜集信息。15.試說明引起進程阻塞或被喚醒的主要事件是什么?
答:a.請求系統(tǒng)服務;b.啟動某種操作;c.新數(shù)據(jù)尚未到達;d.無新工作可做.16.進程在運行時存在哪兩種形式的制約?并舉例說明之。答:
(1)間接相互制約關系。舉例:有兩進程A 和B,如果A 提出打印請求,系統(tǒng)已把唯一的 一臺打印機分配給了進程B,則進程A 只能阻塞;一旦B 釋放打印機,A 才由阻塞改為就 緒。
(2)直接相互制約關系。舉例:有輸入進程A 通過單緩沖向進程B 提供數(shù)據(jù)。當緩沖空時,計算進程因不能獲得所需數(shù)據(jù)而阻塞,當進程A 把數(shù)據(jù)輸入緩沖區(qū)后,便喚醒進程B;反 之,當緩沖區(qū)已滿時,進程A 因沒有緩沖區(qū)放數(shù)據(jù)而阻塞,進程B 將緩沖區(qū)數(shù)據(jù)取走后便 喚醒A。
17.為什么進程在進入臨界區(qū)之前應先執(zhí)行“進入?yún)^(qū)”代碼?而在退出前又要執(zhí)行“退出 區(qū)”代碼?
答:為了實現(xiàn)多個進程對臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問 的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區(qū)對資源進行訪問,并設置正被訪問標志,如果正被訪問,則本進程不能進入臨界區(qū),實現(xiàn)這一功能的代碼為“ 北京石油化工學院信息工程學院計算機系6/48 《計算機操作系統(tǒng)》習題參考答案余有明與計07和計G09的同學們編著 6/48 進入?yún)^(qū)”代碼;
在退出臨界區(qū)后,必須執(zhí)行“退出區(qū)”代碼,用于恢復未被訪問標志,使其它進程能再訪問此 臨界資源。
18.同步機構應遵循哪些基本準則?為什么?
答:同步機構應遵循的基本準則是:空閑讓進、忙則等待、有限等待、讓權等待
原因:為實現(xiàn)進程互斥進入自己的臨界區(qū)。
19.試從物理概念上說明記錄型信號量wait 和signal。
答:wait(S):當S.value>0 時,表示目前系統(tǒng)中這類資源還有可用的。執(zhí)行一次wait 操 作,意味著進程請求一個單位的該類資源,使系統(tǒng)中可供分配的該類資源減少一個,因此描 述為S.value:=S.value-1;當S.value<0時,表示該類資源已分配完畢,進程應調用block 原語自我阻塞,放棄處理機,并插入到信號量鏈表S.L中。
signal(S):執(zhí)行一次signal操作,意味著釋放一個單位的可用資源,使系統(tǒng)中可供分配 的該類資源數(shù)增加一個,故執(zhí)行S.value:=S.value+1 操作。若加1 后S.value≤0,則表 示在該信號量鏈表中,仍有等待該資源的進程被阻塞,因此應調用wakeup 原語,將S.L 鏈表中的第一個等待進程喚醒。
20.你認為整型信號量機制是否完全遵循了同步機構的四條準則?
答:整型信號量機制不完全遵循同步機制的四條準則,它不滿足“讓權等待”準則。21.如何利用信號量機制來實現(xiàn)多個進程對臨界資源的互斥訪問?并舉例說明之。
答:為使多個進程互斥訪問某臨界資源,只需為該資源設置一互斥信號量mutex,并設其 初值為1,然后將各進程訪問該資源的臨界區(qū)CS置于wait(mutex)和signal(mutex)操作 之間即可。這樣,每個欲訪問該臨界資源的進程在進入臨界區(qū)之前,都要先對mutex 執(zhí)行 wait 操作,若該資源此刻未被訪問,本次wait 操作必然成功,進程便可進入自己的臨界區(qū),這時若再有其他進程也欲進入自己的臨界區(qū),此時由于對mutex 執(zhí)行wait操作定會失敗,因而該進程阻塞,從而保證了該臨界資源能被互斥訪問。當訪問臨界資源的進程退出臨界區(qū) 后,應對mutex執(zhí)行signal 操作,釋放該臨界資源。利用信號量實現(xiàn)進程互斥的進程描述 如下:
Var mutex: semaphore:=1; begin parbegin process 1: begin repeat wait(mutex); critical section signal(mutex); remainder seetion until false; end process 2: begin repeat wait(mutex); critical section signal(mutex); remainder section until false; end parend
22.試寫出相應的程序來描述圖2-17所示的前驅圖。
答:(a)Var a, b, c, d, e, f, g, h;semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);S6;signal(h);end;begin wait(f);wait(g);wait(h);S7;end;parend end(b)Var a, b, c, d, e, f, g, h,i,j;semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0;begin parbegin begin S1;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);signal(f);end;begin wait(c);S4;signal(g);end;begin wait(d);S5;signal(h);end;begin wait(e);S6;signal(i);end;begin wait(f);S7;signal(j);end;begin wait(g);wait(h);wait(i);wait(j);S8;end;parend end 23.在生產者消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結果有何影響? 答:
如果缺少signal(full),那么表明從第一個生產者進程開始就沒有改變信號量full 值,即使緩沖池產品已滿,但full 值還是0,這樣消費者進程執(zhí)行wait(full)時認為緩沖池是空 而取不到產品,消費者進程一直處于等待狀態(tài)。
如果缺少signal(empty),在生產者進程向n個緩沖區(qū)投滿產品后消費者進程才開始從
中取產品,這時empty=0,full=n,那么每當消費者進程取走一個產品empty 值并不改變,7 直到緩沖池取空了,empty 值也是0,即使目前緩沖池有n 個空緩沖區(qū),生產者進程要想 再往緩沖池中投放產品也會因為申請不到空緩沖區(qū)被阻塞。
24.在生產消費者問題中,如果將兩個wait 操作即wait(full)和wait(mutex)互換位置,或者將signal(mutex)與signal(full)互換位置,結果如何?
答:將wait(full)和wait(mutex)互換位置后,可能引起死鎖。考慮系統(tǒng)中緩沖區(qū)全滿時,若一生產者進程先執(zhí)行了wait(mutex)操作并獲得成功,則當再執(zhí)行wait(empty)操作時,它將因失敗而進入阻塞狀態(tài),它期待消費者進程執(zhí)行signal(empty)來喚醒自己,在此之前,它不可能執(zhí)行signal(mutex)操作,從而使試圖通過執(zhí)行wait(mutex)操作而進入自己的臨 界區(qū)的其他生產者和所有消費者進程全部進入阻塞狀態(tài),這樣容易引起系統(tǒng)死鎖。若signal(mutex)和signal(full)互換位置后只是影響進程對臨界資源的釋放次序,而 不會引起系統(tǒng)死鎖,因此可以互換位置。
25.我們在為某一臨界資源設置一把鎖W,當W=1時表示關鎖,當W=0時表示鎖已打開。試寫出開鎖和關鎖的原語,并利用他們實現(xiàn)互斥。答:整型信號量:lock(W): while W=1 do no-op
W:=1;
unlock(W): W:=0;記錄型信號量:lock(W): W:=W+1;
if(W>1)then block(W, L)unlock(W): W:=W-1;
if(W>0)then wakeup(W, L)例子:
Var W:semaphore:=0;
begin repeat lock(W);critical section unlock(W);remainder section until false;end
26.試修改下面生產者-消費者問題解法中的錯誤: 答: producer: begin repeat ?
producer an item in nextp;wait(mutex);wait(full);/* 應為wait(empty),而且還應該在wait(mutex)的前面 */ buffer(in):=nextp;/* 緩沖池數(shù)組游標應前移: in:=(in+1)mod n;*/ signal(mutex);8 /* signal(full);*/ until false;end consumer: begin repeat wait(mutex);wait(empty);/* 應為wait(full),而且還應該在wait(mutex)的前面 */ nextc:=buffer(out);out:=out+1;/* 考慮循環(huán),應改為: out:=(out+1)mod n;*/ signal(mutex);/* signal(empty);*/ consumer item in nextc;until false;end 27.試利用記錄型信號量寫出一個不會出現(xiàn)死鎖的哲學家進餐問題的算法.答:Var chopstick:array[0,?,4] of semaphore;所有信號量均被初始化為1,第i 位哲學家的活動可描述為: Repeat Wait(chopstick[i]);Wait(.chopstick[(i+1)mod 5]);?
Ea.t;?
Signal(chopstick[i]);Signal(chopstick[(i+1)mod 5])Ea.t;?
Think;Until false;
28.在測量控制系統(tǒng)中的數(shù)據(jù)采集任務,把所采集的數(shù)據(jù)送一單緩沖區(qū);計算任務從該單 緩沖中取出數(shù)據(jù)進行計算.試寫出利用信號量機制實現(xiàn)兩者共享單緩沖的同步算法。答:
a.Var mutex, empty, full: semaphore:=1, 1, 0;gather: begin repeat ??
gather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);9 signal(full);until false;end compute: begin repeat ??
wait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;end b.Var empty, full: semaphore:=1, 0;gather: begin repeat ??
gather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;end compute: begin repeat ??
wait(full);nextc:=buffer;signal(empty);compute data in nextc;until false;end 29.畫圖說明管程由哪幾部分組成,為什么要引入條件變量?
答:管程由四部分組成:①管程的名稱;②局部于管程內部的共享數(shù)據(jù)結構說明;③對該數(shù) 據(jù)結構進行操作的一組過程;④對局部于管程內部的共享數(shù)據(jù)設置初始值的語句;
當一個進程調用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期 間,如果該進程不釋放管程,則其它進程無法進入管程,被迫長時間地等待。為了解決這個 問題,引入了條件變量condition。
30.如何利用管程來解決生產者與消費者問題?
答:首先建立一個管程,命名為ProclucerConsumer,包括兩個過程:
(1)Put(item)過程。生產者利用該過程將自己生產的產品放到緩沖池,用整型變 量count 表示在緩沖池中已有的產品數(shù)目,當count≥n 時,表示緩沖池已滿,生產者須 等待。
(2)get(item)過程。消費者利用該過程從緩沖池中取出一個產品,當count≤0 時,表示緩沖池中已無可取的產品,消費者應等待。PC 管程可描述如下:
type producer-consumer =monitor Var in,out,count:integer;buffer:array[0,?,n-1]of item;notfull,notempty:condition;procedure entry dot(item)begin if count>=n then not full.wait;buffer(in):=nextp;in:=(in+1)mod n;count:=count+1;if notempty.queue then notempty.signal;end procedure entry get(item)begin if count<=0 then not full.wait;nextc:=buffer(out);out:=(out+1)mod n;count:=count-1;if notfull.quene then notfull.signal;11 end begin in:=out:=0;count:=0 end 在利用管程解決生產者一消費者問題時,其中的生產者和消費者可描述為: producer: begin pepeat produce an inem in nestp PC.put(item);until false;end consumer: begin repeat PC.get(item);consume the item in enxtc;until false;end 31.什么是AND信號量?試利用AND信號量寫出生產者一消費者問題的解法。
答:為解決并行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進 程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋放。解決生產者-消費者問題可描述如下: var mutex,empty,full: semaphore:=1,n,0;buffer: array[0,...,n-1] of item;in,out: integer:=0,0;begin parbegin producer: begin repeat ?
produce an item in nextp;?
wait(empty);wait(s1,s2,s3,...,sn);//s1,s2,...,sn為執(zhí)行生產者進程除empty 外其余的條件 wait(mutex);buffer(in):=nextp;in:=(in+1)mod n;signal(mutex);signal(full);signal(s1,s2,s3,...,sn);until false;end consumer: begin repeat wait(full);12 wait(k1,k2,k3,...,kn);//k1,k2,...,kn 為執(zhí)行消費者進程除full 外其余的條件
wait(mutex);nextc:=buffer(out);out:=(out+1)mod n;signal(mutex);signal(empty);signal(k1,k2,k3,...,kn);consume the item in nextc;until false;end parend end 32.什么是信號量集?試利用信號量集寫出讀者一寫者問題的解法。答:對AND信號量加以擴充,形成的信號量集合的讀寫機制。解法:Var RN integer;L,mx: semaphore:=RN,1;begin parbegin reader:begin repeat Swait(L,1,1);Swait(mx,1,1);?
perform read operation;?
Ssignal(L,1);until false end writer:begin repeat Swait(mx,1,1;L,RN,0);perform write operation;Ssignal(mx,1);until false end parend end 33.試比較進程間的低級與高級通信工具。
答:用戶用低級通信工具實現(xiàn)進程通信很不方便,效率低,通信對用戶不透明,所有操作都 必須由程序員來實現(xiàn),而高級通信工具彌補了這些缺陷,用戶直接利用操作系統(tǒng)提供的一組 通信命令,高效地傳送大量的數(shù)據(jù)。34.當前有哪幾種高級通信機制?
答:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。
35.消息隊列通信機制有哪幾方面的功能?
答:(1)構成消息(2)發(fā)送消息(3)接收梢息(4)互斥與同步。36.為什么要在OS 中引入線程?
答:在操作系統(tǒng)中引入線程,則是為了減少程序在并發(fā)執(zhí)行時所付出的時空開銷,使OS具 有更好的并發(fā)性,提高CPU的利用率。進程是分配資源的基本單位,而線程則是系統(tǒng)調度的 基本單位。
37.試說明線程具有哪些屬性?
答:(1)輕型實體(2)獨立調度和分派的基本單位(3)可并發(fā)執(zhí)行(4)共享進程資源。38.試從調度性,并發(fā)性,擁有資源及系統(tǒng)開銷方面對進程和線程進行比較。答:
(1)調度性。線程在OS 中作為調度和分派的基本單位,進程只作為資源擁有的基本單位。(2)并發(fā)性。進程可以并發(fā)執(zhí)行,一個進程的多個線程也可并發(fā)執(zhí)行。
(3)擁有資源。進程始終是擁有資源的基本單位,線程只擁有運行時必不可少的資源,本 身基本不擁有系統(tǒng)資源,但可以訪問隸屬進程的資源。
(4)系統(tǒng)開銷。操作系統(tǒng)在創(chuàng)建、撤消和切換進程時付出的開銷顯著大于線程。39.為了在多線程OS 中實現(xiàn)進程之間的同步與通信,通常提供了哪幾種同步機制? 答:同步功能可以控制程序流并訪問共享數(shù)據(jù),從而并發(fā)執(zhí)行多個線程。共有四種同步模型: 互斥鎖、讀寫鎖、條件變量和信號。
40.用于實現(xiàn)線程同步的私用信號量和公用信號量之間有何差別?
答:
(1)私用信號量。當某線程需利用信號量實現(xiàn)同一進程中各線程之間的同步時,可調用創(chuàng) 建信號量的命令來創(chuàng)建一個私用信號量,其數(shù)據(jù)結構存放在應用程序的地址空間中。
(2)公用信號量。公用信號量是為實現(xiàn)不同進程間或不同進程中各線程之間的同步而設置 的。其數(shù)據(jù)結構是存放在受保護的系統(tǒng)存儲區(qū)中,由OS為它分配空間并進行管理。41.何謂用戶級線程和內核支持線程?
答:
(1)用戶級線程:僅存在于用戶空間中的線程,無須內核支持。這種線程的創(chuàng)建、撤銷、線程間的同步與通信等功能,都無需利用系統(tǒng)調用實現(xiàn)。用戶級線程的切換通常發(fā)生在一個 應用進程的諸多線程之間,同樣無需內核支持。
(2)內核支持線程:在內核支持下運行的線程。無論是用戶進程中的線程,還是系統(tǒng)線程 中的線 程,其創(chuàng)建、撤銷和切換等都是依靠內核,在內核空間中實現(xiàn)的。在內核空間里還 為每個內核支持線程設置了線程控制塊,內核根據(jù)該控制塊感知某線程的存在并實施控制。42.試說明用戶級線程的實現(xiàn)方法。
答:用戶級線程是在用戶空間中的實現(xiàn)的,運行在“運行時系統(tǒng)”與“內核控制線程”的中 間系統(tǒng)上。運行時系統(tǒng)用于管理和控制線程的函數(shù)的集合。內核控制線程或輕型進程LWP 可通過系統(tǒng)調用獲得內核提供服務,利用LWP進程作為中間系統(tǒng)。43.試說明內核支持線程的實現(xiàn)方法。
答:系統(tǒng)在創(chuàng)建新進程時,分配一個任務數(shù)據(jù)區(qū)PTDA,其中包括若干個線程控制塊TCB 空間。創(chuàng)建一個線程分配一個TCB,有關信息寫入TCB,為之分配必要的資源。當PTDA 中的TCB 用完,而進程又有新線程時,只要所創(chuàng)建的線程數(shù)目未超過系統(tǒng)允許值,系統(tǒng)可 在為之分配新的TCB;在撤銷一個線程時,也應回收線程的所有資源和TCB。
第三章 第三章 處理機調度與死鎖
1.高級調度與低級調度的主要任務是什么?為什么要引入中級調度?
答:高級調度的主要任務是根據(jù)某種算法,把外存上處于后備隊列中的那些作業(yè)調入內存。低級調度是保存處理機的現(xiàn)場信息,按某種算法先取進程,再把處理器分配給進程。引入中級調度的主要目的是為了提高內存利用率和系統(tǒng)吞吐量。使那些暫時不能運行的進程不再占用內存資源,將它們調至外存等待,把進程狀態(tài)改為就緒駐外存狀態(tài)或掛起狀態(tài)。2.何謂作業(yè)、作業(yè)步和作業(yè)流?
答:作業(yè)包含通常的程序和數(shù)據(jù),還配有作業(yè)說明書。系統(tǒng)根據(jù)該說明書對程序的運行進行控制。批處理系統(tǒng)中是以作業(yè)為基本單位從外存調入內存。
作業(yè)步是指每個作業(yè)運行期間都必須經過若干個相對獨立相互關聯(lián)的順序加工的步驟。作業(yè)流是指若干個作業(yè)進入系統(tǒng)后依次存放在外存上形成的輸入作業(yè)流;在操作系統(tǒng)的控制下,逐個作業(yè)進程處理,于是形成了處理作業(yè)流。
3.在什么情況下需要使用作業(yè)控制塊JCB?其中包含了哪些內容?
答:每當作業(yè)進入系統(tǒng)時,系統(tǒng)便為每個作業(yè)建立一個作業(yè)控制塊JCB,根據(jù)作業(yè)類型將它插入到相應的后備隊列中。JCB 包含的內容通常有:1)作業(yè)標識2)用戶名稱3)用戶賬戶4)作業(yè)類型(CPU繁忙型、I/O 芳名型、批量型、終端型)5)作業(yè)狀態(tài)6)調度信息(優(yōu)先級、作業(yè)已運行)7)資源要求8)進入系統(tǒng)時間9)開始處理時間10)作業(yè)完成時間11)作業(yè)退出時間12)資源使用情況等 4.在作業(yè)調度中應如何確定接納多少個作業(yè)和接納哪些作業(yè)?
答:作業(yè)調度每次接納進入內存的作業(yè)數(shù),取決于多道程序度。應將哪些作業(yè)從外存調入內存,取決于采用的調度算法。最簡單的是先來服務調度算法,較常用的是短作業(yè)優(yōu)先調度算法和基于作業(yè)優(yōu)先級的調度算法。5.試說明低級調度的主要功能。
答:(1)保存處理機的現(xiàn)場信息(2)按某種算法選取進程(3)把處理機分配給進程。6.在搶占調度方式中,搶占的原則是什么?
答:搶占的原則有:時間片原則、優(yōu)先權原則、短作業(yè)優(yōu)先權原則等。7.在選擇調度方式和調度算法時,應遵循的準則是什么?
答:
(1)面向用戶的準則:周轉時間短、響應時間快、截止時間的保證、優(yōu)先權準則。(2)面向系統(tǒng)的準則:系統(tǒng)吞吐量高、處理機利用率好、各類資源的平衡利用。
8.在批處理系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)中,各采用哪幾種進程(作業(yè))調度算法? 答:批處理系統(tǒng)的調度算法:短作業(yè)優(yōu)先、優(yōu)先權、高響應比優(yōu)先、多級反饋隊列調度算法。分時系統(tǒng)的調度算法:時間片輪轉法。
實時系統(tǒng)的調度算法:最早截止時間優(yōu)先即EDF、最低松弛度優(yōu)先即LLF算法。9.何謂靜態(tài)和動態(tài)優(yōu)先級?確定靜態(tài)優(yōu)先級的依據(jù)是什么?
答:靜態(tài)優(yōu)先級是指在創(chuàng)建進程時確定且在進程的整個運行期間保持不變的優(yōu)先級。
動態(tài)優(yōu)先級是指在創(chuàng)建進程時賦予的優(yōu)先權,可以隨進程推進或隨其等待時間增加而改變的優(yōu)先級,可以獲得更好的調度性能。
確定進程優(yōu)先級的依據(jù):進程類型、進程對資源的需求和用戶要求。10.試比較FCFS和SPF兩種進程調度算法。
答:相同點:兩種調度算法都可以用于作業(yè)調度和進程調度。
不同點:FCFS調度算法每次都從后備隊列中選擇一個或多個最先進入該隊列的作業(yè),將它們調入內存、分配資源、創(chuàng)建進程、插入到就緒隊列。該算法有利于長作業(yè)/進程,不利于短作業(yè)/進程。SPF算法每次調度都從后備隊列中選擇一個或若 15 干個估計運行時間最短的作業(yè),調入內存中運行。該算法有利于短作業(yè)/進程,不利于長作業(yè)/進程。
11.在時間片輪轉法中,應如何確定時間片的大小?
答:時間片應略大于一次典型的交互需要的時間。一般應考慮三個因素:系統(tǒng)對相應時間的 要求、就緒隊列中進程的數(shù)目和系統(tǒng)的處理能力。
12.通過一個例子來說明通常的優(yōu)先級調度算法不能適用于實時系統(tǒng)?
答:實時系統(tǒng)的調度算法很多,主要是基于任務的開始截止時間和任務緊急/松弛程度的任務優(yōu)先級調度算法,通常的優(yōu)先級調度算法不能滿足實時系統(tǒng)的調度實時性要求而不適用。
13.為什么說多級反饋隊列調度算法能較好地滿足各方面用戶的需求?
答:(1)終端型作業(yè)用戶提交的作業(yè)大多屬于較小的交互型作業(yè),系統(tǒng)只要使這些作業(yè)在第一隊列規(guī)定的時間片內完成,終端作業(yè)用戶就會感到滿足。
(2)短批處理作業(yè)用戶,開始時像終端型作業(yè)一樣,如果在第一隊列中執(zhí)行一個時間片段即可完成,便可獲得與終端作業(yè)一樣的響應時間。對于稍長作業(yè),通常只需在第二和第三隊列各執(zhí)行一時間片即可完成,其周轉時間仍然較短。
(3)長批處理作業(yè),它將依次在第1,2,?,n個隊列中運行,然后再按輪轉方式運行,用戶不必擔心其作業(yè)長期得不到處理。所以,多級反饋隊列調度算法能滿足多用戶需求。14.為什么在實時系統(tǒng)中,要求系統(tǒng)(尤其是CPU)具有較強的處理能力?
答:實時系統(tǒng)中通常有著多個實時任務。若處理機的處理能力不夠強,有可能因為處理機忙不過來而使某些實時任務得不到及時處理,導致發(fā)生難以預料的后果。15.按照調度方式可將實時調度算法分為哪幾種? 答:可分為非搶占式和搶占式兩種算法。而非搶占式算法又分為非搶占式輪轉和優(yōu)先調度算法;搶占式調度算法又分為基于時鐘中斷的搶占式優(yōu)先權和立即搶占式優(yōu)先權調度算法。
16.什么是最早截止時間優(yōu)先調度算法?舉例說明。
答:根據(jù)任務的開始截止時間確定的任務優(yōu)先級調度算法。截止時間越早則優(yōu)先級越高。該算法要求在系統(tǒng)中保持一個實時任務就緒隊列,該隊列按各任務截止時間的先后排序。舉例:非搶占式調度方式用于非周期實時任務。圖3-9 是將該算法用于非搶占調度方式之例。該例中具有四個非周期任務,它們先后到達。系統(tǒng)首先調度任務1執(zhí)行,在任務1執(zhí)行期間,任務2、3又先后到達。由于任務3的開始截止時間早于任務2,故系統(tǒng)在任務1后將調度任務3執(zhí)行。在此期間又到達作業(yè)4,其開始截止時間仍是早于任務2的,故在任務3執(zhí)行完后,系統(tǒng)又調度任務4執(zhí)行,最后才調度任務2執(zhí)行。
圖3-9 EDF算法用于非搶占調度的調度方式
17.什么是最低松弛度優(yōu)先調度算法?舉例說明之。
答:該算法是根據(jù)任務緊急(或松弛)的程度,來確定任務的優(yōu)先級。任務的緊急程度愈高,為該任務所賦予的優(yōu)先級就愈高,以使之優(yōu)先執(zhí)行。例如,一個任務在200 ms 時必須完
成,而它本身所需的運行時間就有100 ms,因此,調度程序必須在100 ms 之前調度執(zhí)行,該任務的緊急程度(松弛程度)為100 ms。又如,另一任務在400 ms 時必須完成,它本身 需要運行 150 ms,則其松弛程度為 250 ms。
18.何謂死鎖?產生死鎖的原因和必要條件是什么? 答:死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處于這種僵持狀 態(tài)時,若無外力作用,它們都將無法再向前推進。
產生死鎖的原因為競爭資源和進程間推進順序非法。其必要條件是:互斥條件、請求和 保持條件、不剝奪條件、環(huán)路等待條件。
19.在解決死鎖問題的幾個方法中,哪種方法最易于實現(xiàn)?哪種方法使資源利用率最高? 答:解決死鎖的四種方法即預防、避免、檢測和解除死鎖中,預防死鎖最容易實現(xiàn); 避免死鎖使資源的利用率最高。
20.請詳細說明可通過哪些途徑預防死鎖。
答:(1)擯棄“請求和保持”條件,就是如果系統(tǒng)有足夠資源,便一次性把進程需要的所 有資源分配給它;
(2)擯棄“不剝奪”條件,就是已經擁有資源的進程,當它提出新資源請求而不能立即 滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;
(3)擯棄“環(huán)路等待”條件,就是將所有資源按類型排序標號,所有進程對資源的請求 必須嚴格按序號遞增的次序提出。
21.在銀行家算法的例子中,如果P0發(fā)出請求向量由Request(0,2,0)改為Request(0,1,0),問系統(tǒng)可否將資源分配給它?
答:(1)可以。銀行家算法各種資源數(shù)量分別為10、5、7,在T0時刻的資源分配如圖所示:
(2)具體分析如下:
①Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);系統(tǒng)先假定可為P0分配資源,并修改Available0,Allocation0和Need0向量,由此形成 的資源變化情況如下圖所示:
(3)P0請求資源:P0發(fā)出請求向量Requst0(0,1,0),系統(tǒng)按銀行家算法進行檢查:
① Requst0(0,1,0)<=Need0(7,4,3);② Requst0(0,1,0)<=Available(2,3,0);③ 系統(tǒng)暫時先假定可為P0分配資源,并修改______________有關數(shù)據(jù),如下圖所示
綜上所述系統(tǒng)可以將資源分配給它。
22.銀行家算法中出現(xiàn)以下資源分配,試問(1)該狀態(tài)是否安全?(2)若進程P2 提出 Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它?
試問:(1)該狀態(tài)是否安全?
(2)若進程P2提出請求Request(1,2,2,2)后,系統(tǒng)能否將資源分配給它? 答:(1)安全,因為存在安全序列{P0,P3,P4,P1,P2}(2)系統(tǒng)能分配資源,分析如下。
① Request(1,2,2,2)<= Need2(2,3,5,6);② Request(1,2,2,2)<= Available2(1,3,5,4);
③ 系統(tǒng)先假定可為P2分配資源,并修改Available2,Allocation2和Need2向量,由此形成的資源變化情況如下圖所示:
④ 再利用安全性算法檢查此時系統(tǒng)是否安全。如下圖
由此進行的安全性檢查得知,可以找到一個安全序列{P2,P0,P1,P3,P4}。
第四章
1.為什么要配置層次式存儲器?
答:設置多個存儲器可以使存儲器兩端的硬件能并行工作;采用多級存儲系統(tǒng),特別是 Cache 技術,是減輕存儲器帶寬對系統(tǒng)性能影響的最佳結構方案;在微處理機內部設置各 種緩沖存儲器,減輕對存儲器存取的壓力。增加CPU中寄存器數(shù)量大大緩解對存儲器壓力。2.可采用哪幾種方式將程序裝入內存?它們分別適用于何種場合?
答:(1)絕對裝入方式,只適用于單道程序環(huán)境。(2)可重定位裝入方式,適用于多道程序環(huán)境。
(3)動態(tài)運行時裝入方式,用于多道程序環(huán)境;不允許程序運行時在內存中移位置。3.何謂靜態(tài)鏈接?何謂裝入時動態(tài)鏈接和運行時的動態(tài)鏈接?P120 答:靜態(tài)鏈接是指在程序運行前,先將各目標模塊及它們所需的庫函數(shù),鏈接成一個完整的 裝配模塊,以后不再拆開的鏈接方式。
裝入時動態(tài)鏈接是指將用戶源程序編譯后得到的一組目標模塊,在裝入內存時采用邊裝 入邊鏈接的鏈接方式。
運行時動態(tài)鏈接是指對某些目標模塊的鏈接,是在程序執(zhí)行中需要該目標模塊時,才對 它進行的鏈接。
4.在進行程序鏈接時,應完成哪些工作?
答:由鏈接程序Linker將編譯后形成的一組目標模塊,以及它們需要的庫函數(shù)鏈接在一起,形成一個完整的裝入模塊Load Module。主要工作是修改程序內的相對地址和修改目標程 序中的外部調用標號。
5.在動態(tài)分區(qū)分配方式中,應如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?
答:在每個分區(qū)的起始部分,設置一些控制分區(qū)分配的信息,以及用于鏈接各分區(qū)所用的前 向指針;在分區(qū)尾部設置一個后向指針,通過前后向鏈接指針,將所有空閑分區(qū)鏈成一個雙 向鏈。當分區(qū)分配出去后,把狀態(tài)位由“0”改為“1”。
6.為什么要引入動態(tài)重定位?如何實現(xiàn)?
答:在程序執(zhí)行過程中,每當訪問指令或數(shù)據(jù)時,將要訪問的程序或數(shù)據(jù)的邏輯地址轉換成 物理地址,引入了動態(tài)重定位;
具體實現(xiàn)方法是在系統(tǒng)中增加一個重定位寄存器,用來裝入程序在內存中的起始地址,程序執(zhí)行時,真正訪問的內存地址是相對地址與重定位寄存器中的地址相加之和,從而實現(xiàn) 動態(tài)重定位。
7.在采用首次適應算法回收內存時,可能出現(xiàn)哪幾種情況?應怎樣處理這些情況? 答:在采用首次適應算法回收內存時可能出現(xiàn)4種情況:
(1)回收區(qū)前鄰空閑區(qū)。將回收區(qū)與前鄰空閑區(qū)合并,將前鄰空閑區(qū)大小修改為兩者之和。(2)回收區(qū)后鄰空閑區(qū)。將兩區(qū)合并,改后鄰空閑區(qū)始址為回收區(qū)始址,大小為兩者之和。
19(3)回收區(qū)前后均鄰空閑區(qū)。將三個分區(qū)合并,修改前鄰空閑區(qū)大小為三者之和。(4)回收區(qū)前后均不鄰空閑區(qū)。為回收區(qū)設置空閑區(qū)表項,填入回收區(qū)始址和大小并插入 空閑區(qū)隊列。8.令通用表達式。答:當
時,表示大小為、地址為x 的塊的伙伴系統(tǒng)地址,試寫出的;當
時,9.分區(qū)存儲管理中常用那些分配策略?比較它們的優(yōu)缺點。
答:分區(qū)存儲管理中的常用分配策略:首次適應算法、循環(huán)首次適應算法、最佳適應算法、最壞適應算法。
首次適應算法優(yōu)缺點:保留了高址部分的大空閑區(qū),有利于后來的大型作業(yè)分配;低址
部分不斷被劃分,留下許多難以利用的小空閑區(qū),每次查找都從低址開始增加了系統(tǒng)開銷。
循環(huán)首次適應算法優(yōu)缺點:內存空閑分區(qū)分布均勻,減少了查找系統(tǒng)開銷;缺乏大空閑分區(qū),導致不能裝入大型作業(yè)。
最佳適應算法優(yōu)缺點:每次分配給文件的都是最適合該文件大小的分區(qū),內存中留下許多難以利用的小空閑區(qū)。
最壞適應算法優(yōu)缺點:剩下空閑區(qū)不太小,產生碎片幾率小,對中小型文件分配分區(qū)操作有利;存儲器中缺乏大空閑區(qū),對大型文件分區(qū)分配不利。
10.在系統(tǒng)中引入對換后可帶來哪些好處?
答:交換技術將暫不需要的作業(yè)移到外存,讓出內存空間以調入其它作業(yè),交換到外存的作 業(yè)也可以被再次調入。目的是解決內存緊張問題,帶來的好處是進一步提高了內存利用率和 系統(tǒng)吞吐量。
11.為實現(xiàn)對換,系統(tǒng)應具備哪幾方面的功能?
答:系統(tǒng)應具備三方面功能:對換空間管理,進程換出,進程換入。
12.在以進程為單位進行對換時,每次是否都將整個進程換出?為什么?
答:不是。系統(tǒng)首先選擇處于阻塞狀態(tài)且優(yōu)先級最低的進程作為換出進程,然后啟動磁盤,將該進程的程序和數(shù)據(jù)傳送到磁盤的兌換區(qū)。若傳送過程未出錯,便可回收該進程占用的內 存空間,并對該進程的進程控制塊做相應修改,所以并不需要將整個進程換出。13.為實現(xiàn)分頁存儲管理,需要哪些硬件的支持?
答:動態(tài)重定位技術、虛擬存儲技術、多道程序設計技術。
14.較詳細的說明引入分段存儲管理是為了滿足用戶哪幾方面的需要。答:
1)方便編程。用戶通常把自己的作業(yè)按照邏輯關系劃分為若干段,每段都從0 編址,并 有自己名字和長度。因此,希望要訪問的邏輯地址是由段名和段內偏移量決定。
2)信息共享。在實現(xiàn)對程序和數(shù)據(jù)的共享時,是以信息邏輯單位為基礎。分頁系統(tǒng)中的頁 是存放信息的物理單位,無完整意義,不便于共享;段是信息的邏輯單位。為了實現(xiàn)段 的共享,希望存儲管理能與用戶程序分段的組織方式相適應。
3)信息保護。對信息的邏輯單位進行保護,分段能更有效方便地實現(xiàn)信息保護功能。
4)動態(tài)增長。在實際應用中,有些段特別是數(shù)據(jù)段,在使用過程中會不斷增長,事先又無
法確切知道增長多少。分段存儲管理方式能較好解決這個問題。
5)動態(tài)鏈接。運行時先將主程序對應的目標程序裝入內存并啟動運行,運行過程中又需要 調用某段時,才將該段調入內存鏈接。所以動態(tài)鏈接也要求以段作為管理單位。15.在具有快表的段頁式存儲管理方式中,如何實現(xiàn)地址變換?
答:在CPU給出有效地址后,由地址變換機構自動將頁號P送入高速緩沖寄存器,并將此 頁號與高速緩存中的所有頁號比較,若找到匹配頁號,表示要訪問的頁表項在快表中。可直 接從快表讀出該頁對應物理塊號,送到物理地址寄存器中。如快表中沒有對應頁表項,則再 訪問內存頁表,找到后,把從頁表項中讀出物理塊號送地址寄存器;同時修改快表,將此頁 表項存入快表。但若寄存器已滿,則OS必須找到合適的頁表項換出。16.為什么說為什么說分段系統(tǒng)比分頁系統(tǒng)更易于實現(xiàn)信息的共享和保護?
答:分頁系統(tǒng)的每個頁面是分散存儲的,為了實現(xiàn)信息共享和保護,頁面之間需要一一對應,為此需要建立大量的頁表項;而分段系統(tǒng)的每個段都從0 編址,并采用一段連續(xù)的地址空 間,在實現(xiàn)共享和保護時,只需為要共享和保護的程序設置一個段表項,將其中的基址與內 存地址一一對應就能夠實現(xiàn)。
17.分段和分頁存儲管理有何區(qū)別?
答:
(1)是信息的物理單位,分頁是為了實現(xiàn)離散分配方式,以消減內存的外部零頭,提高內 存利用率。段則是信息的邏輯單位,它含有一組相對完整的信息。
(2)頁的大小固定且由系統(tǒng)決定,由系統(tǒng)把邏輯地址劃分為頁號和頁內地址兩部分,是由 機械硬件實現(xiàn)的,因而在系統(tǒng)中只能有一種大小的的頁面;而段的長度卻不固定,決定于用戶 所編寫的程序,通常由編譯程序在對原程序進行編譯時,根據(jù)信息的性質來劃分。(3)分頁的作業(yè)地址空間是一維的,而分段作業(yè)地址空間則是二維的。18.試全面比較連續(xù)分配和離散分配方式.答:
(1)連續(xù)分配是指為一個用戶程序分配一個連續(xù)的地址空間,包括單一和分區(qū)兩種分配方 式。單一方式將內存分為系統(tǒng)區(qū)和用戶區(qū),最簡單,只用于單用戶單任務操作系統(tǒng);分區(qū)方 式分固定和動態(tài)分區(qū)。
(2)離散分配方式分為分頁、分段和段頁式存儲管理。分頁式存儲管理旨在提高內存利用 率,分段式存儲管理旨在滿足用戶(程序員)的需要,段頁式存儲管理則將兩者結合起來,具 有分段系統(tǒng)便于實現(xiàn)、可共享、易于保護和動態(tài)鏈接等優(yōu)點,又能像分頁系統(tǒng)很好解決外部 碎片及為各段可離散分配內存等問題,是比較有效的存儲管理方式;
19.虛擬存儲器有哪些特征?其中最本質的特征是什么?
答:虛擬存儲器有多次性、對換性、虛擬性三大特征。最本質的特征是虛擬性。
20.實現(xiàn)虛擬存儲器需要哪些硬件支持?
答:(1)請求分頁(段)的頁(段)表機制(2)缺頁(段)中斷機構(3)地址變換機構 21.實現(xiàn)虛擬存儲器需要哪幾個關鍵技術?
答:
(1)在分頁請求系統(tǒng)中是在分頁的基礎上,增加了請求調頁功能和頁面置換功能所形成的 頁式虛擬存儲系統(tǒng)。允許只裝入少數(shù)頁面的程序(及數(shù)據(jù)),便啟動運行。
(2)在請求分段系統(tǒng)中是在分段系統(tǒng)的基礎上,增加了請求調段及分段置換功能后形成的 段式虛擬存儲系統(tǒng)。允許只裝入少數(shù)段(而非所有段)的用戶程序和數(shù)據(jù),即可啟動運行。22.在請求分頁系統(tǒng)中,頁表應包括哪些數(shù)據(jù)項?每項的作用是什么?
答:頁表應包括:頁號、物理塊號、狀態(tài)位P、訪問字段A、修改位M和外存地址。
其中狀態(tài)位P 指示該頁是否調入內存,供程序訪問時參考;訪問字段A 用于記錄本頁在一 段時間內被訪問的次數(shù),或最近已有多長時間未被訪問,提供給置換算法選擇換出頁面時參 考;修改位M 表示該頁在調入內存后是否被修改過;外存地址用于指出該頁在外存上的地 址,通常是物理塊號,供調入該頁時使用。
23.在請求分頁系統(tǒng)中,應從何處將所需頁面調入內存?
答:請求分頁系統(tǒng)中的缺頁從何處調入內存分三種情況:
(1)系統(tǒng)擁有足夠對換區(qū)空間時,可以全部從對換區(qū)調入所需頁面,提高調頁速度。在進程運行前將與該進程有關的文件從文件區(qū)拷貝到對換區(qū)。
(2)系統(tǒng)缺少足夠對換區(qū)空間時,不被修改的文件直接從文件區(qū)調入;當換出這些頁面時,未被修改的不必換出,再調入時,仍從文件區(qū)直接調入。對于可能修改的,在換出時便調到對換區(qū),以后需要時再從對換區(qū)調入。
(3)UNIX 方式。未運行頁面從文件區(qū)調入。曾經運行過但被換出頁面,下次從對換區(qū)調入。UNIX 系統(tǒng)允許頁面共享,某進程請求的頁面有可能已調入內存,直接使用不再調入。24.在請求分頁系統(tǒng)中,常采用哪幾種頁面置換算法?
答:采用的頁面置換算法有:最佳置換算法和先進先出置換算法,最近最久未使用(LRU)置換算法,Clock置換算法,最少使用置換算法,頁面緩沖算法等。
25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式?為什么?
答:固定分配方式是基于進程的類型(交互型)或根據(jù)程序員、系統(tǒng)管理員的建議,為每個進程分配固定頁數(shù)的內存空間,整個運行期間不再改變;采用可變分配方式有全局置換和局部置換兩種,前者易于實現(xiàn),后者效率高。26.在一個請求分頁系統(tǒng)中,采用LRU 頁面置換算法時,假如一個作業(yè)的頁面走向為 4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5,當分配給該作業(yè)的物理塊數(shù)M分別為3和4時,試計算訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率 ? 比較所得結果 ? 答:當分配給該作業(yè)的物理塊數(shù)M為3時,缺頁7次,缺頁率: 7/12=0.583; 當分配給該作業(yè)的物理塊數(shù)M為4時,缺頁4次,缺頁率: 4/12=0.333.27.實現(xiàn)LRU算法所需的硬件支持是什么? 答:需要寄存器和棧等硬件支持。寄存器用于記錄某進程在內存中各頁的使用情況,棧用于 保存當前使用的各個頁面的頁面號。
28.試說明改進型 Clock 置換算法的基本原理.答:因為修改過的頁面在換出時付出的開銷比未被修改過的頁面大,在改進型Clock 算法 中,既考慮頁面的使用情況,還要增加置換代價的因素;在選擇頁面作為淘汰頁面時,把同 時滿足未使用過和未被修改作為首選淘汰頁面。29.說明請求分段系統(tǒng)中的缺頁中斷處理過程。答:請求分段系統(tǒng)中的缺頁中斷處理過程描述如下:
(1)根據(jù)當前執(zhí)行指令中的邏輯地址查頁表,判斷該頁是否在主存儲器中
(2)該頁標志為“0”形成缺頁中斷,中斷裝置通過交換PSW讓操作系統(tǒng)的中斷處理程序占用處理器。
(3)操作系統(tǒng)處理缺頁中斷處理的辦法是查主存分配表找一個空閑的主存塊,查頁表找出該頁在磁盤上位置,啟動磁盤讀出該頁信息。(4)把從磁盤上讀出的信息裝入找到的主存塊中。
(5)當頁面住處被裝入主存后,應修改頁表中對應的表目,填上該頁所占用的主存塊把標志置為“1”,表示該頁已在主存儲器中
(6)由于產生缺頁中斷時的那條指令并沒執(zhí)行完,所以在把頁面裝入之后應重新執(zhí)行被中 22 斷指令。
請求分段系統(tǒng)中的缺頁中斷處理過程如下圖所示:
30.如何實現(xiàn)分段共享 ? 答:在每個進程的段表中,用相應的表項指向共享段在內存中起始地址;配置相應的數(shù)據(jù)結構作為共享段表,在段表項中設置共享進程計數(shù)Count,每調用一次該共享段,Count值增 1,每當進程釋放一個共享段時,Count 減1,若減為0,則系統(tǒng)回收該共享段的物理內存,取消在共享段表中該段對應的表項;共享段應給不同的進程以不同的存取權限;不同的進程可以使用不同的段號去共享該段。
第五章
1.試說明設備控制器的組成。
答:由設備控制器與處理機的接口,設備控制器與設備的接口與I/O邏輯組成。
2.為了實現(xiàn)CPU與設備控制器間的通信,設備控制器應具備哪些功能?
答:接收和識別命令;數(shù)據(jù)交換;標識和報告設備狀態(tài);地址識別;數(shù)據(jù)緩沖;差錯控制。3.什么是字節(jié)多路通道?什么是數(shù)組選擇通道和數(shù)組多路通道?
答:(1)字節(jié)多路通道。按字節(jié)交叉方式工作的通道。通常含有許多非分配型子通道,數(shù) 量從幾十到數(shù)百個,每個子通道連接一臺I/O 設備,控制其I/O 操作。子通道按時間片輪 轉方式共享主通道。
(2)數(shù)組選擇通道。按數(shù)組方式傳送數(shù)據(jù),傳輸速率很高,每次只允許一個設備數(shù)據(jù)。
(3)數(shù)組多路通道。將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道的各子通道分時并行操作的優(yōu)點結合而成。含有多個非分配型子通道,具有很高的數(shù)據(jù)傳輸率和通道利用率。4.如何解決因通道不足而產生的瓶頸問題? 答:解決問題的有效方法是增加設備到主機間的通路而不增加通道,把一個設備連到多個控 23 制器上,控制器又連到多個通道上,這種多通路方式解決了“瓶頸”問題,提高了系統(tǒng)可靠性,個別通道或控制器的故障不會使設備和存儲器之間沒有通路。5.試對VESA 及PCI兩種總線進行比較。
答:VESA總線的設計思想是以低價占領市場。總線帶寬32位,最高傳輸速率132Mb/s。廣泛用于486微機。缺點是能連接的設備數(shù)僅為2~4 臺,控制器中無緩沖,難于適應處理 器速度的提高,不支持Pentium機。
PCI總線在CPU和外設間插入了復雜的管理層,協(xié)調數(shù)據(jù)傳輸和提供一致接口。管理 層中配有數(shù)據(jù)緩沖,放大了線路的驅動能力,最多支持10種外設,支持高時鐘頻率的CPU 運行,最大傳輸速率132Mb/s。可連接ISA、EISA 等傳統(tǒng)總線,又支持Pentium的64 位系統(tǒng),是基于奔騰等新一代微處理器而發(fā)展的總線。6.試說明推動I/O控制發(fā)展的主要因素是什么?
答:推動I/O 控制發(fā)展的主要動力在于盡量減少主機對I/O 控制的干預,把主機從繁雜的I/O控制事務中解脫出來,用更多的時間和精力去完成其數(shù)據(jù)處理任務。同時,中斷機制在計算機系統(tǒng)中的引入、DMA 控制器的出現(xiàn)和通道研制的成功使I/O 控制的發(fā)展具備了技術支持和成為可能。
7.有哪幾種I/O控制方式?各適用于何種場合?
答:共有四種I/O 控制方式。
(1)程序I/O 方式:早期計算機無中斷機構,處理機對I/O設備的控制采用程序I/O方式或稱忙等的方式。
(2)中斷驅動I/O 控制方式:適用于有中斷機構的計算機系統(tǒng)中。
(3)直接存儲器訪問(DMA)I/O 控制方式:適用于具有DMA控制器的計算機系統(tǒng)中。(4)I/O 通道控制方式:具有通道程序的計算機系統(tǒng)中。8.試說明DMA 的工作流程。
答:以從磁盤讀入數(shù)據(jù)為例,說明DMA的工作流程。當CPU要從磁盤讀入數(shù)據(jù)塊時,先向磁盤控制器發(fā)送一條讀命令。該命令被送到命令寄存器CR中。同時還發(fā)送本次要讀入數(shù)據(jù)的內存起始目標地址,送入內存地址寄存器MAR;本次要讀數(shù)據(jù)的字節(jié)數(shù)送入數(shù)據(jù)計數(shù)器DC,將磁盤中的源地址直接送DMA控制器的I/O 控制邏輯上。然后啟動DMA 控制器傳送數(shù)據(jù),以后CPU 便處理其它任務。整個數(shù)據(jù)傳送過程由DMA控制器控制。下圖為DMA方式的工作流程圖。
9.引入緩沖的主要原因是什么? 答:引入緩沖的主要原因是:
(1)緩和CPU與I/O 設備間速度不匹配的矛盾
(2)減少對CPU的中斷頻率,放寬對中斷響應時間的限制
(3)提高CPU與I/O 設備之間的并行性
10.在單緩沖情況下,為什么系統(tǒng)對一塊數(shù)據(jù)的處理時間為max(C,T)+M ? 答:在塊設備輸入時,先從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū),耗時為T;然后由操作系統(tǒng)將緩沖區(qū)數(shù)據(jù)送給用戶區(qū),耗時M;接下來由CPU 對塊數(shù)據(jù)進行計算,耗時C。在單緩沖情況下,磁盤把數(shù)據(jù)輸入到緩沖區(qū)的操作和CPU 對數(shù)據(jù)的計算過程可以并行展開,所以系統(tǒng)對每一整塊數(shù)據(jù)的處理時間為max(C, T)+ M。
11.為什么在雙緩沖情況下,系統(tǒng)對一塊數(shù)據(jù)的處理時間為max(T,C)? 答:寫入者花費時間T 將數(shù)據(jù)寫滿一個緩沖區(qū)后再寫另一個緩沖區(qū);讀出者花費時間M 將一個緩沖區(qū)數(shù)據(jù)送到用戶區(qū)后再傳送另一個緩沖區(qū)數(shù)據(jù),計算者讀出用戶區(qū)數(shù)據(jù)進行處理。由于將數(shù)據(jù)從緩沖區(qū)傳到用戶區(qū)操作必須與讀用戶區(qū)數(shù)據(jù)處理串行進行,而且可以與從外存?zhèn)魉蛿?shù)據(jù)填滿緩沖區(qū)的操作并行。因此耗時大約為max(C+M,T)。考慮M 是內存數(shù)據(jù)塊的移動耗時非常短暫可以省略,因此近似地認為系統(tǒng)對一塊數(shù)據(jù)處理時間為max(C,T)。
12.試繪圖說明把多緩沖用于輸出時的情況。答:多緩沖用于輸出的示意圖如下:
13.試說明收容輸入工作緩沖區(qū)和提取輸出工作緩沖區(qū)的工作情況。答:
① 收容輸入工作緩沖區(qū)的工作情況為:在輸入進程需要輸入數(shù)據(jù)時,調用GetBuf(EmptyQueue)過程,從EmptyQueue隊列的隊首摘下一個空緩沖區(qū),作為收容輸入工作緩沖區(qū)Hin。然后把數(shù)據(jù)輸入其中,裝滿后再調用PutBuf(InputQueue, Hin)過程,將該緩沖區(qū)掛在輸入隊列InputQueue的隊尾。
② 提取輸出工作緩沖區(qū)的工作情況為:當要輸出數(shù)據(jù)時,調用GetBuf(OutputQueue)過程,從輸出隊列的隊首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū)作為提取輸出工作緩沖區(qū)Sout。在數(shù)據(jù)提取完后,再調用PutBuf(EmptyQueue, Sout)過程,將該緩沖區(qū)掛到空緩沖隊列EmptyQueue的隊尾。
14.何謂安全分配方式和不安全分配方式? 答:
① 安全分配方式是指每當進程發(fā)出I/O 請求后,便進入阻塞狀態(tài),直到其I/O 操作完成時才被喚醒。在采用這種分配策略時,一旦進程已獲得某種設備資源后便阻塞,使它不可能再請求任何資源,而在它運行時又不保持任何資源。這種分配方式已經摒棄了造成死鎖的“請求和保持”條件,分配是安全的。缺點是進程進展緩慢,CPU與I/O 設備串行工作。
②不安全分配方式是指進程發(fā)出I/O 請求后仍繼續(xù)執(zhí)行,需要時又可發(fā)出第二個I/O 請求、第三個I/O 請求。僅當進程請求的設備已被另一個進程占有時,進程才進入阻塞狀態(tài)。優(yōu)點是一個進程可同時操作多個設備,進程推進迅速。缺點是分配不安全,可能具有“請求和保持”條件,可能造成死鎖。因此,在設備分配程序中需增加一個功能,用于對本次的設備分配是否會發(fā)生死鎖進行安全性計算,僅當計算結果表明分配安全的情況下才進行分配。15.為何要引入設備獨立性?如何實現(xiàn)設備獨立性?
答:現(xiàn)代操作系統(tǒng)為了提高系統(tǒng)的可適應性和可擴展性,都實現(xiàn)了設備獨立性或設備無關性。基本含義是應用程序獨立于具體使用的物理設備,應用程序以邏輯設備名請求使用某類設備。實現(xiàn)了設備獨立性功能可帶來兩方面的好處:(1)設備分配時的靈活性;(2)易于實現(xiàn)I/O 重定向。
為了實現(xiàn)設備的獨立性,應引入邏輯設備和物理設備概念。在應用程序中,使用邏輯設備名請求使用某類設備;系統(tǒng)執(zhí)行時是使用物理設備名。鑒于驅動程序是與硬件或設備緊密相關的軟件,必須在驅動程序之上設置一層設備獨立性軟件,執(zhí)行所有設備的公有操作、完成邏輯設備名到物理設備名的轉換(為此應設置一張邏輯設備表)并向用戶層(或文件層)軟件提供統(tǒng)一接口,從而實現(xiàn)設備的獨立性。
16.在考慮到設備的獨立性時,應如何分配獨占設備?
答:在考慮到設備的獨立性時,應按如下步驟來分配獨占設備:
(1)進程以邏輯設備名提出I/O請求。
(2)根據(jù)邏輯設備表獲得I/O請求的邏輯設備對應物理設備在系統(tǒng)設備表中的指針。
(3)檢索系統(tǒng)設備表,找到屬于請求類型、空閑可用且分配安全設備的設備控制表,將對應 設備分配給請求進程;未找到則等待等待喚醒和分配。
(4)到設備控制表中找出與其相連接的控制器的控制器控制表,根據(jù)狀態(tài)字段判斷是否忙 碌,忙則等待;否則將該控制器分配給進程。
(5)到該控制器的控制器控制表中找出與其相連接的通道的通道控制表,判斷通道是否忙 碌,忙則等待;否則將該通道分配給進程。
(6)只有在設備、控制器和通道三者都分配成功時,這次的設備分配才算成功,然后便可啟 動設備進行數(shù)據(jù)傳送。
17.何謂設備虛擬?實現(xiàn)設備虛擬時所依賴的關鍵技術是什么?
答:設備虛擬是指把獨占設備經過某種技術處理改造成虛擬設備。可虛擬設備是指一臺物理設備在采用虛擬技術后,可變成多臺邏輯上的虛擬設備,則可虛擬設備是可共享的設備,將它同時分配給多個進程使用,并對這些訪問該物理設備的先后次序進行控制。
18.試說明SPOOLing 系統(tǒng)的組成。
答:SPOOLing 系統(tǒng)由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進程 SPi 和輸出進程 SPo 三部分組成。
19.在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應為請求I/O 的進程提供哪些服務? 答:在實現(xiàn)后臺打印時,SPOOLing 系統(tǒng)應為請求 I/O的進程提供以下服務:
(1)由輸出進程在輸出井中申請一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;
(2)輸出進程為用戶進程申請空白用戶打印表,填入打印要求,將該表掛到請求打印隊列。(3)一旦打印機空閑,輸出進程便從請求打印隊列的隊首取出一張請求打印表,根據(jù)表中要求將要打印的數(shù)據(jù)從輸出井傳送到內存緩沖區(qū),再由打印機進行打印。20.試說明設備驅動程序具有哪些特點。答:設備驅動程序具有如下特點:
(1)是請求 I/O 進程與設備控制器間的一個通信程序;(2)驅動程序與 I/O 設備的特性緊密相關;(3)驅動程序與 I/O 控制方式緊密相關;
(4)驅動程序與硬件緊密相關,部分程序用匯編語言書寫,基本部分往往固化在ROM中。
21.試說明設備驅動程序應具有哪些功能? 答:設備驅動程序的主要功能包括:
(1)將接收到的抽象要求轉為具體要求;
(2)檢查用戶I/O請求合法性,了解I/O 設備狀態(tài),傳遞有關參數(shù),設置設備工作方式;(3)發(fā)出I/O 命令,啟動分配到的I/O設備,完成指定I/O 操作;(4)及時響應由控制器或通道發(fā)來的中斷請求,根據(jù)中斷類型調用相應中斷處理程序處理;(5)對于有通道的計算機,驅動程序還應該根據(jù)用戶 I/O 請求自動構成通道程序。22.設備中斷處理程序通常需完成哪些工作? 答:設備中斷處理程序通常需完成如下工作:(1)喚醒被阻塞的驅動程序進程;(2)保護被中斷進程的CPU環(huán)境;
27(3)分析中斷原因、轉入相應的設備中斷處理程序;
(4)進行中斷處理;(5)恢復被中斷進程。
23.磁盤訪問時間由哪幾部分組成?每部分時間應如何計算?
答:磁盤訪問時間由尋道時間Ts、旋轉延遲時間Tr、傳輸時間Tt 三部分組成。
(1)Ts 是啟動磁臂時間s 與磁頭移動n條磁道的時間和,即Ts = m × n + s。
(2)Tr是指定扇區(qū)移動到磁頭下面所經歷的時間。硬盤15000r/min時Tr為2ms;軟盤300或600r/min時Tr為50~100ms。
(3)Tt 是指數(shù)據(jù)從磁盤讀出或向磁盤寫入經歷的時間。Tt 的大小與每次讀/寫的字節(jié)數(shù)b和旋轉速度有關:Tt = b/rN。
24.目前常用的磁盤調度算法有哪幾種?每種算法優(yōu)先考慮的問題是什么? 答:目前常用的磁盤調度算法有先來先服務、最短尋道時間優(yōu)先及掃描等算法。
(1)先來先服務算法優(yōu)先考慮進程請求訪問磁盤的先后次序;
(2)最短尋道時間優(yōu)先算法優(yōu)先考慮要求訪問的磁道與當前磁頭所在磁道距離是否最近;(3)掃描算法考慮欲訪問的磁道與當前磁道間的距離,更優(yōu)先考慮磁頭當前的移動方向。25.為什么要引入磁盤高速緩沖?何謂磁盤高速緩沖?
答:目前磁盤的I/O速度遠低于內存的訪問速度,通常低上4-6個數(shù)量級。因此,磁盤I/O已成為計算機系統(tǒng)的瓶頸。為提高磁盤I/O的速度,便引入了磁盤高速緩沖。
磁盤高速緩沖是指利用內存中的存儲空間,暫存從磁盤中讀出的一系列盤塊中的信息。26.在設計磁盤高速緩沖時,如何實現(xiàn)數(shù)據(jù)交付? 答:數(shù)據(jù)交付是指將磁盤高速緩存中的數(shù)據(jù)傳給請求進程。當進程請求訪問某個盤塊中的數(shù)據(jù)時,由核心先查看磁盤高速緩沖,看其中是否存在所需盤塊數(shù)據(jù)的拷貝。若有便直接從中提取數(shù)據(jù)交付給請求進程,避免了訪盤操作,本次訪問速度提高4-6 個數(shù)量級;否則先從磁盤中將要訪問的數(shù)據(jù)讀入并交付給請求者進程,同時送高速緩存以便下次直接讀取。
27.何謂提前讀、延遲寫和虛擬盤?
答:提前讀是指在讀當前盤塊的同時,將下一個可能要訪問的盤塊數(shù)據(jù)讀入緩沖區(qū),以便需 要時直接從緩沖區(qū)中讀取,無需啟動磁盤。
延遲寫是指在寫盤塊時,將對應緩沖區(qū)中的立即寫數(shù)據(jù)暫時不立即寫以備不久之后再被訪問,只將它置上“延遲寫”標志并掛到空閑緩沖隊列的末尾。當移到空閑緩沖隊首并被分配出去時,才寫緩沖區(qū)中的數(shù)據(jù)。只要延遲寫塊仍在空閑緩沖隊列中,任何要求訪問都可直接從其中讀出數(shù)據(jù)或將數(shù)據(jù)寫入其中,而不必去訪問磁盤。
虛擬盤又稱RAM盤,是利用內存空間仿真磁盤。其設備驅動程序可以接受所有標準的磁盤操作,但這些操作不是在磁盤上而是在內存中,因此速度更快。
28.廉價磁盤冗余陣列是如何提高對磁盤的訪問速度和可靠性的?
答:廉價磁盤冗余陣列RAID是利用一臺磁盤陣列控制器,統(tǒng)一管理和控制一組(幾臺到幾 十臺)磁盤驅動器,組成高度可靠快速大容量的磁盤系統(tǒng)。
操作系統(tǒng)將RAID中的一組物理磁盤驅動器看作一個單個的邏輯磁盤驅動器。用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)可分布在陣列的所有磁盤中,并采取并行傳輸方式,大大減少數(shù)據(jù)傳輸時間和提高了可靠性。
第六章
1.何謂數(shù)據(jù)項、記錄和文件?
答:①數(shù)據(jù)項分為基本數(shù)據(jù)項和組合數(shù)據(jù)項。基本數(shù)據(jù)項描述一個對象某種屬性的字符集,28 具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個特性。組合數(shù)據(jù)項由若干數(shù)據(jù)項構成。②記錄是一組相關數(shù)據(jù)項的集合,用于描述一個對象某方面的屬性。③文件是具有文件名的一組相關信息的集合。
2.文件系統(tǒng)的模型可分為三層,試說明其每一層所包含的基本內容。答:第一層:對象及其屬性說明(文件、目錄、硬盤或磁帶存儲空間);
第二層:對對象操縱和管理的軟件集合(I/O控制層即設備驅動程序、基本文件系統(tǒng)即物理I/O層、基本I/O管理程序或文件組織模塊層、邏輯文件系統(tǒng)層)第三層:文件系統(tǒng)接口(命令接口/圖形化用戶接口與程序接口)。3.試說明用戶可以對文件施加的主要操作有哪些? 答:用戶通過文件系統(tǒng)提供的系統(tǒng)調用對文件實施操作。
(1)基本文件操作:創(chuàng)建、刪除、讀、寫、截斷、設置讀/寫位置等;
(2)文件打開和關閉操作:第一步通過檢索文件目錄找到指定文件屬性及其在外存上位置;第二步對文件實施讀寫等相應操作。
(3)其他文件操作:一是文件屬性操作;二是目錄操作;三是文件共享與文件系統(tǒng)操作的系統(tǒng)調用實現(xiàn)等。
4.何謂邏輯文件?何謂物理文件?
答:邏輯文件是物理文件中存儲的數(shù)據(jù)的一種視圖方式,不包含具體數(shù)據(jù),僅包含物理文件中數(shù)據(jù)的索引。物理文件又稱文件存儲結構,是指文件在外存上的存儲組織形式。5.如何提高對變長記錄順序文件的檢索速度?
答:基本方法是為變長記錄順序文件建立一張索引表,以主文件中每條記錄的長度及指向對應記錄的指針(即該記錄在邏輯地址空間的首址)作為相應表項的內容。由于索引表本身是一個定長記錄的順序文件,若將其按記錄鍵排序,則實現(xiàn)了對主文件方便快捷的直接存取。如果文件較大,應通過建立分組多級索引以進一步提高檢索效率。
6.試說明對索引文件和索引順序文件的檢索方法。
答: ① 索引文件的檢索,首先根據(jù)用戶(程序)提供的關鍵字,利用折半查找法檢索索引表,找到相應表項;再利用給出的指向記錄指針值,訪問對應記錄。
② 索引順序文件的檢索,首先利用用戶(程序)提供的關鍵字及查找方法,檢索索引表,找到該記錄在記錄組中的第一條記錄表項,得到第一個記錄在主文件中的位置;再利用順序查找法查找主文件,找到所要求的記錄。
7.試從檢索速度和存儲費用兩方面對索引文件和索引順序文件進行比較。
答:索引文件的主文件每條記錄配置一個索引項,存儲開銷N,檢索到具有指定關鍵字的記錄,平均查找N/2 條記錄。對于索引順序文件,每個記錄分組配置一個索引項,存儲開銷為N,檢索到具有指定關鍵字的記錄,平均需要查找N /2次。
8.試說明順序文件的結構及其優(yōu)點。
答:第一種是串結構:各記錄之間的順序與關鍵字無關。第二種是順序結構:指文件中的所有記錄按關鍵字(詞)排列。可以按關鍵詞長短排序或英文字母順序排序。順序文件的最佳應用場合是對諸記錄進行批量存取時,存取效率最高;只有順序文件才能存儲在磁帶上并有效工作。
9.在鏈接式文件中常用哪種鏈接方式?為什么?
答:鏈接方式分為隱式鏈接和顯式鏈接兩種形式。隱式鏈接是在文件目錄的每個目錄項中,都含有指向鏈接文件第一個盤塊和最后一個盤塊的指針。顯式鏈接則把用于鏈接文件各物理塊的指針,顯式地存放在內存的一張鏈接表中。
10.在MS-DOS中有兩個文件A 和B,A占用11、12、16和14 四個盤塊;B 占用13、18和20三個盤塊。試畫出在文件A和B中各盤塊間的鏈接情況及FAT的情況。答:如下圖所示。
11.NTFS文件系統(tǒng)對文件采用什么樣的物理結構?
答:在NTFS 文件系統(tǒng)中,以簇作為磁盤空間分配和回收的基本單位。一個文件占若干個簇,一個簇只屬于一個文件。
12.假定一個文件系統(tǒng)的組織方式與MS-DOS相似,在FAT中可有64K個指針,磁盤的盤塊大小為512B,試問該文件系統(tǒng)能否指引一個512MB 的磁盤?
解:512MB/512B=1M 個盤塊,而每個盤塊都應有一個指針來指示,所以應該有1M 個指針,因此若有64K 指針不能指引一個512MB的磁盤。
13.為了快速訪問,又易于更新,當數(shù)據(jù)為以下形式時,應選用何種文件組織方式。⑴ 不經常更新,經常隨機訪問;⑵經常更新,經常按一定順序訪問;⑶經常更新,經常隨機訪問;
答:以上三種宜分別采用(1)順序結構(2)索引順序結構(3)索引結構的組織方式。14.在UNIX 中,如果一個盤塊的大小為1KB,每個盤塊號占4個字節(jié),即每塊可放256個地址。請轉換下列文件的字節(jié)偏移量為物理地址。⑴9999; ⑵18000; ⑶420000 答:首先將邏輯文件的字節(jié)偏移量轉換為邏輯塊號和塊內偏移量,就是將[字節(jié)偏移量]/[盤塊大小],商為邏輯塊號,余數(shù)是塊內偏移量。在FCB中,第0-9個地址為直接地址,第10個為一次間接地址,第11個地址為二次間接地址,第12個地址為三次間接地址。
再將文件的邏輯塊號轉換為物理塊號。使用多重索引結構,在索引節(jié)點中根據(jù)邏輯塊號 通過直接索引或間接索引找到對應的物理塊號。
(1)9999/1024=9 余783,則邏輯塊號為9,直接索引第9個地址得到物理塊號,塊內偏移地址為783。
(2)18000/1024=17余592,則邏輯塊號為10<17<10+256,通過一次間接索引在第10個地址可得到物理塊號,塊內偏移地址為592。
(3)420000/1024=410 余160,則邏輯塊號為10+256<410,通過二次間接索引在第11個地址可得到一次間址,再由此得到二次間址,再找到物理塊號,其塊內偏移地址160。15.什么是索引文件?為什么要引入多級索引?
答:索引文件是指當記錄為可變長度時,通常為之建立一張索引表,并為每個記錄設置一個表項構成的文件。通常將索引非順序文件簡稱為索引文件。索引是為了是用戶的訪問速度更 30 快,多級索引結構可以有效的管理索引文件,可根據(jù)用戶的訪問情況多級處理。
16.試說明UNIX 系統(tǒng)中所采用的混合索引分配方式。答:混合索引分配方式是指將多種索引分配方式結合而成的分配方式。常見的是采用直接地址和一級索引聯(lián)合的分配方式,或兩級索引分配方式,甚至三級索引分配方式。在UNIXSystem Ⅴ和BSD UNIX 的索引結點中,都設置了13 個地址項,即iaddr(0)~iaddr(12),把所有地址項分成直接地址和間接地址。
17.對目錄管理的主要要求是什么?
答:實現(xiàn)按名存取、提高檢索目錄的速度、文件共享、允許文件重名。18.采用單級目錄能否滿足對目錄管理的主要要求?為什么?
答:不能。單級目錄在整個文件系統(tǒng)中只建立一張目錄表,每個文件占一個目錄項,其中含文件名、文件擴展名、文件長度、文件類型、文件物理地址、狀態(tài)位等其它文件屬性。單級只能實現(xiàn)目錄管理的基本功能,不能滿足查找速度、允許重名和文件共享的要求。19.目前廣泛應用的目錄結構有哪些?它有什么優(yōu)點?
答:現(xiàn)代操作系統(tǒng)都采用多級目錄結構。基本特點是查詢速度快、層次結構清晰、文件管理和保護易于實現(xiàn)。
20.Hash 檢索法有何優(yōu)點?又有何局限性?
答:Hash檢索法是系統(tǒng)把用戶提供的文件名變換為文件目錄的索引值,再利用該值查找目錄,有效提高目錄的檢索速度,但Hash 檢索法局限于非通配符文件名。21.在Hash檢索法中,如何解決“沖突”問題?
答:在Hash法查找目錄時,如果目錄表中相應目錄項為空,表示系統(tǒng)中無指定文件。如果文件名與指定文件名匹配,表示找到了目標文件,也就找到了文件的物理地址。如果目錄表中找到的相應文件名不匹配,則發(fā)生了沖突,需要Hash轉換形成新的索引值,返回第一步重新查找。
22.試說明在樹型目錄結構中線性檢索法的檢索過程,并給出相應的流程圖。
答:在樹型結構的目錄中,當有兩個或多個用戶共享一個子目錄或文件時,將共享文件或字母路連接到兩個或多個用戶目錄中,方便找到該文件。此時目錄結構不再是樹形結構,而是個有向非循環(huán)圖DGA。
23.有一計算機系統(tǒng)利用圖6-33 所示的位示圖來管理空閑盤塊。盤塊的大小為1KB,現(xiàn) 要為某文件分配量個盤塊,試說明盤塊的具體分配過程。
答:分配量個盤塊的過程如下:
⑴ 順序掃描位示圖,從中找到第一個值為0的二進制位,得到行號i=3,列號j=3。⑵ 將找到的二進制位轉換成對應盤塊號。盤塊號為:b=(3-1)*16+3=35; ⑶ 修改位示圖,令map[3,3]=1,并將該盤塊分配出去。
類似地,可使用相同的方法找到第二個值為0的二進制位,得到行號i=4,列號j=7,其對應的盤塊號為55,令map[i,j]=1,并將該盤塊分配出去。24.某操作系統(tǒng)磁盤文件空間共500塊,若用字長為32位的位示圖管理磁盤空間,試問:(1)位示圖需要多少字?
(2)第i字第j位對應的塊號是多少?
(3)給出申請/歸還一塊的工作流程。
答:(1)位示圖需要的字數(shù)計算:INT(500/32)=16 個字。
(2)塊號b=(i-1)*32+j(3)申請的過程:順序掃描位示圖、找到空閑塊并分配、修改位示圖map[i,j]=1。歸還的過程:找到回收盤塊在位示圖中的行和列,修改位示圖map[i,j]=0。
25.對空閑磁盤空間的管理常采用哪幾種分配方式?在UNIX系統(tǒng)中采用何種分配方式? 答:空閑表法、空閑鏈表法、位示圖法、成組鏈接法。UNIX系統(tǒng)采用的是成組鏈接法 26.基于索引節(jié)點的文件共享方式有何優(yōu)點?
答:優(yōu)點是建立新的共享鏈接時,不改變文件擁有者關系,僅把索引結點共享計數(shù)器加1,系統(tǒng)可獲悉了由多少個目錄項指向該文件。缺點是擁有者不能刪除自己的文件否則會出錯。27.基于符號鏈的文件共享方式有何優(yōu)點?
答:能夠通過網絡鏈接世界上 任何地方的計算機中的文件。
28.在一級系統(tǒng)容錯技術中,包括哪些容錯措施?什么是寫后讀校驗?
答:一級系統(tǒng)容錯技術包括雙份目錄、雙份文件分配表及寫后讀校驗等容錯措施。寫后讀校驗是每次從內存緩沖區(qū)向磁盤寫入一個數(shù)據(jù)塊后,又立即從磁盤上讀出該數(shù)據(jù)塊,并送至另一緩沖區(qū)中,再將該緩沖區(qū)內容與內存緩沖區(qū)中在寫后仍保留的數(shù)據(jù)進行比較。若兩者一致,才認為寫入成功,繼續(xù)寫下一個盤塊。否則重寫。若重寫后仍不一致,則認為盤塊缺陷,便將應寫入該盤塊的數(shù)據(jù),寫入到熱修復重定向區(qū)中。29.在第二級系統(tǒng)容錯技術中,包括哪些容錯措施?畫圖說明之。
答:第二級容錯技術包括磁盤鏡像和磁盤雙工兩種容錯措施。圖示如下:
30.何謂事務?如何保證事務的原子性?
答:事務是用于訪問和修改各種數(shù)據(jù)項的一個程序單位。
要保證事務的原子性必須要求一個事務在對一批數(shù)據(jù)執(zhí)行修改操作時,要么全部完成,32 用修改后的數(shù)據(jù)代替原來數(shù)據(jù),要么一個也不改,保持原來數(shù)據(jù)的一致性。
31.引入檢查點的目的是什么?引入檢查點后又如何進行恢復處理? 答:引入檢查點的目的是使對事務記錄表中事務記錄的清理工作經常化。
恢復處理由恢復例程來實現(xiàn)。首先查找事務記錄表,確定在最近檢查點以前開始執(zhí)行的 最后的事務Ti。找到Ti后再返回搜索事務記錄表,找到第一個檢查點記錄,從該檢查點開 始,返回搜索各個事務記錄,利用redo和undo 過程對他們進行相應的處理。32.為何引入共享鎖?如何用互斥鎖或共享鎖來實現(xiàn)事務的順序性?
答:引入共享鎖是為了提高運行效率。在給對象設置了互斥鎖和共享鎖的情況下,如果事務Ti要對Q執(zhí)行讀操作,只需獲得Q的共享鎖。如果對象Q已被互斥鎖鎖住,則Ti必須等待;否則便獲得共享鎖對Q執(zhí)行讀操作。如果Ti 要對Q 執(zhí)行寫操作,則Ti還要獲得Q的互斥鎖。若失敗則等待;成功則獲得互斥鎖并對Q執(zhí)行寫操作。33.當系統(tǒng)中有重復文件時,如何保證他們的一致性?
答:可以采用兩種方法:一是對所有的重復文件進行同樣的修改,二是用新修改的文件替換所有的重復文件。
34.如何檢索盤塊號的一致性?檢查時可能出現(xiàn)哪幾種情況?
答:為了保證盤塊號的一致性,先將計數(shù)器表中的所有表項初始化為0,用N 個空閑盤塊 號計數(shù)器組成的第一組計數(shù)器對從空閑盤塊表中讀出的盤塊號計數(shù),用N 個數(shù)據(jù)盤塊號計 數(shù)器組成的第二組計數(shù)器對從文件分配表中讀出的已分配給文件使用的盤快號計數(shù)。如果兩組計數(shù)中的對應數(shù)據(jù)互補則數(shù)據(jù)一致,反之則發(fā)生錯誤。
檢查時可能出現(xiàn)的情況:
(1)兩組計數(shù)器中盤塊K 的計數(shù)值均為0,應在空閑盤塊表中增加盤塊號K;(2)空閑盤塊號計數(shù)器中盤塊K 的計數(shù)值為2,應刪除一個空閑盤塊號K;
(3)空閑盤塊號計數(shù)器中盤塊號K 的計數(shù)值為0,而數(shù)據(jù)盤塊號計數(shù)器中盤塊號K 的 計數(shù)值大于1,則錯誤嚴重,存在數(shù)據(jù)丟失等事件,必須立即報告系統(tǒng)加以處理。