î 例題6
處理機(jī)為什么要區(qū)分核心態(tài)和用戶態(tài)兩種操作方式?什么情況下進(jìn)行兩種方式的轉(zhuǎn)換?
例題6解答
在CPU中運(yùn)行的操作系統(tǒng)程序和用戶程序?qū)?yīng)的機(jī)器指令集是不同的。操作系統(tǒng)程序使用所有指令,但用戶程序只能使用部分指令。從資源管理和程序控制執(zhí)行的角度出發(fā),將指令系統(tǒng)分為兩大部分:特權(quán)指令和非特權(quán)指令。在程序執(zhí)行時(shí),根據(jù)執(zhí)行程序?qū)Y源和機(jī)器指令的使用權(quán)限,把機(jī)器設(shè)置為兩個(gè)狀態(tài):核心態(tài)和用戶態(tài)。
也就是說(shuō),當(dāng)系統(tǒng)處于核心態(tài)時(shí),就可以使用所有指令、資源,并具備改變CPU狀態(tài)的能力;而當(dāng)CPU在用戶態(tài)時(shí),只能使用非特權(quán)指令。
如果CPU執(zhí)行用戶程序時(shí)(用戶態(tài))出現(xiàn)了中斷,系統(tǒng)將自行轉(zhuǎn)到中斷處理程序,CPU就由用戶態(tài)轉(zhuǎn)換到核心態(tài);中斷處理結(jié)束后,返回繼續(xù)執(zhí)行用戶程序,此時(shí)CPU又由核心態(tài)轉(zhuǎn)到用戶態(tài)。
î 例題7
為了讓用戶進(jìn)程互斥地進(jìn)入臨界區(qū),可以把整個(gè)臨界區(qū)實(shí)現(xiàn)成不可中斷的過(guò)程,即用戶有屏蔽所有中斷的能力。每當(dāng)用戶程序進(jìn)入臨界區(qū)的時(shí)候,屏蔽所有中斷;當(dāng)出了臨界區(qū)的時(shí)候,再開(kāi)放所有中斷。你認(rèn)為這種方法有什么缺點(diǎn)?
例題7解答
用戶進(jìn)程進(jìn)入臨界區(qū)時(shí)屏蔽所有中斷,應(yīng)當(dāng)也包括系統(tǒng)程序。若屏蔽的是用戶進(jìn)程,的確可以保護(hù)臨界資源,但若系統(tǒng)所發(fā)出的中斷也被屏蔽,則會(huì)引起錯(cuò)誤。雖然系統(tǒng)外中斷往往與當(dāng)前運(yùn)行的程序無(wú)關(guān),但如果是一些重要的硬件中斷,如電源故障等,就可能會(huì)引起錯(cuò)誤,故不可盲目屏蔽所有中斷。
î 例題8
操作系統(tǒng)有哪幾種類型,各自的工作方式是怎樣的?
例題8解答
操作系統(tǒng)的基本類型有:批處理系統(tǒng)、分時(shí)系統(tǒng)、實(shí)時(shí)系統(tǒng)、個(gè)人計(jì)算機(jī)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)。
(1)批處理系統(tǒng)。在批處理系統(tǒng)中,用戶不能直接控制其作業(yè)的運(yùn)行。一個(gè)作業(yè)包括程序、數(shù)據(jù)和作業(yè)說(shuō)明書(shū),作業(yè)說(shuō)明書(shū)中描述該作業(yè)的處理要求。用戶通過(guò)輸入設(shè)備將作業(yè)提交給系統(tǒng)后,系統(tǒng)將其放入外存的后備作業(yè)隊(duì)列中,系統(tǒng)按一定調(diào)度策略從后備作業(yè)隊(duì)列中選擇一個(gè)或多個(gè)作業(yè)進(jìn)入內(nèi)存,系統(tǒng)按作業(yè)說(shuō)明書(shū)運(yùn)行作業(yè)。即運(yùn)行過(guò)程中,用戶與作業(yè)間沒(méi)有交互作用,不能直接干預(yù)作業(yè)的運(yùn)行。
(2)分時(shí)系統(tǒng)。在分時(shí)系統(tǒng)中,主機(jī)連接著多個(gè)終端(Terminal),用戶使用各自的終端直接控制自己“程序”運(yùn)行,操作系統(tǒng)采用時(shí)間片輪轉(zhuǎn)的方法輪流為多個(gè)用戶服務(wù)。UNIX就是一個(gè)非常著名的分時(shí)系統(tǒng)。分時(shí)系統(tǒng)具有以下特點(diǎn):
多路性,微觀上各用戶輪流使用計(jì)算機(jī),宏觀上各用戶并行工作;
交互性,用戶直接控制自己的“程序”運(yùn)行,以人機(jī)會(huì)話方式工作;
獨(dú)立性,各用戶可獨(dú)立操作,互不干涉,不會(huì)發(fā)生混淆或破壞現(xiàn)象;
及時(shí)性,對(duì)用戶的請(qǐng)求能及時(shí)做出響應(yīng),尤其是較批處理系統(tǒng)響應(yīng)時(shí)間快。
(3)實(shí)時(shí)系統(tǒng)。實(shí)時(shí)系統(tǒng)往往是作為一控制設(shè)備使用的,它能夠及時(shí)響應(yīng)隨機(jī)發(fā)生的外部事件,并在嚴(yán)格的時(shí)間范圍內(nèi)完成事件的處理,其主要特點(diǎn)一是及時(shí)性、二是高可靠性。實(shí)時(shí)系統(tǒng)又分為實(shí)時(shí)控制系統(tǒng)(如工業(yè)過(guò)程控制)和實(shí)時(shí)信息處理系統(tǒng)(如航空、鐵路訂票系統(tǒng))兩種。
(4)個(gè)人計(jì)算機(jī)操作系統(tǒng)。由于近年來(lái)個(gè)人計(jì)算機(jī)(PC)的發(fā)展,個(gè)人計(jì)算機(jī)操作系統(tǒng)也有了很大發(fā)展,如Windows 2000系列操作系統(tǒng)、OS2等,它們都是較為著名的個(gè)人計(jì)算機(jī)操作系統(tǒng),用戶以聯(lián)機(jī)交互方式使用計(jì)算機(jī)。
(5)網(wǎng)絡(luò)操作系統(tǒng)。網(wǎng)絡(luò)操作系統(tǒng)是使網(wǎng)絡(luò)上各計(jì)算機(jī)能方便而有效地通信及共享網(wǎng)絡(luò)資源,為網(wǎng)絡(luò)用戶提供所需各種服務(wù)的軟件、有關(guān)協(xié)議的集合。包括網(wǎng)絡(luò)管理、通信、系統(tǒng)安全和多種服務(wù)。
(6)分布式操作系統(tǒng)。分布式操作系統(tǒng)也是通過(guò)網(wǎng)絡(luò)將具有自治功能的計(jì)算機(jī)互聯(lián),未實(shí)現(xiàn)通信和資源共享,并協(xié)作完成任務(wù)的。它更強(qiáng)調(diào)如何將某個(gè)大任務(wù)劃分為小任務(wù),分派到不同系統(tǒng)協(xié)作完成。
î 例題9
簡(jiǎn)述系統(tǒng)調(diào)用的實(shí)現(xiàn)過(guò)程。
例題9解答
系統(tǒng)調(diào)用是操作系統(tǒng)提供給軟件開(kāi)發(fā)人員的唯一接口,開(kāi)發(fā)人員可以利用它使用系統(tǒng)功能。OS核心中都有一組實(shí)現(xiàn)系統(tǒng)功能的過(guò)程(子程序),系統(tǒng)調(diào)用是對(duì)上述過(guò)程的調(diào)用。因此系統(tǒng)調(diào)用直觀上就像一個(gè)黑匣子,對(duì)用戶屏蔽操作系統(tǒng)的具體動(dòng)作而只提供有關(guān)的功能。
為了實(shí)現(xiàn)系統(tǒng)調(diào)用,系統(tǒng)設(shè)計(jì)人員還必須為實(shí)現(xiàn)各種系統(tǒng)調(diào)用功能的子程序編造入口地址表,每個(gè)入口地址都與相應(yīng)的系統(tǒng)子程序名相對(duì)應(yīng)。然后,由陷阱處理程序把陷阱指令中所包含的功能號(hào)與該入口地址表中的有關(guān)項(xiàng)對(duì)應(yīng)起來(lái),從而由系統(tǒng)調(diào)用功能號(hào)驅(qū)動(dòng)有關(guān)系統(tǒng)子程序執(zhí)行。
由于在系統(tǒng)調(diào)用處理結(jié)束后,用戶程序還需利用系統(tǒng)調(diào)用的返回結(jié)果繼續(xù)執(zhí)行,因此,在進(jìn)入系統(tǒng)調(diào)用處理之前,陷阱處理機(jī)構(gòu)還需保存處理機(jī)現(xiàn)場(chǎng)。再者,在系統(tǒng)調(diào)用處理結(jié)束之后,陷阱處理機(jī)構(gòu)還要恢復(fù)處理現(xiàn)場(chǎng)。在操作系統(tǒng)中,處理機(jī)的現(xiàn)場(chǎng)一般被保護(hù)在特定的內(nèi)存區(qū)或寄存器中。系統(tǒng)調(diào)用的處理過(guò)程如圖1-6所示。
有關(guān)系統(tǒng)調(diào)用的另一個(gè)問(wèn)題是參數(shù)傳遞問(wèn)題,不同的系統(tǒng)調(diào)用需要傳遞給系統(tǒng)子程序以不同的參數(shù)。而且,系統(tǒng)調(diào)用的執(zhí)行結(jié)果也是以參數(shù)形式返回給用戶程序的。一般把處理機(jī)在用戶程序中執(zhí)行稱為用戶態(tài),而把處理機(jī)在系統(tǒng)程序中執(zhí)行稱為系統(tǒng)態(tài)。
î 例題10
什么是中斷響應(yīng)?什么是中斷優(yōu)先級(jí)?什么是中斷屏敝?中斷處理分哪幾個(gè)階段?
例題10解答
CPU暫,F(xiàn)行程序而轉(zhuǎn)去響應(yīng)中斷請(qǐng)求的過(guò)程稱為中斷響應(yīng)。
為使系統(tǒng)能及時(shí)響應(yīng)并處理發(fā)生的所有中斷,系統(tǒng)根據(jù)引起中斷事件的重要性和緊迫程度,硬件將中斷源分為若干個(gè)級(jí)別,稱作中斷優(yōu)先級(jí)。
中斷屏蔽是指在提出中斷請(qǐng)求之后,CPU不予響應(yīng)的狀態(tài)。
中斷處理分為4個(gè)階段:
1.保存被中斷程序的現(xiàn)場(chǎng),其目的是為了在中斷處理完之后,可以返回到原來(lái)被中斷的地方繼續(xù)執(zhí)行;
2.分析中斷源,判斷中斷原因;
3.轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序;
4.恢復(fù)被中斷程序現(xiàn)場(chǎng),繼續(xù)執(zhí)行被中斷程序。