1、簡述操作系統(tǒng)的定義。
操作系統(tǒng)是計算機(jī)系統(tǒng)的一種系統(tǒng)軟件,它統(tǒng)一管理計算機(jī)系統(tǒng)的資源和控制程序的執(zhí)行。
2、在多道程序設(shè)計技術(shù)的系統(tǒng)中,操作系統(tǒng)怎樣才會占領(lǐng)中央處理器?
只有當(dāng)中斷裝置發(fā)現(xiàn)有事件發(fā)生時,它才會中斷當(dāng)前占用中央處理器的程序執(zhí)行,讓操作系統(tǒng)的處理服務(wù)程序占用中央處理器并執(zhí)行之。
3、簡述"刪除文件"操作的系統(tǒng)處理過程。
用戶用本操作向系統(tǒng)提出刪除一個文件的要求,系統(tǒng)執(zhí)行時把指定文件的名字從目錄和索引表中除去,并收回它所占用的存儲區(qū)域,但刪除一個文件前應(yīng)先關(guān)閉該文件。
4、對相關(guān)臨界區(qū)的管理有哪些要求?
為了使并發(fā)進(jìn)程能正確地執(zhí)行,對若干進(jìn)程共享某一變量(資源)的相關(guān)臨界區(qū)應(yīng)滿足以下三個要求:
① 一次最我讓一個進(jìn)程在臨界區(qū)中執(zhí)行,當(dāng)有進(jìn)程在臨界區(qū)中時,其他想進(jìn)入臨界區(qū)執(zhí)行的進(jìn)程必須等待;
② 任何一個進(jìn)入臨界區(qū)執(zhí)行的進(jìn)程必須在有限的時間內(nèi)退出臨界區(qū),即任何一個進(jìn)程都不應(yīng)該無限逗留在自己的臨界區(qū)中;
③ 不能強(qiáng)迫一個進(jìn)程無限地等待進(jìn)入它的臨界區(qū),即有進(jìn)程退出臨界區(qū)時應(yīng)讓下一個等待進(jìn)入臨界區(qū)的進(jìn)程進(jìn)入它的臨界區(qū)。
5、簡述解決死鎖問題的三種方法。
① 死鎖的防止。系統(tǒng)按預(yù)定的策略為進(jìn)程分配資源,這些分配策略能使死鎖的四個必要條件之一不成立,從而使系統(tǒng)不產(chǎn)生死鎖。
② 死鎖的避免。系統(tǒng)動態(tài)地測試資源分配情況,僅當(dāng)能確保系統(tǒng)安全時才給進(jìn)程分配資源。
③ 死鎖的檢測。對資源的申請和分配不加限制,只要有剩余的資源就呆把資源分配給申請者,操作系統(tǒng)要定時判斷系統(tǒng)是否出現(xiàn)了死鎖,當(dāng)有死鎖發(fā)生時設(shè)法解除死鎖。
6、從操作系統(tǒng)提供的服務(wù)出發(fā),操作系統(tǒng)可分哪幾類?
批處理操作系統(tǒng)、分時操作系統(tǒng)、實(shí)時操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)。
7、簡述計算機(jī)系統(tǒng)的中斷機(jī)制及其作用。
中斷機(jī)制包括硬件的中斷裝置和操作系統(tǒng)的中斷處理服務(wù)程序。
中斷裝置由一些特定的寄存器和控制線路組成,中央處理器和外圍設(shè)備等識別到的事件保存在特定的寄存器中,中央處理器每執(zhí)行完一條指令,均由中斷裝置判別是否有事件發(fā)生。
若無事件發(fā)生,CPU繼續(xù)執(zhí)行;若有事件發(fā)生,則中斷裝置中斷原占有CPU的程序的執(zhí)行,讓操作系統(tǒng)的處理事件服務(wù)程序占用CPU,對出現(xiàn)的事件進(jìn)行處理,事件處理完后,再讓原來的程序繼續(xù)占用CPU執(zhí)行。
8、選擇進(jìn)程調(diào)度算法的準(zhǔn)則是什么?
由于各種調(diào)度算法都有自己的特性,因此,很難評價哪種算法是最好的。一般說來,選擇算法時可以考慮如下一些原則: ① 處理器利用率; ② 吞吐量; ③ 等待時間; ④ 響應(yīng)時間。
在選擇調(diào)度算法前,應(yīng)考慮好采用的準(zhǔn)則,當(dāng)確定準(zhǔn)則后,通過對各種算法的評估,從中選擇出最合適的算法。
9、獨(dú)占設(shè)備采用哪種分配方式? 獨(dú)占設(shè)備通常采用靜態(tài)分配方式。
即在一個作業(yè)執(zhí)行前,將作業(yè)要使用的這類設(shè)備分配給作業(yè),在作業(yè)執(zhí)行期間均歸該作業(yè)占用,直到作業(yè)執(zhí)行結(jié)束才歸還。
10、產(chǎn)生死鎖的原因是什么?
① 系統(tǒng)資源不足; ② 進(jìn)程推進(jìn)順序不合適。
在早期的系統(tǒng)中,由于系統(tǒng)規(guī)模較小,結(jié)構(gòu)簡單,以及資源分配大多采用靜態(tài)分配法,使得操作系統(tǒng)死鎖問題的嚴(yán)重性未能充分暴露出來。但今天由于多道程序系統(tǒng),以至于數(shù)據(jù)系統(tǒng)的出現(xiàn),系統(tǒng)中的共享性和并行性的增加,軟件系統(tǒng)變得日益龐大和復(fù)雜等原因,使得系統(tǒng)出現(xiàn)死鎖現(xiàn)象的可能性大大增加。
11、何謂批處理操作系統(tǒng)?
用戶準(zhǔn)備好要執(zhí)行的程序、數(shù)據(jù)和控制作業(yè)執(zhí)行的說明書,由操作員輸入到計算機(jī)系統(tǒng)中等待處理。操作系統(tǒng)選擇作業(yè)并按作業(yè)說明書的要求自動控制作業(yè)的執(zhí)行。采用這種批量化處理作業(yè)的操作系統(tǒng)稱為批處理操作系統(tǒng)。
12、對特權(quán)指令的使用有什么限制?
只允許操作系統(tǒng)使用特權(quán)指令,用戶程序不能使用特權(quán)指令。
13、影響缺頁中斷率有哪幾個主要因素? 影響缺頁中斷率的因素有四個:
① 分配給作業(yè)的主存塊數(shù)多則缺頁率低,反之缺頁中斷率就高。
② 頁面大,缺頁中斷率低;頁面小缺頁中斷率高。
③ 程序編制方法。以數(shù)組運(yùn)算為例,如果每一行元素存放在一頁中,則按行處理各元素缺頁中斷率低;反之,按列處理各元素,則缺頁中斷率高。
④ 頁面調(diào)度算法對缺頁中斷率影響很大,但不可能找到一種最佳算法。
14、磁盤移臂調(diào)度的目的是什么?常用移臂調(diào)度算法有哪些?
磁盤移臂調(diào)度的目的是盡可能地減少輸入輸出操作中的尋找時間。 常用的移臂調(diào)度算法有: ① 先來先服務(wù)算法 ② 最短尋找時間優(yōu)先算法 ③ 電梯調(diào)度算法 ④ 單向掃描算法。
15、常用的作業(yè)調(diào)度算法有哪些?
① 先來先服務(wù)算法 ② 計算時間短的作業(yè)優(yōu)先算法 ③ 響應(yīng)比最高者優(yōu)先算法 ④ 優(yōu)先數(shù)調(diào)度算法 ⑤ 均衡調(diào)度算法
16、計算機(jī)系統(tǒng)的資源包括哪些?
計算機(jī)系統(tǒng)的資源包括兩大類:硬件資源和軟件資源。
硬件資源主要有中央處理器、主存儲器、輔助存儲器和各種輸入輸出設(shè)備。 軟件資源有編譯程序、編輯程序等各種程序以及有關(guān)數(shù)據(jù)。
17、CPU在管態(tài)和目態(tài)下工作有何不同?
當(dāng)中央處理器處于管態(tài)時,可以執(zhí)行包括特權(quán)指令在內(nèi)的一切面器指令,而在目態(tài)下工作時不允許執(zhí)行特權(quán)指令。
18、何為頁表和快表?它們各起什么作用?
頁表指出邏輯地址中的頁號與所占主存塊號的對應(yīng)關(guān)系。
作用:頁式存儲管理在用動態(tài)重定位方式裝入作業(yè)時,要利用頁表做地址轉(zhuǎn)換工作。 快表就是存放在高速緩沖存儲器的部分頁表。它起頁表相同的作用。
由于采用頁表做地址轉(zhuǎn)換,讀寫內(nèi)存數(shù)據(jù)時CPU要訪問兩次主存。有了快表,有時只要訪問一次高速緩沖存儲器,一次主存,這樣可加速查找并提高指令執(zhí)行速度。
19、作業(yè)在系統(tǒng)中有哪幾種狀態(tài)?
一個作業(yè)進(jìn)入系統(tǒng)到運(yùn)行結(jié)束,一般要經(jīng)歷進(jìn)入、后備、運(yùn)行和完成四個階段,相應(yīng)地,作業(yè)亦有進(jìn)入、后備、運(yùn)行和完成四種狀態(tài)。
① 進(jìn)入狀態(tài):作業(yè)的信息從輸入設(shè)備上預(yù)輸入到輸入井,此時稱為作業(yè)處于進(jìn)入狀態(tài)。 ② 后備狀態(tài):當(dāng)作業(yè)的全部信息都已輸入,且由操作系統(tǒng)將其存放在輸入井中,此時稱作業(yè)處于后備狀態(tài)。系統(tǒng)將所有處于后備狀態(tài)的作業(yè)組成后備作業(yè)隊(duì)列,等待作業(yè)調(diào)度程序的調(diào)度。
③ 運(yùn)行狀態(tài):一個后備作業(yè)被作業(yè)調(diào)度程序選中,分配了必要的資源,調(diào)入內(nèi)存運(yùn)行,稱作業(yè)處于運(yùn)行狀態(tài)。
④ 完成狀態(tài):當(dāng)作業(yè)正常運(yùn)行完畢或因發(fā)生錯誤非正常終止時,作業(yè)進(jìn)入這完成狀態(tài)。
20、用fork創(chuàng)建新進(jìn)程,它要做哪些工作? 由fork創(chuàng)建新進(jìn)程的主要工作有:
① 在進(jìn)程表proc[ ]中為子進(jìn)程找一個空閑的表項(xiàng),用來存放子進(jìn)程的proc結(jié)構(gòu); ② 為子進(jìn)程分配一個唯一的標(biāo)識號;
③ 把父進(jìn)程中的字段復(fù)制到子進(jìn)程的proc中,并把p - pid置為分配到的進(jìn)程標(biāo)識號,把p-pid置為父進(jìn)程的標(biāo)識號,把p-stat置為創(chuàng)建狀態(tài);
④ 按父進(jìn)程中p-size所示的長度為子進(jìn)程申請分配內(nèi)存。若有足夠的內(nèi)存,則把父進(jìn)程的user結(jié)構(gòu)、棧和用戶數(shù)據(jù)區(qū)全部復(fù)制到子進(jìn)程的空間中;若無足夠的內(nèi)存,則在磁盤對換區(qū)中分配存儲空間,然后復(fù)制到對換區(qū)中,置于進(jìn)程狀態(tài)為就緒狀態(tài)。
26、共享設(shè)備允許多個作業(yè)同時使用,這里的"同時使用"的含義是什么?
"同時使用"的含義是多個作業(yè)可以交替地啟動共享設(shè)備,在某一時刻仍只有一個作業(yè)占有。
27、簡述"打開文件"操作的系統(tǒng)處理過程。
用戶要使用一個已經(jīng)存放在存儲介質(zhì)上的文件前,必須先提出"打開文件"要求。這時用戶也必須向系統(tǒng)提供參數(shù):用戶名、文件名、存取方式、存儲設(shè)備類型、口令等。系統(tǒng)在接到用戶的"打開文件"要求后,找出該用戶的文件目錄,當(dāng)文件目錄不在主存儲器中時還必須把它讀到主存儲器中;然后檢索文件目錄,指出與用戶要求相符合的目錄項(xiàng),取出文件存放的物理地址。
對索引文件還必須把該文件的索引表存放在主存儲器中,以便后繼的讀寫操作能快速進(jìn)行。
28、什么是"前臺"作業(yè)、"后臺"作業(yè)?為什么對"前臺"作業(yè)要及時響應(yīng)?
批處理操作系統(tǒng)實(shí)現(xiàn)自動控制無需人為干預(yù),分時操作系統(tǒng)實(shí)現(xiàn)了人機(jī)交互對話,這兩種操作系統(tǒng)具有各自的優(yōu)點(diǎn)。為了充分發(fā)揮批處理系統(tǒng)和分時系統(tǒng)的優(yōu)點(diǎn),在一個計算機(jī)系統(tǒng)上配置的操作系統(tǒng)往往既具有批處理能力,又有提供分時交互的能力。這樣,用戶可以先在分時系統(tǒng)的控制下,以交互式輸入、調(diào)試和修改自己的程序;然后,可以把調(diào)試好的程序轉(zhuǎn)交給批處理系統(tǒng)自動控制其執(zhí)行而產(chǎn)生結(jié)果。這些由分時系統(tǒng)控制的作業(yè)稱為"前臺"作業(yè),而那些由批處理系統(tǒng)控制的作業(yè)稱為"后臺"作業(yè)。
在這樣的系統(tǒng)中,對前臺作業(yè)應(yīng)該及時響應(yīng),使用戶滿意;對后臺作業(yè)可以按一定的原則進(jìn)行組合,以提高系統(tǒng)的效率。
29、存儲型設(shè)備和輸入輸出型設(shè)備的輸入輸出操作的信息傳輸單位有何不同?
存儲型設(shè)備輸入輸出操作的信息傳輸單位是"塊",而輸入輸出型設(shè)備輸入輸出操作的信息傳輸單位是"字符"。
30、什么是計算機(jī)系統(tǒng)?它由哪幾部分組成?
計算機(jī)系統(tǒng)是按用戶的要求接收和存儲信息,自動進(jìn)行數(shù)據(jù)處理并輸出結(jié)果信息的系統(tǒng)。
計算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成。硬件系統(tǒng)是計算機(jī)系統(tǒng)賴以工作的實(shí)體,軟件系統(tǒng)保證計算機(jī)系統(tǒng)按用戶指定的要求協(xié)調(diào)地工作。
31、計算機(jī)系統(tǒng)怎樣實(shí)現(xiàn)存儲保護(hù)?
一般硬件設(shè)置了基址寄存器和限長寄存器。
中央處理器在目態(tài)下執(zhí)行系統(tǒng)中,對每個訪問主存的地址都進(jìn)行核對,若能滿足:基址寄存器值≤訪問地址≤基址寄存器值+限長寄存值,則允許訪問,否則不允許訪問。并且不允許用戶程序隨意修改這兩個寄存器的值。這就實(shí)現(xiàn)了存儲保護(hù)。
32、給出系統(tǒng)總體上的中斷處理過程。
CPU每執(zhí)行完一條指令就去掃描中斷寄存器,檢查是否有中斷發(fā)生,若沒有中斷就繼續(xù)執(zhí)行下條指令;若有中斷發(fā)生就轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序。中斷處理過程可粗略的分為以下四個過程:
① 保護(hù)當(dāng)前正在運(yùn)行程序的現(xiàn)場;
② 分析是何種中斷,以便轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序; ③ 執(zhí)行相應(yīng)的中斷處理程序; ④ 恢復(fù)被中斷程序的現(xiàn)場。
33、死鎖發(fā)生的必要條件有哪些?
發(fā)生死鎖的必要條件有四點(diǎn):互斥條件、不可搶占條件、部分分配條件和循環(huán)等待條件。
① 互斥條件:系統(tǒng)中存在一個資源一次只能被一個進(jìn)程所使用;
② 非搶占條件:系統(tǒng)中存在一個資源僅能被占有它的進(jìn)程所釋放,而不能被別的進(jìn)程強(qiáng)行搶占。
③ 占有并等待條件:系統(tǒng)中存在一個進(jìn)程已占有了分給它的資源,但仍然等待其他資源。 ④ 循環(huán)等待條件:在系統(tǒng)中存在一個由若干進(jìn)程形成的環(huán)形請求鏈,其中的每一個進(jìn)程均占有若干種資源中的某一種,同時每個進(jìn)程還要求(鏈上)下一個進(jìn)程所占有的資源。
34、用戶程序中通常用什么方式指定要使用的設(shè)備?為什么?
用戶程序中通常用"設(shè)備類、相對號"請求要使用的設(shè)備,即不具體指定要哪一臺設(shè)備,而是提出要申請哪類設(shè)備多少臺。
這種方式使設(shè)備分配適應(yīng)性好、靈活性強(qiáng)。
否則若用絕對號來指定設(shè)備,如果這臺設(shè)備已被占用或有故障時,該作業(yè)就無法裝入主存中。
35、進(jìn)程調(diào)度中"可搶占"和"非搶占"兩種方式,哪一種系統(tǒng)的開銷更大?為什么? 可搶占式會引起系統(tǒng)的開銷更大。
可搶占式調(diào)度是嚴(yán)格保證任何時刻,讓具有最高優(yōu)先數(shù)(權(quán))的進(jìn)程占有處理機(jī)運(yùn)行,因此增加了處理機(jī)調(diào)度的時機(jī),引起為退出處理機(jī)的進(jìn)程保留現(xiàn)場,為占有處理機(jī)的進(jìn)程恢復(fù)現(xiàn)場等時間(和空間)開銷增大。
36、一個含五個邏輯記錄的文件,系統(tǒng)把它以鏈接結(jié)構(gòu)的形式組織在磁盤上,每個記錄占用一個磁盤塊,現(xiàn)要求在第一記錄和第二記錄之間插入一個新記錄,簡述它的操作過程。