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