os练习题4
高級(jí)程序設(shè)計(jì)語(yǔ)言的編譯器是一類(lèi)應(yīng)用軟件,是高級(jí)程序設(shè)計(jì)語(yǔ)言和低級(jí)程序設(shè)計(jì)語(yǔ)言之間的橋梁,將我們?nèi)菀桌斫夂陀玫母呒?jí)程序設(shè)計(jì)語(yǔ)言寫(xiě)成的代碼翻譯成目標(biāo)機(jī)器所能識(shí)別和運(yùn)行的機(jī)器語(yǔ)言代碼。故,D項(xiàng)不是操作系統(tǒng)的作用。
CPU發(fā)出一條通道命令,然后由通道和外設(shè)交換數(shù)據(jù),之后CPU就做其它的事情,通道和外設(shè)交換完數(shù)據(jù)后再向CPU匯報(bào),CPU再處理 通道與CPU分時(shí)使用內(nèi)存,就可以實(shí)現(xiàn)CPU與外設(shè)的并行工作。
管道是?單向的、先進(jìn)先出的?,它把一個(gè)進(jìn)程的輸出和另一個(gè)進(jìn)程的輸入連接在一起。一個(gè)進(jìn)程(寫(xiě)進(jìn)程)在管道的?尾部寫(xiě)入數(shù)據(jù)?,另一個(gè)進(jìn)程(讀進(jìn)程)從管道的?頭部讀出數(shù)據(jù)?。
管道通信,是指用于連接一個(gè)讀進(jìn)程和一個(gè)寫(xiě)進(jìn)程,以實(shí)現(xiàn)它們之間通信的一個(gè)文件,又稱(chēng)為pipe文件。向管道(共享文件)提供輸入的發(fā)送進(jìn)程(即寫(xiě)進(jìn)程),以字符流形式將大量的數(shù)據(jù)送入管道;而接收管道輸出的接收進(jìn)程(讀進(jìn)程),則從管道中接收數(shù)據(jù)。由于發(fā)送進(jìn)程和接收進(jìn)程是利用管道進(jìn)行通信的,故又稱(chēng)為管道通信。
為了協(xié)調(diào)雙方的通信,管道進(jìn)程必須提供以下三方的協(xié)調(diào)能力:
- 互斥:當(dāng)一個(gè)進(jìn)程正在對(duì)pipe進(jìn)行讀/寫(xiě)操作時(shí),其它進(jìn)程必須等待。
- 同步:當(dāng)寫(xiě)進(jìn)程把一定量數(shù)據(jù)寫(xiě)入pipe時(shí),便去睡眠等待,直到讀進(jìn)程取走數(shù)據(jù)后,喚醒寫(xiě)進(jìn)程。讀進(jìn)程讀一空pipe時(shí),也應(yīng)該睡眠等待,直到寫(xiě)進(jìn)程將數(shù)據(jù)寫(xiě)入管道,才將之喚醒。
- 確定對(duì)方是否存在,只有確定了對(duì)方已經(jīng)存在時(shí),才能進(jìn)行通信。
錯(cuò),保存在任務(wù)棧中,系統(tǒng)棧要給下一個(gè)要運(yùn)行的進(jìn)程用
虛擬存儲(chǔ)器的最大容量=min(計(jì)算機(jī)字長(zhǎng),內(nèi)存容量和硬盤(pán)容量之和)
引入線程的系統(tǒng)中,一個(gè)進(jìn)程中的各個(gè)線程可以共享其隸屬進(jìn)程的資源,包括一個(gè)進(jìn)程的代碼段、數(shù)據(jù)段及所擁有系統(tǒng)資源,如已打開(kāi)的文件、I/O設(shè)備等。而為了保證線程的獨(dú)立運(yùn)行,每個(gè)線程都應(yīng)該包含獨(dú)立的堆棧和CPU寄存器狀態(tài),這些是不能共享的。
高響應(yīng)比優(yōu)先算法特點(diǎn):
①當(dāng)?shù)却龝r(shí)間相同時(shí),短進(jìn)程的優(yōu)先權(quán)高;
②當(dāng)需要運(yùn)行時(shí)間相同時(shí),作業(yè)的優(yōu)先權(quán)又取決于等待時(shí)間,相當(dāng)于先到先服務(wù);
③長(zhǎng)作業(yè)的優(yōu)先級(jí)可以隨著等待時(shí)間的增加而提高,因此長(zhǎng)作業(yè)等待一段時(shí)間后仍能得到調(diào)度。
三個(gè)并發(fā)進(jìn)程分別需要3、4、5臺(tái)設(shè)備,當(dāng)系統(tǒng)只有(3-1)+(4-1)+(5-1)=9臺(tái)設(shè)備時(shí),第一個(gè)進(jìn)程分配2臺(tái),第二個(gè)進(jìn)程分配3臺(tái),第三個(gè)進(jìn)程分配4臺(tái)。這種情況下,三個(gè)進(jìn)程均無(wú)法繼續(xù)執(zhí)行下去,發(fā)生死鎖。當(dāng)系統(tǒng)中再增加1臺(tái)設(shè)備,也就是總共10臺(tái)設(shè)備時(shí),這最后1臺(tái)設(shè)備分配給任意一個(gè)進(jìn)程都可以順利執(zhí)行完成,因此保證系統(tǒng)不發(fā)生死鎖的最小設(shè)備數(shù)為10。
操作系統(tǒng)可以管理系統(tǒng)的各種資源,包括所有硬件資源,如CPU、存儲(chǔ)器、輸入輸出設(shè)備和軟件資源等,如程序和數(shù)據(jù)等。 中斷是指CPU對(duì)系統(tǒng)發(fā)生的某個(gè)事件作出的一種反應(yīng),即CPU暫停正在執(zhí)行的程序,保留現(xiàn)場(chǎng)后自動(dòng)轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,處理完該事件后再返回?cái)帱c(diǎn)繼續(xù)執(zhí)行被“打斷”的程序。
文件分區(qū)表是將大表的數(shù)據(jù)分成稱(chēng)為分區(qū)的許多小的子集,類(lèi)型有FAT32,NTFST32,NTFS。另外,分區(qū)表的種類(lèi)劃分主要有:range,list,和hash分區(qū)。劃分依據(jù)主要是根據(jù)其表內(nèi)部屬性。同時(shí),分區(qū)表可以創(chuàng)建其獨(dú)特的分區(qū)索引。倘若硬盤(pán)丟失了分區(qū)表,數(shù)據(jù)就無(wú)法按順序讀取和寫(xiě)入,導(dǎo)致無(wú)法操作。
inode是保存文件元信息的區(qū)域
一般情況下,文件名和inode號(hào)碼是"一一對(duì)應(yīng)"關(guān)系,每個(gè)inode號(hào)碼對(duì)應(yīng)一個(gè)文件名。但是,Unix/Linux系統(tǒng)允許,多個(gè)文件名指向同一個(gè)inode號(hào)碼。
這意味著,可以用不同的文件名訪問(wèn)同樣的內(nèi)容;對(duì)文件內(nèi)容進(jìn)行修改,會(huì)影響到所有文件;但是,刪除一個(gè)文件名,不影響另一個(gè)文件名的訪問(wèn)。這種情況就被稱(chēng)為"硬鏈接"(hard link)
D選項(xiàng)錯(cuò)誤。應(yīng)該是按照操作碼的規(guī)定,對(duì)指令進(jìn)行相應(yīng)的操作
死鎖產(chǎn)生的原因及四個(gè)必要條件
產(chǎn)生死鎖的原因主要是:
(1) 因?yàn)橄到y(tǒng)資源不足。
(2) 進(jìn)程運(yùn)行推進(jìn)的順序不合適。
(3) 資源分配不當(dāng)?shù)取?br /> 如果系統(tǒng)資源充足,進(jìn)程的資源請(qǐng)求都能夠得到滿足,死鎖出現(xiàn)的可能性就很低,否則
就會(huì)因爭(zhēng)奪有限的資源而陷入死鎖。其次,進(jìn)程運(yùn)行推進(jìn)順序與速度不同,也可能產(chǎn)生死鎖。
產(chǎn)生死鎖的四個(gè)必要條件:
(1)?互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用。
(2)?請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放。
(3)?不可剝奪條件:進(jìn)程已獲得的資源,在末使用完之前,不能強(qiáng)行剝奪。
(4)?循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。
總結(jié)