1、簡述操作系統(tǒng)的定義
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的一種系統(tǒng)軟件,它統(tǒng)一管理計(jì)算機(jī)系統(tǒng)的資源和控制程序的執(zhí)行。
2、在多道程序設(shè)計(jì)技術(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ì)算機(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)度算法都有自己的特性,因此,很難評價(jià)哪種算法是最好的。一般說來,選擇算法時可以考慮如下一些原則:
① 處理器利用率;
② 吞吐量;
③ 等待時間;
④ 響應(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ì)算機(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ù)算法
② 計(jì)算時間短的作業(yè)優(yōu)先算法
③ 響應(yīng)比最高者優(yōu)先算法
④ 優(yōu)先數(shù)調(diào)度算法
⑤ 均衡調(diào)度算法
16、計(jì)算機(jī)系統(tǒng)的資源包括哪些?
計(jì)算機(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)。