操作系统(02326)课后习题答案
目錄
- 第一章 操作系統(tǒng)概論
- 第二章 操作系統(tǒng)運行環(huán)境
- 第三章 進程與線程
- 第四章 進程的同步與互斥
- 第五章 死鎖
- 第六章 存儲管理
- 第七章 文件系統(tǒng)
- 第八章 I/O設備管理
第一章 操作系統(tǒng)概論
操作系統(tǒng)是計算機系統(tǒng)中的一個系統(tǒng)軟件,它是這樣一些程序模塊的集合:它們能夠有效地組織和管理計算機中的硬件和軟件資源,合理地控制計算機工作流程,控制程序的執(zhí)行,并向用戶提供各種服務功能,使用戶能夠靈活、方便、有效地使用計算機,并使整個計算機系統(tǒng)能高效地運行。
硬件和軟件資源。
進程管理(處理器管理)、存儲管理、文件管理、作業(yè)管理、設備管理
并發(fā)性:計算機系統(tǒng)中同時存在若干個正在運行著的程序;
共享性:操作系統(tǒng)程序和多個用戶程序共享系統(tǒng)中的各種資源
隨機性:操作系統(tǒng)的運行是在一種隨機的環(huán)境下進行的
Windows體系結構是分成的模塊系統(tǒng),主要層次有硬件抽象層HAL、內核、執(zhí)行體和大量的子系統(tǒng)集合;
UNIX操作系統(tǒng)的系統(tǒng)架構圖,其最里層是硬件,作為整個系統(tǒng)的基礎;其次是操作系統(tǒng)內核,包括進程管理、存儲器管理、設備管理和文件管理四個資源管理功能;往外一層是系統(tǒng)調用接口,及操作系統(tǒng)與用戶的接口shell以及編譯程序等;最外層是應用程序
Linux系統(tǒng)有四個主要部分,及內核、shell、文件系統(tǒng)和用戶程序。
Android操作系統(tǒng)分為四層,從高層到低層分別是應用程序層、應用框架層、系統(tǒng)運行庫層和Linux內核層。
以Linux為核心的手機操作平臺,是一款開放式操作系統(tǒng)
除了操作系統(tǒng)通常具備的功能(進程管理、存儲管理、文件管理、作業(yè)管理、設備管理)之外,還必須具有接打電話,收發(fā)短信等通訊功能。
除此之外,當代手機還通常具備攝影錄像,音視頻播放等媒體功能。同時還普遍提供軟件安裝管理的功能,以通過第三方軟件進一步豐富手機的功能。
一般把操作系統(tǒng)分為三種基本類型,即批處理操作系統(tǒng)、分時系統(tǒng)和實時系統(tǒng)
(1)批處理操作系統(tǒng)
批處理操作系統(tǒng)分為簡單批處理系統(tǒng)和多道批處理系統(tǒng)兩種類型。
用戶將作業(yè)交給系統(tǒng)操作員,系統(tǒng)操作員在收到作業(yè)后并不立即將作業(yè)輸入計算機,而是在收到一定數(shù)量的作業(yè)后,組成一批作業(yè),再把這批作業(yè)輸入到計算機中。這批作業(yè)可在系統(tǒng)中形成一個連續(xù)的、自動轉接的作業(yè)流。系統(tǒng)操作員然后啟動操作系統(tǒng),系統(tǒng)自動、依次執(zhí)行每個作業(yè)。最后由操作員將執(zhí)行完畢的作業(yè)結果交給用戶。
批處理操作系統(tǒng)的特點是成批處理。
(2)分時系統(tǒng)
分時操作系統(tǒng)是為了彌補批處理系統(tǒng)不能提供交互式快速服務的缺點而發(fā)展起來的。一臺計算機主機連接了若干個終端,每個終端可由一個用戶使用。用戶通過終端交互式的向系統(tǒng)提出命令請求,系統(tǒng)接受用戶的命令后,采用時間片輪轉方式處理服務請求,并通過交互方式在終端上向用戶顯示結果。用戶根據(jù)系統(tǒng)送回的處理結果發(fā)出下一道交互指令。
分時操作系統(tǒng)具有多路性、交互性、獨占性和及時性的特點
(3)實時系統(tǒng)
使計算機能在規(guī)定的時間內,及時響應外部事件的請求,同事完成對該事件的處理,并能控制所有實時設備和實時任務協(xié)調一致地工作的操作系統(tǒng)。目標是,在嚴格的時間范圍內,對外部請求做出反應,系統(tǒng)具有高度可靠性。
實時系統(tǒng)主要有兩類:硬實時系統(tǒng)、軟實時系統(tǒng)
(4)嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)就是運行在嵌入式芯片環(huán)境中,對整個芯片以及它所操作、控制的各種部件裝置等資源進行統(tǒng)一協(xié)調、調度、指揮和控制的系統(tǒng)軟件。
嵌入式操作系統(tǒng)具有高可靠性、實時性、占有資源少、智能化能源管理、易于連接、低成本等優(yōu)點。
(5)個人計算機操作系統(tǒng)
個人計算機操作系統(tǒng)是一種單用戶多任務的操作系統(tǒng)。其主要特點是:為單個用戶服務;采用圖形界面人機交互的工作方式,界面友好;使用方便,用戶無須具備專門知識,也能熟練地操作系統(tǒng)。
(6)網(wǎng)絡操作系統(tǒng)
為計算機網(wǎng)絡配置的操作系統(tǒng)成為網(wǎng)絡操作系統(tǒng)。網(wǎng)絡操作系統(tǒng)是基于計算機網(wǎng)絡的、在各種計算機操作系統(tǒng)之上按照網(wǎng)絡體系結構協(xié)議標準設計開發(fā)的軟件,包括網(wǎng)絡管理、通信、安全、資源共享和各種網(wǎng)絡應用。
計算機網(wǎng)絡有:集中式模式、分布式模式
(7)分布式操作系統(tǒng)
分布式操作系統(tǒng)是網(wǎng)絡操作系統(tǒng)的更高級形式,除了有網(wǎng)絡操作系統(tǒng)的功能之外,期特征是,系統(tǒng)中所有主機使用同一個操作系統(tǒng)、資源深度共享、透明性和自治性。
相同點:這三類操作系統(tǒng)均為現(xiàn)代計算機系統(tǒng)中普遍使用的操作系統(tǒng),操作系統(tǒng)本身以及它所管理的對象都是并發(fā)的系統(tǒng),是一個極其復雜和龐大的軟件系統(tǒng)。
不同點:批處理操作系統(tǒng)的特點是成批處理,用戶不能干預自己作業(yè)的遠行;分時系統(tǒng)的特點是多路性、交互性、獨占性和及時性;實時操作系統(tǒng)的特點是能在嚴格的時間范圍內對外部請求做出反應,以及具有高度可靠性。
分時系統(tǒng)中,通常把用戶從終端發(fā)出命令到系統(tǒng)給予回答所經(jīng)歷的時間定義為 響應時間。
批處理系統(tǒng)適用于追求系統(tǒng)資源利用率高、作業(yè)吞吐率高的計算機系統(tǒng)。
分時系統(tǒng)適用于需要提供交互式快速服務的計算機系統(tǒng)。
這樣的操作系統(tǒng)結合了批處理和分時兩種系統(tǒng)的特點,該系統(tǒng)把處理終端用戶的、交互式的、比較小的但需要及時處理的作業(yè)作為“前臺作業(yè)”予以優(yōu)先處理;把需要較長運行時間、要調用其他外部設備、比較大型但無須終端用戶干預的且不需要立即處 理的作業(yè)作為“后臺作業(yè)”進行批處理。這樣,使整個計算機系統(tǒng)忙閑結合,能更有效地利用計算機系統(tǒng)的資源。
在嚴格的時間范圍內,對外部請求做出反應,系統(tǒng)具有高度可靠性。
導彈控制; 實時操作系統(tǒng)
國家統(tǒng)計局軟件;通用的分時/批處理操作系統(tǒng)
汽車發(fā)動機點火控制;實時操作系統(tǒng)
火車訂票系統(tǒng);網(wǎng)絡操作系統(tǒng)
互聯(lián)網(wǎng)電子游戲。網(wǎng)絡操作系統(tǒng)
SPOOLing 技術的全稱是“同時的外部設備聯(lián)機操作”。該技術是用磁盤設備作為主機的直接輸入輸出設備,主機直接從磁盤上選取作業(yè)遠行,作業(yè)的執(zhí)行結果業(yè)存在磁盤上,通道負責將用戶作業(yè)從外設動態(tài)寫入磁盤,并使這一操作與主機并行。從而 大大提高了處理器和各種外部設備的利用效率。由于SPOOLing 技術需要通道技術, 所以一般用于大型計算機系統(tǒng)和那些對 I/O處理能力要求比較嚴格的系統(tǒng)中,一般低檔 微型計算機中,不使用此技術。
網(wǎng)絡操作系統(tǒng)是基于計算機網(wǎng)絡的,是在各種計算機操作系統(tǒng)之上按網(wǎng)絡體系結 構協(xié)議標準設計開發(fā)的軟件,它包括網(wǎng)絡管理、通信、安全、資源共享和各種網(wǎng)絡應用。 分布式操作系統(tǒng)是網(wǎng)絡操作系統(tǒng)的更高級形式,除了有網(wǎng)絡操作系統(tǒng)的功能之外,其特 征是系統(tǒng)中所有主機使用同一個操作系統(tǒng)、資源的深度共享、透明性和自治性。
操作系統(tǒng)的設計過程包括功能設計、算法設計和結構設計。在每個方面均應考慮使操作系統(tǒng)具有可靠性、高效性、易維護性、易移植性、安全性及簡明性等問題
目標有三條:系統(tǒng)模塊化、模塊標準化、通信規(guī)范化;
影響操作系統(tǒng)正確性的因素包括操作系統(tǒng)的功能成分多、各種外部設備 的接口復雜、參與開發(fā)的人員較多
應考慮組成操作系統(tǒng)的各部分的劃分原則以及它們之間的關系(即通信),簡言之,即操作系統(tǒng)的構成法和組合方法。
整體式結構(模塊組合法)的基本思想是首先確定操作系統(tǒng)的總體功能,然后將總功能 分解為若干子功能,實現(xiàn)每個子功能的程序稱為模塊,再通過接口將所有模塊連接起來形成一個操作系統(tǒng)的整體。
優(yōu)點:結構緊密、接口簡單直接、系統(tǒng)效率較高。
缺點:模塊間轉接隨便,各模塊相互牽連,獨立性差,系統(tǒng)結構不清晰;數(shù)據(jù)基本上作為全程量處理,模塊的修改和維護較困難;由于模塊組合常以大型表格為中心,限制了系統(tǒng)的并發(fā)性。
層次式結構的基本思想是為克服模塊結構的缺點、減少各模塊之間無規(guī)則的互相調用、 相互依賴關系,力求將模塊間的調用的無序性變?yōu)橛行蛐?#xff0c;將操作系統(tǒng)的所有功能模塊按功能流圖的調用次序,將模塊分成若干層,各層之間的模塊只能是單向依賴或單向調用關系。
優(yōu)點:既具有模塊法把整體問題分解成局部化的優(yōu)點,使各模塊自己的組織結構和依賴關系清晰明了,增加了系統(tǒng)的可讀性和可適應性,增加了系統(tǒng)的可靠性,易于調式、易于修改、易于擴充、易于維護等。
微內核(客戶/服務器)結構適宜于應用在網(wǎng)絡環(huán)境下分布式處理的計算環(huán)境中。
優(yōu)點:將系統(tǒng)的分成若干個小的并且自包含的服務進程分支,每個分支運行在獨立的用戶進程中,相互之 間通過規(guī)范一致的方式接收發(fā)送消息而聯(lián)系起來。優(yōu)點:可靠]靈活、適宜于分布式處 理的計算環(huán)境。
缺點:效率較低。
第二章 操作系統(tǒng)運行環(huán)境
處理器一般由運算器、控制器、一系列的寄存器以及高速緩存構成。其中,運算器實現(xiàn)指令中的算術和邏輯運算,是計算機的核心。控制器負責控制程序運行的流程,寄存器是一種暫時存儲器件,用于 CPU執(zhí)行指令的過程中暫存數(shù)據(jù)、地址以及指令信。CPU本身提供了一定的存儲能力,但容量很小。處理器中的運算器、控制器、寄存器都與操作系統(tǒng)密切相關。操作系統(tǒng)就是通過對處理器中的這些部件來實現(xiàn)程序的運算和程序流程的控制的。
現(xiàn)代處理器一般都提供管態(tài)和目態(tài)等兩種工作狀態(tài)。用戶程序在目態(tài)下運行, 只能使用非特權指令,具有較低的特權級別;操作系統(tǒng)在管態(tài)下運行,可以使用特權指令和非特權指令,具有較高的特權級別。
當用戶程序占用CPU 時,CPU在目態(tài)下運行,只能使用非特權指令;當需要使用特權指令時,將引起一次處理器狀態(tài)的切換,此時處理器通過中斷機制,將目態(tài)轉換為管態(tài),然后將處理權移交給操作系統(tǒng)中的一段代碼,操作系統(tǒng)才能占用 CPU。從目態(tài)變?yōu)楣軕B(tài)其轉換的惟一途徑是通過中斷。
因為如果允許用戶隨便使用這些指令,就有可能是系統(tǒng)陷入混亂。
當用戶程序占用 CPU時,CPU在目態(tài)下運行,只能使用非特權指令;若此刻 CPU取到了一條特權指令,形成“非法操作”事件,CPU就拒絕執(zhí)行該指令。中斷機制識別到該事件,運行狀態(tài)就從目態(tài)變?yōu)楣軕B(tài),將控制權轉給操作系統(tǒng),通過操作系統(tǒng)通知用戶修改。
計算機存儲系統(tǒng)的設計主要考慮容量、速度和成本三個問題。容量是存儲系統(tǒng)的基礎,都希望配置盡可能大的存儲系統(tǒng);同時要求存儲系統(tǒng)的讀寫速度能與處理器的速度相匹配;此外成本也應該在一個合適的范圍之內。但這三個目標不可能同時達到最優(yōu)。一般情況下,存儲設備讀寫速度越快,平均單位容量的價格越高,存儲容量越小;反之,存儲設備讀寫速度越慢,平均單位容量的價格越低,存儲容量越大。為了在這三者之間 取得平衡,就采用分級的存儲體系結構,由寄存器、高速緩存、主內存、硬盤存儲器、 磁帶機和光盤存儲器等構成。操作系統(tǒng)經(jīng)常訪問較小、較貴而快速的存儲設備,以較大、 較便宜而讀寫速度較慢的存儲設備作后盾。在整體上通過對訪問頻率的控制來提高存儲 系統(tǒng)的效能。
是指程序在執(zhí)行時呈現(xiàn)出局部性規(guī)律,即在一段時間內,整個程序的執(zhí)行僅限于程序中的某一部分。相應地,執(zhí)行所訪問的存儲空間也局限于某個內存區(qū)域。
存儲在內存中的用戶程序和操作系統(tǒng)以及他們的數(shù)據(jù),有可能受到正在CPU上運行的某系用戶程序的有意或無意的破壞,這會造成十分嚴重的后果。一定有程序向操作系統(tǒng)寫入了數(shù)據(jù),將有可能造成系統(tǒng)奔潰。對內存中的信息加以嚴格的保護,使操作系統(tǒng)及其他程序不被破壞,是其正確運行的基本條件之一。
界址寄存器是被廣泛使用的一種存儲保護技術。其方法是在處理器中設置一對界限寄存器來存儲該用戶作業(yè)在內存中的上限和下限地址,分別稱為上限寄存器和下限寄存器。也可將一個寄存器作為基址寄存器,另一寄存器作為限長寄存器的方法來指出程序在內存中的存儲區(qū)域。每當處理器要訪問內存時,硬件自動將被訪問的內存地址與界限寄存器的內容比較,以判斷是否越界。如果未越界,就按此地址訪問內存,否則將產(chǎn)生中斷——越界中斷或稱為存儲保護中斷。
操作系統(tǒng)通過與硬件中的界地址寄存器實現(xiàn)存儲保護。其方法是在 CPU 中設置一對界限寄存器來存放某個作業(yè)在內存中的下限和上限地址,或者一個寄存器作為基址寄存器,另一個作為限長寄存器。每當CPU 訪問內存時,硬件自動將被訪問的內存地址與界限寄存器的內容進行比較,以判斷是否越界。如果未越界,則按此地址訪問內存,否則將產(chǎn)生越界中斷。
(1)通道
通道是獨立于中央處理器的,專門負責數(shù)據(jù)I/O傳輸工作的處理單元。代替處理器對外部設備實行統(tǒng)一的管理,從而使處理器與外部設備并行工作,提高了躲到程序處理的效率。
(2)DMA技術
DMA技術由DMA控制器自動控制成塊數(shù)據(jù)在內存I/O單元之間的傳送,提高了處理I/O的效能。
緩沖技術是用在外部設備與其他硬件部分之間的一種數(shù)據(jù)暫存技術。用以緩解處理器處理數(shù)據(jù)速度與設備傳輸數(shù)據(jù)速度之間不匹配矛盾的一種數(shù)據(jù)暫存技術。
計算機系統(tǒng)中的時鐘可分為硬件時鐘和軟件時鐘,以及絕對時鐘與相對時鐘。時鐘可以防止系統(tǒng)陷入死循環(huán),實現(xiàn)作業(yè)按時間片輪轉進行,給出正確的時間信號,定時喚醒事先按確定時間執(zhí)行的時間,記錄事項等。
硬件時鐘的工作原理是,在電路中的晶體振蕩器,每個一定間隔產(chǎn)生固定的脈沖頻率,時鐘電路中的時鐘寄存器依據(jù)時鐘電路所產(chǎn)生的脈沖數(shù),對時鐘寄存器進行加1的工作。
軟件時鐘常用作相對時鐘,它的工作原理主要是利用內存單元模擬時鐘寄存器,并采用一段程序來計算相應的脈沖數(shù),對內存時鐘寄存器進行加1或減1的工作,從而模擬了時鐘的功能。
中斷是指處理器對系統(tǒng)中或系統(tǒng)外所發(fā)生的異步事件的響應。異步事件是指無一定時序關系的隨機發(fā)生的事件。中斷是所有要打斷CPU的正常工作次序, 并要求其去處理某一事件的一種常用手段。中斷技術解決了主機和外設并行工作的問題,消除了因外設的慢速而使得主機等待的現(xiàn)象,為多機操作和實時處理提供了硬件基礎。
能充分發(fā)揮處理器的使用效率。因為輸入輸出設備可以使用中斷的方式同處理器通信,報告其完成處理器所要求的數(shù)據(jù)傳輸?shù)那闆r和問題,這樣可以免除處理器不斷地查詢和等待,從而大大提高處理器的效率
提高系統(tǒng)實時能力。因為據(jù)歐較高實時處理要求的設備,可以通過中斷的方式請求及時處理,從而使處理器立即運行該設備的處理程序。
引起中斷的事件稱為中斷事件或中斷源,計算機系統(tǒng)提供的中斷源的有序 集合稱為中斷字。處理某一種中斷事件的程序稱為中斷處理程序。為了使中斷裝置便于找到所需的中斷處理程序,專門設計了中斷處理程序入口地址映射表,稱為中斷向量表, 表中的每一項稱為中斷向量,主要由程序狀態(tài)字 PSW和程序計數(shù)器PC 的值組成。中斷向量的作用是通過它可以找到中斷處理程序在內存中的存儲位置。
處理器接收中斷信號;
保護現(xiàn)場,將中斷斷點的PSW和程序計數(shù)器PC 的值存入系統(tǒng)堆棧;
分析中斷向量,取得中斷處理程序的入口地址;
將處理器的PC 值置為中斷處理程序的入口地址;
調用中斷處理程序。
中斷處理指中斷信號已經(jīng)被中斷系統(tǒng)的硬件中斷裝置接收和響應之后,相應的中斷處理程序進行中斷處理的步驟。包括檢查 I/O相關的狀態(tài)信息,操縱 I/O設備或者在設備和內存之間傳送數(shù)據(jù)。在中斷處理程序結束工作之后,處理器會檢測到一條中斷返回指令,處理器執(zhí)行此指令,把恢復中斷時所保護的中斷斷點現(xiàn)場,處理器也恢復 成被中斷時的狀態(tài),整個中斷處理結束。
如果沒有中斷屏蔽,當中斷裝置響應了某個中斷后中斷處理程序在進行處理時,中斷裝置也可能去響應另一個中斷事件,就會出現(xiàn)優(yōu)先級低的中斷事件的處理打斷優(yōu)先級高的中斷事件的處理,使得中斷事件的處理順序與響應順序不一致,而且會形成多重嵌套處理,使多現(xiàn)場保護、程序返回等工作變得復雜。因此設置中斷屏蔽。
同時有多個中斷請求時,系統(tǒng)接收中斷優(yōu)先級最高的中斷而忽略其中中斷優(yōu)先級較低的中斷。如果同一中端級中的多個設備接口都有中斷請求,則按照固定的優(yōu)先數(shù)或作者輪轉法確定響應的順序。
對多個中斷的處理策略一般有兩種:
(1)正當處理一個中斷時,此時系統(tǒng)將對任何新發(fā)生的中斷置之不理。在這期間發(fā)生的中斷將保持掛起狀態(tài)。當處理器再次允許中斷時,這個新的中斷信號會被處理器檢測到,并作出處理
(2)中斷嵌套。即按照優(yōu)先度分級,允許優(yōu)先級較高的中斷打斷優(yōu)先級較低的中斷處理過程,于是引起中斷處理的嵌套。
硬件的中斷裝置負責捕獲中斷源發(fā)出的中斷請求,并以一定的方式響應中斷源(將中斷現(xiàn)場的程序狀態(tài)字PSW,指令計數(shù)器PC的值和其他重要現(xiàn)場信息壓入系統(tǒng)堆棧),然后將處理器的控制權交給與中斷源相應的中斷處理程序。
硬件中斷裝置接收中斷信后,并把中斷信后寄存在中斷寄存器中。
一定會引起進程狀態(tài)變化的中斷事件:硬件故障中斷、輸入輸出中斷、自愿中斷;可能會引起變化的中斷事件:外部性中斷事件、程序性中斷事件。進程在執(zhí)行中狀態(tài)會不斷地改變,每個進程在任何時刻總是處于三種基本狀態(tài)之一:等待態(tài)、就緒態(tài)、運行態(tài)。中斷事件是否引起進程狀態(tài)的變化,還要看該中斷事件的中斷優(yōu)先級和進程PSW的中斷屏蔽位。曉津認為:硬件故障中斷和自愿中斷是一定會引起進程狀態(tài)變化的,而其他中斷則可能引起進程狀態(tài)變化。
系統(tǒng)調用是操作系統(tǒng)為用戶程序提供的一種服務界面,也可以說是操作系統(tǒng)保證程序設計語言能正常工作的一種支持。在源程序一級,用戶用程序設計語言描述算題任務的邏輯要求,例如讀文件、寫文件、請求主存資源等。這些要求的實現(xiàn)只有通過操作系統(tǒng)的系統(tǒng)調用才能完成,其中有些要求還必須執(zhí)行硬件的特權指令才能達到目的。
為了從操作系統(tǒng)中獲得服務,用戶程序必須使用系統(tǒng)調用,系統(tǒng)調用陷入內核并調用操作系統(tǒng)。系統(tǒng)調用是操作系統(tǒng)提供給編程人員的衛(wèi)唯一接口。
進程控制、文件操作、進程通信、設備管理、信息維護等等
當用戶使用操作系統(tǒng)調用是,產(chǎn)生一條相應的指令(異常指令),處理器在執(zhí)行到該指令時發(fā)生相應的中斷,并發(fā)出有關信號給該處理機構(異常處理機構);
該處理機構在收到了處理器發(fā)來的信號后,啟動相關的處理程序去完成該系統(tǒng)調用所要求的功能。
當用戶使用操作系統(tǒng)調用時,通過使用訪管指令產(chǎn)生中斷,把目態(tài)切換成管態(tài),并啟用操作系統(tǒng)。訪管指令包含對應系統(tǒng)調用的功能號。
第三章 進程與線程
什么是多道程序設計?
允許多個程序同時進入內存并運行。
多道程序設計怎樣提高系統(tǒng)效率?多道程序設計一定能提高系統(tǒng)效率嗎?
采用多道程序設計能改善資源的使用情況,從而提高系效率。但是也存在一些問題:
(1)可能延長程序的執(zhí)行時間
(2)系統(tǒng)效率的提高有一定限度
操作系統(tǒng)中為什么要引入進程?進程與程序有什么區(qū)別?
為了更好的描述程序的執(zhí)行,實現(xiàn)操作系統(tǒng)的并發(fā)性和共享性,引入進程的概念。
進程與程序既有聯(lián)系也有區(qū)別
(1)進程與程序的聯(lián)系
程序是構成進程的組成部分之一,一個進程運行的目的是執(zhí)行它所對應的程序,如果沒有程序,進程就失去了存在的意義。從靜態(tài)的角度來看,進程是有程序、數(shù)據(jù)和進程控制塊(PCB)三部分組成的。
(2)進程與程序的區(qū)別
程序是靜態(tài)的,進程是動態(tài)的。
進程是程序的一個執(zhí)行過程。程序是永久存在的,而進程是為了程序的一次執(zhí)行而暫時存在的,進程有生命周期,有誕生,亦有消亡。一個進程可以包括若干程序,一個程序也可以有多個進程。
程序的并發(fā)執(zhí)行有什么特點?并發(fā)和并行有什么區(qū)別?
程序的并發(fā)執(zhí)行的特點有:
(1)在執(zhí)行期間,并發(fā)程序相互制約
(2)程序與計算不再一一對應
(3)并發(fā)程序的執(zhí)行結果不可在現(xiàn)
程序的并行執(zhí)行與并發(fā)執(zhí)行存在差別。前者指不論在宏觀的時間周期上看,還是從微觀上看,若干程序確實在同時運行;而程序的并發(fā)執(zhí)行,如果在單處理器系統(tǒng)中,他們在宏觀上市同時進行的,但在微觀上,這些程序仍然是順序執(zhí)行的。
可再入程序有什么特性?
能夠被多個用戶同時調用的程序稱作是可再入程序。可再入程序必須是純代碼的程序,程序在執(zhí)行過程中不會修改自身代碼。可再入程序的操作對象,即數(shù)據(jù),是與程序相分離的。
進程有哪些基本狀態(tài)?他們的變化關系是怎樣的?
進程有三種基本狀態(tài):等待狀態(tài),就緒狀態(tài),運行狀態(tài);
等待狀態(tài):也稱阻塞狀態(tài)或封鎖狀態(tài)。指進程因等到某種時間發(fā)生而暫時不能運行的狀態(tài)
就緒狀態(tài):指一個進程已經(jīng)具備運行條件,但是由于沒有獲得處理器而不能運行的狀態(tài)
運行狀態(tài):指進程已獲得除利息,并且在處理器上運行的狀態(tài)。
系統(tǒng)中有n個進程,在任意時刻,處于運行、就緒和等待狀態(tài)的進程最多,最少各有幾個?
在單處理器系統(tǒng)中,任一時刻,處于運行狀態(tài)的進程最多只有一個,最少為0個;處于就緒狀態(tài)的進程最多有n-1個,最少為0個;處于等待狀態(tài)的進程最多有n個,最少有0個。
進程控制塊的作用是什么?其主要內容有哪些
進程控制塊是用來描述進程的基本情況以及進程的運行變化過程。進程控制塊是進程的唯一標志。
進程控制塊的內容可以分為調度信息和現(xiàn)場信息兩大部分。調度信息供進程調度時使用,描述了進程當前所處的狀況,包括進程名、進程號、地址空間信息、優(yōu)先級、當前狀態(tài)、資源清單、家族關系、消息隊列指針、進程隊列指針和當前打開文件等;
現(xiàn)場信息刻畫了進程的運行情況,只記錄了可能會被其他進程改變的寄存器,如程序狀態(tài)字、時鐘、界地址寄存器等。
進程能否修改訪問自己的進程控制塊內容?
進程控制塊是系統(tǒng)為程序建立的用于標志進程,記錄各進程執(zhí)行情況的。進程本身不能訪問或者修改自己的進程控制塊的內容,但父進程可以訪問或修改其子孫進程的進程控制塊內容,以便對它的子孫進程進行必要的管理和控制。
當進程調度選中一個進程后嗎,怎樣才能讓它占用處理器?
當進程調度選中一個進程后,把選中進程的進程控制塊中有關的現(xiàn)場信息,如通用寄存器、控制寄存器和程序狀態(tài)字寄存器的內容送入處理器相應的寄存器中,處理器就按該進程的要求工作,達到了進程占用處理器的目的。
為什么引入線程?線程和進程之間的區(qū)別和聯(lián)系是什么?
為了減少程序并發(fā)執(zhí)行時所付出的時間和空間開銷,使操作系統(tǒng)具有更好的并發(fā)性。
線程是進程中的一個實體,是處理器調度和分派的基本單位。進程是擁有資源的獨立單位。
線程具有許多傳統(tǒng)進程的特征,故稱為輕量級進程或進程元。
為什么說線程間的狀態(tài)切換比進程間的狀態(tài)切換開銷低?同一個進程中的兩個線程切換的開銷是否也比不同進程中兩個線程切換的開銷少?
線程不擁有自己的系統(tǒng)資源,切換狀態(tài)時只需要保存少量的寄存器內容,不涉及存儲器管理方面的操作;而進程擁有自己的系統(tǒng)資源,創(chuàng)建和撤銷時都需要進行資源分配或回收,切換狀態(tài)時需要對整個當前進程的處理器環(huán)境進行保存,并對新的被調度的進程的處理器環(huán)境進行設置,這些操作都需要占用消耗系統(tǒng)資源。
同一進程間的線程具有相同的地址空間,共享相同的系統(tǒng)資源,切換方便,而不同進程之前線程切換時則需要進行進程切換,所以同一進程間的線程切換時開銷也要小于不同進程中兩個線程切換的開銷。
進程調度的作用是什么?引起進程調度的因素有哪些?
進程調度的作用是:記錄系統(tǒng)中所有進程的執(zhí)行情況;根據(jù)一定的算法,從就緒隊列中選出一個進程準備把處理器分配給它;把處理器分配給進程。
引起進程調度的因素有:
(1)正在執(zhí)行的進程運行完畢
(2)正在執(zhí)行的進程由于某種錯誤而終止
(3)時間片永外,即有一個進程由運行態(tài)變?yōu)榫途w態(tài)
(4)正在執(zhí)行的進程調用阻塞原語將自己阻塞起來,即一個進程由運行態(tài)變成阻塞態(tài)
(5)創(chuàng)建了新的進程,即一個進程進入就緒隊列
(6)正在執(zhí)行的進程調用了喚醒原語操作激活了等在資源的進程,即一個等待狀態(tài)的進程變成就緒態(tài)
搶占式調度和非搶占式調度有何區(qū)別?
可搶占是調度方式,就緒隊列中一旦有優(yōu)先級高于當前運行進程優(yōu)先級的進程存在時,變立進行調度,轉讓處理器;不可搶占式調度,一旦把處理器分配給一個進程,它就一直占用處理器,直到該進程自己調用原語操作或等待I/O而進入阻塞狀態(tài),或時間片用完才出讓處理器。
對于進程調度,較小的優(yōu)先級值是表示較低的優(yōu)先級還是表示較高的優(yōu)先級?
不同的操作系統(tǒng)中設定不同。 在UNIX和許多其他系統(tǒng)中,大的優(yōu)先級值表示低優(yōu)先級進程。許多系統(tǒng),比如WINDOWS,剛好相反,大數(shù)值表示高優(yōu)先級。
在一個單處理器的躲到程序設計系統(tǒng)中,現(xiàn)有兩道進程同時執(zhí)行,其中一道以計算為主,另外一道以輸入輸出為主,將怎樣賦予進程進程占有處理器的優(yōu)先數(shù)?解釋為什么?
假定就緒隊列的進程按優(yōu)先數(shù)自大到小順序排列,當有進程要加入就緒隊列時,應按它的優(yōu)先數(shù)排入相應位置,試就單向鏈接的方式寫出實現(xiàn)程序入隊的程序。
在分級調度算法中,為什么對不同就緒隊列中的進程規(guī)定使用不同長度的時間片?
在分級調度算法中,為什么對不同就緒隊列中的進程規(guī)定使用不同長度的時間片?
因為各個就緒隊列的優(yōu)先級不一樣,優(yōu)先級越高的隊列時間片長度越小,優(yōu)先級越低的隊列時間片越長.這樣做的目的是讓那些短而高優(yōu)先級的作業(yè)迅速完成,而又讓大的作業(yè)又能夠處理完成。
為什么說多級反饋隊列調度算法能較好地滿足各類用戶的需要?
多級反饋隊列法綜合了先進先出調度算法、時間片輪轉算法、和可搶占式最高優(yōu)先級算法的一種進程調度算法。
系統(tǒng)內核應包含哪些功能?內核的特點是什么?
系統(tǒng)內核提供下列功能:中斷處理程序、進程同步與互斥、進程調度、控制與通信、存儲管理的進本操作以及時鐘管理等。
內核只占整個操作系統(tǒng)代碼中的一小部分,是最接近裸機的部分,內核是進程賴以活動的基礎,內核的功能通過原語操作來實現(xiàn)。
第四章 進程的同步與互斥
何謂與時間有關的錯誤?舉例說明之。并發(fā)進程執(zhí)行時一定會產(chǎn)生于時間有關的錯誤嗎?為什么?
并發(fā)進程中共享了公共變量,使得程序的計算結果與并發(fā)程序執(zhí)行的速度有關。這種錯誤的結果又往往是與時間有關的,所以,把它稱之為與時間有關的錯誤。
什么是臨界區(qū)?什么是相關臨界區(qū)?對相關臨界區(qū)的使用規(guī)則?
若在系統(tǒng)中的某些資源一次只允許一個進程使用,則稱這類資源為臨界資源或共享變量,而在進程中訪問臨界資源的程序稱為臨界區(qū)。
如果有若干進程共享某一臨界區(qū),則稱該臨界區(qū)為相關臨界區(qū)。
要求進入相關臨界區(qū)的進程之間構成互斥關系。為了保證系統(tǒng)中的各并發(fā)進程順利運行,對兩個以上欲進入相關臨界區(qū)的進行,必須實行互斥。
進程間有哪幾種通信方式?各有什么特點?各種方式分別適用于那些情況?
解決進程間的大量信息通信的問題有三類方案:共享內存、消息機制、以及通過共享文件進行通信,及管道通信。
共享內存:在互相通訊的進程之間設有一個公共內存區(qū),一組進程向該公共內存中寫,另一組進程從公共內存中讀,通過這種方式實現(xiàn)兩組進程間的信息交換。
消息機制:是用于進程間通信的高級通信原語之一。
(1)消息緩沖通信:利用內存中公共消息緩沖區(qū)實現(xiàn)進程之間的信息交換。消息緩沖區(qū)是由:消息長度、消息正文、發(fā)送者、消息隊列指針組成的數(shù)據(jù)結構。
(2)信箱通信:為了實現(xiàn)進程間的通信,可以設立一個通信機構——信箱,以發(fā)送信件以及接受回答信件為進程間通信的進本方式。一個信箱的接口可以由信箱說明和信箱體兩部分組成。信箱說明有如下的數(shù)據(jù)結構:可存信件數(shù),已有信件數(shù)。
管道通信:所謂管道,就是連接兩個進程之間的一個打開的共享文件,專用于進程之間進行數(shù)據(jù)通信。管道通信的基礎是文件系統(tǒng)。
第五章 死鎖
說明產(chǎn)生死鎖的四個必要條件;給出一種可以避免死鎖發(fā)生的簡單方法。
產(chǎn)生死鎖的四個必要條件:
(1)互斥條件:
資源是獨占的且排他使用。進程互斥使用資源,即一個時刻只能給一個進程使用。
(2)不可剝奪條件
不可搶占或不可強占。進程所獲得的資源在未使用完畢前,不能被其他進程剝奪。
(3)請求和保持條件
部分分配或占有申請。進程先申請它所需要的一部分資源,得到后在申請新的資源,在申請新的資源同時,繼續(xù)占用分配到的資源
(4)循環(huán)等待條件
環(huán)路等待。環(huán)路中的每個進程已占有的資源同時被另一進程所申請。
死鎖和饑餓有什么相同點和不同點?
若對資源的管理、分配和使用不當,則會產(chǎn)生死鎖或是饑餓。
死鎖是指在多道程序系統(tǒng)中,一組進程中的每一個進程均無限期地等待被該組進程中的另一個進程所占有且永遠不會釋放的資源,這種現(xiàn)象稱系統(tǒng)處于死鎖狀態(tài),簡稱死鎖。
饑餓是指系統(tǒng)不能保證某個進程的等待時間上界,從而使該進程長時間等待,當?shù)却龝r間給進程推進和響應帶來明顯影響時,稱發(fā)生了進程饑餓。當饑餓到一定程度的進程所賦予的任務即使完成也不再具有實際意義時稱該進程被餓死。
試敘述死鎖產(chǎn)生的原因、必要條件和解決死鎖的辦法。
產(chǎn)生死鎖的原因只要有兩個:
一是競爭資源,系統(tǒng)提供的資源數(shù)量有限,不能滿足每個進程的需求。
二是多道程序運行時,進程推進順序不合理。
必要條件:互斥條件、不可剝奪條件、請求和保持條件、循環(huán)等待條件
若檢測后發(fā)現(xiàn)系統(tǒng)有死鎖,可通過剝奪資源或撤銷進程的方法解除死鎖。
是舉出日常生活中死鎖的例子,并說明之。
死鎖預防、死鎖避免和死鎖檢測之間的區(qū)別是什么?
死鎖預防:預先確定一些資源分配策略,進程按規(guī)定申請資源,系統(tǒng)按預定的策略進行分配,這些分配策略均能使產(chǎn)生死鎖的四個必要條件之一不成立,從而使系統(tǒng)不會發(fā)生死鎖。
死鎖避免:當進程提出資源申請時,系統(tǒng)動態(tài)測試資源分配情況,僅當能確保系統(tǒng)安全是才把資源分配給進程。
死鎖檢測:允許系統(tǒng)中發(fā)生死鎖,即對資源的申請和分配不加任何限制,只要有剩余的資源就把資源分配給申請進程。因此就可以出現(xiàn)死鎖,但是系統(tǒng)將不斷跟蹤所有進程的進展,定時運行一個‘死鎖檢測程序’。若檢測后沒有發(fā)現(xiàn)死鎖,則系統(tǒng)可以繼續(xù)工作,若檢測后發(fā)現(xiàn)系統(tǒng)有死鎖,則可通過剝奪資源或撤銷進程的方法解除死鎖。
如何防止循環(huán)等待條件的發(fā)生。
采用資源的有序分配法。基本思想是,將系統(tǒng)中的所有資源順序編號。一般原則是,較為緊缺、稀少的資源的編號較大。進程申請資源時,必須嚴格按照資源編號的順序進行,否則系統(tǒng)不予分配。即一個進程只有得到編號小的資源,才能申請編號較大的資源;釋放資源時,應按編號遞減的次序進行。
Dijkstra等人提出的銀行家算法,其主要思想是什么?它能夠解決實際中的死鎖問題嗎?為什么?
進程首先提出對資源的最大需求量,當進程執(zhí)行中每次申請資源時,系統(tǒng)測試該進程已占用的資源與本次申請的資源數(shù)之和是否超過資源的最大需求量。若超過就拒絕分配資源,若沒有超過,則系統(tǒng)再次測試系統(tǒng)現(xiàn)存的資源能否滿足該進程尚需的最大需求量,若能滿足則按當前的申請量分配資源,否則也有推遲分配。
這樣做能保證在任何時候至少有一個進程可以得到所需要的全部資源而執(zhí)行結束。
第六章 存儲管理
存儲管理的主要功能有哪些?
存儲管理的主要任務有:存儲分配,為用戶分配存儲空間,在不需要的時及時回收,內存分配有靜態(tài)分配和動態(tài)分配方式;內存共享,使多個進程共用內存中相同區(qū)域,包括代碼共享和數(shù)據(jù)共享;存儲保護,使系統(tǒng)正常運行,避免內存中各個程序相互干擾;擴充內存容量,使用戶得到的比實際內存容量大的多。
解釋下列術語:邏輯地址、絕對地址、地址重定位。
絕對地址:一般而言,存儲器以字節(jié)為編制單位,每個字節(jié)都有一個地址與其對應。假定存儲器的容量為n個字節(jié),其地址編號順序為0,1,…,n-1,這些地址稱為內存的絕對地址。
邏輯地址:在多道程序設計的系統(tǒng)中,內存中同時存儲了多個用戶程序。操作系統(tǒng)根據(jù)內存的使用情況為用戶分配內存空間。因此,每個用戶不能預先知道他的程序將被存儲到內存的什么位置。這樣,用戶程序中就不能使用內存的絕對地址。為了方便用戶,每個用戶都可認為自己的程序和數(shù)據(jù)存儲在一組‘0’地址開始的連續(xù)空間中。用戶程序中使用的地址稱為邏輯地址。
地址重定位:把邏輯地址轉換成絕對地址的工作稱為地址重定位或地址轉換,又稱地址映射。重定位的方式有靜態(tài)重定位和動態(tài)重定位。
在可變分區(qū)管理方式下,什么是碎片?如何解決碎片問題?
可變分區(qū)指,系統(tǒng)不預先劃分固定分區(qū),而是在裝入程序的時劃分內存分區(qū),使為程序分配的分區(qū)的大小正好等于該程序的需求量,且分區(qū)的個數(shù)是可變的。
碎片是指,內存經(jīng)過一段時間的分配回收后,會存在很多很小的空閑塊。他們每一塊都很小,不足以滿足程序分配內存的要求,但是其總和卻可以滿足 程序的分配要求,這些空閑塊被稱為碎片。
解決碎片問題的辦法是,在適當?shù)臅r刻進行碎片整理,通過移動內存中的程序,把所有的空閑碎片合并成一個連續(xù)的大的空閑區(qū)且放在內存的一端,而把所有程序占用區(qū)放在內存的另一端。
采用緊縮技術有什么優(yōu)點?移動一道程序時操作系統(tǒng)要做哪些工作?
緊縮技術可以集中分散的空閑區(qū),提高內存的利用率,便于進程的動態(tài)擴充內存。
解釋頁式存儲管理中為什么要設置頁表和TLB。
頁表指出改程序虛擬地址中的頁號與所占用的物理頁面號之間的對用關系;頁面又是硬件進行地址轉換的依據(jù)。
TLB:轉換檢測緩沖區(qū)。頁式存儲管理中的頁表是存儲在內存中的。當要按給定的虛擬地址進行讀寫時,必須訪問兩次內存。第一次按頁號讀出頁表中對用的塊號,第二次按照計算出來的絕對地址進行讀寫。兩次訪問內存顯然延長了指令的執(zhí)行周期,降低了執(zhí)行速度。為了提高存取速度,可以在地址映射機制中增加一個小容量的聯(lián)想寄存器,它由告訴緩沖存儲器組成。利用高速緩存存儲當前最頻繁活動的少數(shù)活動頁面的頁號,這個高速緩存稱為轉換檢測換成區(qū),或快表。
設計一個頁表應考慮哪些因素。
請敘述頁式存儲管理中地址轉換過程。
為了實現(xiàn)頁式存儲,系統(tǒng)要提供一對硬件的頁表控制寄存器,即頁表始址寄存器和頁表長度寄存器,另外還需要高速緩沖存儲器。
物理地址=物理頁號*塊長+頁內地址
1
頁式存儲管理系統(tǒng)中程序的地址空間是一維的還是二維的?請說明理由。
FIFO算法與時鐘頁面置換算法有何聯(lián)系?
簡述什么是覆蓋技術,什么是交換技術,他們之間的區(qū)別是什么?
覆蓋技術是指,一個程序的若干程序段,或幾個程序的某些部分共享某一個存儲空間。去改即使的實現(xiàn)是吧程序劃分成若干功能上相對獨立的程序段,按照子很的邏輯結構使那些不會同時執(zhí)行的程序段共享同一塊內存區(qū)域。
交換技術,又稱對換技術。是進程在內存與外存之間的動態(tài)調度,是由操作系統(tǒng)控制的。
同覆蓋技術一樣,交換技術也是利用外存來邏輯地擴充內存,它的主要特點是,打破了一個程序一個進入內存邊一直運行到結束的限制。
與覆蓋技術相比,交換技術不要求用戶給出程序段之間的邏輯結構,對用戶而言是透明的。而且交換可以發(fā)生在不同的進程和程序之間,而覆蓋發(fā)生的同一進程或程序內部,而且只能覆蓋那些與覆蓋段無關的程序段。因此交換技術比覆蓋技術更加廣泛地用于現(xiàn)代操作系統(tǒng)。
何謂程序的局部性原理,請舉出三個例子。
是指程序在執(zhí)行時呈現(xiàn)出局部性規(guī)律,即在一段時間內,整個程序的執(zhí)行僅限于程序中的某一部分。相應地,執(zhí)行所訪問的存儲空間也局限于某個內存區(qū)域。
虛擬存儲器是什么?為什么要引入虛擬存儲器?
虛擬存儲器,實際上是為擴大內存容量而采用的一種設計技巧。
敘述虛擬頁式存儲管理方案的基本思想。為了實現(xiàn)虛擬頁式存儲管理,系統(tǒng)必須提供的硬件支持有哪些?
虛擬頁式存儲管理的思想是,把內存分成大小相等的許多物理頁面,程序中的虛擬地址也進行分頁,頁的大小與物理頁面的大小一致,這樣可把程序信息按頁存儲到物理頁面中。
支持頁式存儲管理的硬件部件通常稱為:存儲管理部件。
缺頁異常的處理過程是軟硬件配合完成的,請敘述缺頁異常處理過程。
當發(fā)生缺頁異常時,操作系統(tǒng)必須在內存中選擇一個頁面將其移出,以便為即將調入的頁面讓出空間。整個缺頁出苦力過程如下:
(1)根據(jù)當前執(zhí)行指令中的邏輯地址查詢頁面的有效位,判斷該頁是否存在內存。
(2)該頁標志為0,形成缺頁異常。保留現(xiàn)場,中斷裝置通過交換PSW讓操作系統(tǒng)的中斷處理程序占用處理器
(3)操作系統(tǒng)處理缺頁異常,尋找一個空閑的頁面
(4)若有空閑頁,則把磁盤上讀出的信息裝入該頁面中
(5)修改頁面及內存分配表,表示該頁已在內存中。
(6)若內存中午空閑頁,則按某種算法選擇一個頁面,暫時跳出內存。
(7)恢復現(xiàn)場,重新執(zhí)行被中斷的指令。
試述缺頁與一般中斷的主要區(qū)別。
何謂系統(tǒng)的顛簸現(xiàn)象,為什么會出現(xiàn)這一現(xiàn)象?當系統(tǒng)發(fā)生顛簸時,應采取什么措施來加以克服?
如果剛被調出的頁面又立即調用,因而又要把它裝入,而裝入不就又被選中調出,調出不久又被裝入,如此反復,使調度非常頻繁。這種現(xiàn)象稱為‘抖動’或稱‘顛簸’。
在虛存中,頁面可能在內存外存中間頻繁地電鍍,有可能出現(xiàn)顛簸。顛簸是因為缺頁率高而引起的。
采用工作機模型,為每個進程保持一個工作集,通過動態(tài)調整,使進程獲得與工作集相等的物理頁面數(shù),可以解決顛簸問題。
什么是工作集?它的作用是什么?
對于給定的進程訪問序列,從時刻(t-t1)到時刻t之間所訪問頁面的集合,稱為該進程的工作集。工作集是隨時間而變化的。
第七章 文件系統(tǒng)
什么是文件和文件系統(tǒng)?文件系統(tǒng)的功能是什么?
文件可以被解釋為一組帶標識的、在邏輯上具有完整意義的信息項的序列。
文件系統(tǒng),是操作系統(tǒng)中統(tǒng)一管理信息資源的一種軟件。它管理文件的存儲、檢索、更新,提供安全可靠的文件共享和保護手段,并方便用戶使用。
從用戶的角度看,文件系統(tǒng)負責為用戶建立文件、讀寫文件、修改文件、復制文件和撤銷文件。
文件系統(tǒng)應具有下述功能:
(1)統(tǒng)一管理文件的存儲空間,實施存儲空間的分配與回收
(2)實現(xiàn)文件從名字空間到外存地址空間的映射,即實現(xiàn)文件的按名存取,以對用戶透明的方式管理文件的名字空間
(3)實現(xiàn)文件信息的共享,并提供文件的保護和保密措施
(4)向用戶提供一個方便使用的接口
(5)系統(tǒng)維護及向用戶提供有關的信息
(6)保持文件系統(tǒng)的執(zhí)行效率
(7)提供與I/O的統(tǒng)一接口
文件按用途和性能可分為幾類?
(1)系統(tǒng)文件:操作系統(tǒng)和各種系統(tǒng)應用程序和數(shù)據(jù)組成的文件
(2)庫函數(shù)文件
(3)用戶文件:用戶委托文件系統(tǒng)保存的文件
對于用戶來說,有些系統(tǒng)把設備也看成文件,試問這樣做有什么好處?還會帶來什么問題?
什么是文件的邏輯結構、物理結構?有哪幾種典型的文件邏輯結構、物理結構?這些結構各自有什么特點?
用戶看到的是經(jīng)過抽象的文件結構,及文件的邏輯結構。
文件在實際的存儲空間存儲時的結構,就是文件的物理結構。
典型的文件邏輯結構有:
(1)流式文件
流式文件是有序字符的集合,其長度為該文件所包含的字符個數(shù),所以又稱為字符流文件。
(2)記錄式文件
記錄式文件是一組有序記錄的集合。在記錄式文件中,構成文件的基本單位是記錄。可分為,定長記錄文件和不定長記錄文件。
典型的物理結構有:
(1)順序結構
又稱連續(xù)結構,把邏輯上連續(xù)的文件一次存放在連續(xù)編號的物理塊中。
優(yōu)點:一旦知道了文件在文件存儲設備上的起始塊號和文件長度,就能很快速地進行讀取。支持順序讀取和隨機讀取
缺點:文件不能動態(tài)地增長
(2)鏈接結構
實質是為每個文件構造所使用的磁盤塊的鏈表。使用這種鏈接結構的文件,將邏輯上連續(xù)的文件分散存儲在若干不連續(xù)的物理塊中。在每個物理塊中都設有一個指針,該指針指向其后續(xù)的物理塊。
優(yōu)點:存儲碎片問題,迎刃而解,有利于文件的動態(tài)擴充,有利于文件插入和刪除,提高了磁盤空間的利用率。
缺點:存取速度慢,不適于隨機存取文件;磁盤的磁頭移動多,效率相對較低;存在文件可靠性問題;鏈接指針需要占用一定的空間。
(3)索引結構
索引結構的文件把每個物理盤塊中的指針字,集中存儲在稱為索引表的數(shù)據(jù)結構中的內存索引表中。在每個文件相應的目錄條目中包括該文件的索引表地址,而索引表的第i個條目指向文件的第i塊。
優(yōu)點:可以滿足文件動態(tài)增長的要求,也滿足了文件插入、刪除的要求。索引文件還能充分利用外存空間。
缺點:會引起較多的尋道次數(shù)和尋道時間;索引表本身增加了存儲空間的開銷。
(4)i節(jié)點結構
是一個多級索引文件結構。基本思想是,給每個文件賦予一張稱為i節(jié)點的小表,在這張小表中列出文件屬性和文件中各塊在磁盤上的地址。
使用i節(jié)點的文件結構,不僅適合小文件使用,也可供大型文件使用,靈活性比較強。比一般的多級索引結構占用較少的系統(tǒng)空間。
怎樣確定文件的存取方式?請總結文件的存取方式、文件的物理結構和存儲設備類型之間的關系。
文件的存取方式主要有:順序存取和隨機存取兩種。選擇哪一種存取方式,即取決于用戶使用文件的方式,也有文件所使用的存儲介質有關系。
文件系統(tǒng)應由哪些部分組成?簡述各部分的主要工作。
請設計一個文件系統(tǒng)的FCB,并說明為何要安排FCB中每一項內容。
文件控制塊,文件的描述性數(shù)據(jù)結構,文件控制塊中的信息可以分為:文件存取控制信息、文件結構信息、文件管理信息。
通常包括:文件名、文件號、用戶名、文件長度、文件地址、文件類型、文件屬性、共享計數(shù)、文件的建立日期、保存期限、最后修改日期、最后訪問日期、口令、文件邏輯結構、文件物理結構等等。
文件目錄的作用是什么?為了實現(xiàn)按名存取,文件目錄應包含哪些內容?
文件目錄的作用是實現(xiàn)按名存取。
多級目錄結構的特點有哪些?建立多級目錄的好處好那些?
多級目錄結構的優(yōu)點是便于文件分類,且具有以下特點:
(1)層次清楚
(2)解決了文件重名問題
(3)查找搜索速度快
什么是當前目錄?引入當前目錄的好處是什么?當前目錄實現(xiàn)時要考慮什么問題?
文件系統(tǒng)向用戶提供了一個當前正在使用的目錄,稱為當前目錄。
使用當前目錄,使檢索路徑變短,檢索速度提高。
磁盤空間的管理辦法有幾種?
(1)位示圖
基本思想是,利用一串二進制位的值來反映磁盤空間的分配使用情況。
(2)空閑塊表
專門為空閑塊建立的一張表,該表記錄外存儲器全部空閑的物理塊:包括每個空閑塊的第一個空閑物理塊號和該空閑塊中空閑的物理塊數(shù)。
(3)空閑塊鏈表
將外存儲器中所有的空閑物理塊連成一個鏈表,用一個空閑塊首指針指向第一個空閑塊,隨后的空閑塊中都含有一個指向下一空閑塊的指針,最后一塊的指針為空,表示鏈尾,這樣就構成了一個空閑塊鏈表。
(4)空閑塊成組鏈接法
對鏈接表的一種改進方案,將n個空閑塊的地址存儲在第一個空閑塊中。
文件分配所用的位示圖應該保存在哪里,請說明原因。
位示圖對空間分配情況的描述能力強。一個二進制位就描述了一個物理塊的狀態(tài)。另外,位示圖占用空間較小,因此可以復制到內存,是查找即方便有快速。位示圖適用于各種文件物理結構的文件系統(tǒng)中。
系統(tǒng)打開文件表和用戶打開文件表的作用是什么?為什么將他們分來處理?
系統(tǒng)打開文件表用戶保存一打開文件的文件控制塊,通常放在內存。表中含有文件控制塊、共享計數(shù)、修改標志。
每個進程都有一個用戶打開文件表。表中含有文件描述符、打開方式、讀寫指針,系統(tǒng)打開文件表入口。
文件系統(tǒng)提供的主要文件操作有哪些?
(1)建立文件 create(文件名,訪問權限,(最大長度))
(2)打開文件 open(文件路徑名,打開方式)
(3)讀文件 read(文件名,(文件內位置),要讀的長度,內存目的地址)
(4)寫文件 write(文件名,記錄鍵,內存位置)
(5)關閉文件 close(文件名)
(6)刪除文件 delete(文件名)
(7)指針定位 seek(fd, 新指針的位置)
文件系統(tǒng)中建立、打開和關閉操作的主要目的是什么?建立和打開文件的主要區(qū)別是什么?能不能只用一個命令,完成文件的建立和打開操作?
建立文件的實質是建立文件的文件控制塊FCB,并建立必要的存儲空間,分配空的FCB,從而建立起系統(tǒng)與文件的聯(lián)系。
打開文件,是使用文件的第一步,任何一個文件在使用前都要先打開,即把文件控制塊FCB送入內存。
刪除文件時,系統(tǒng)根據(jù)用戶提供的文件名和文件描述符,檢查此次刪除的合法性,若合法則收回文件所占用的文件控制塊及物理塊等資源。
文件系統(tǒng)能允許用戶去關閉一個不是自己打開或建立的文件嗎?
什么是文件共享?可通過什么辦法來實現(xiàn)用戶之間共享某個文件?
文件的共享是指一個文件可以允許多個用戶共同使用。
在多級目錄結構中,連接法是常用的實現(xiàn)文件共享計數(shù)。對文件共享的連接法可以通過兩種連接方式實現(xiàn):一直是允許目錄項連接到任意表示文件目錄的節(jié)點上;另一種只允許連接到表示普通文件的節(jié)點上。
在設計文件系統(tǒng)的安全性時,應考慮哪些方面的情況?
(1)災禍
(2)硬件或軟件故障
(3)人為的出錯
什么是文件保護?什么是文件保密?
文件保護是保護文件不被破壞。常用的文件保護方式有:建立副本、定時轉儲。
文件保密是防止不經(jīng)文件擁有者授權而竊取文件。文件的保密措施有:隱藏文件目錄、設置口令、使用密碼以及病毒防范。
計算機用戶身份鑒別與驗證通常有哪幾種方式?
常用的文件安全控制的實現(xiàn)方法有哪些?
第八章 I/O設備管理
設備管理的目標和功能是什么?
目標是:使用戶和應用程序開發(fā)人員能夠方便地使用輸入輸出設備。
功能能有:解決I/O設備的性能和CPU性能不匹配矛盾的問題;實現(xiàn)對I/O設備的統(tǒng)一管理;保證用戶對I/O設備的使用必須是安全的。
為什么提出設備的獨立性概念?實現(xiàn)設備獨立性的好處有什么?
除了直接與設備打交道的低層軟件外,其他部分的軟件并不依賴于硬件。I/O軟件獨立于設備,可以提高設備管理軟件的設計效率。
什么是設備的靜態(tài)分配方式?什么是設備的動態(tài)分配方式?各有什么特點?、
靜態(tài)分配方式是在用戶作業(yè)開始執(zhí)行前,由系統(tǒng)一次分配該作業(yè)所要求的的全部設備、控制器。是安全分配方式,不會出現(xiàn)死鎖,但設備的使用效率低。
動態(tài)分配方式是在進程執(zhí)行過程中根據(jù)執(zhí)行需要進行。有利于提高設備的使用效率,但如果分配算法不當,則可能造成死鎖。
處理器與外部設備之間有幾種I/O控制方式?他們各自有什么特點?
(1)程序控制方式 PIO
由用戶進程直接控制處理器或內存與外圍設備之間進行信息傳送的方式
優(yōu)點:處理器與外設的操作能通過狀態(tài)信息得到同步,且硬件結構比較簡單
缺點:處理器效率較低,傳輸完全在處理器的控制之下,對外部出現(xiàn)的異常事件無實時響應的能力。
(2)中斷控制方式
(3)DMA控制方式(直接訪問內存)
(4)通道控制方式
啟動磁盤執(zhí)行一個I/O操作話花費的時間由哪幾部分組成?
尋找時間——磁頭在移動臂帶動下移動到制定柱面所花費的時間
延遲時間——指定扇區(qū)旋轉到磁頭下的時間
傳送時間——由磁頭進行讀寫完成信息傳送的時間
什么是移臂調度?什么旋轉調度?各有哪些主要的調度算法?
根據(jù)訪問者制定的柱面位置來決定執(zhí)行次序的調度,稱為移臂調度。
主要算法有:先來先服務、最短尋找時間優(yōu)先、電梯調度、單向掃描調度
根據(jù)延遲時間來決定執(zhí)行次序的調度,稱為旋轉調度。
為什么引入通道?有哪幾類通道?他們各自的特點是什么?
通道是一個特殊功能的處理器,他有自己的指令和程序,可以實現(xiàn)對外圍設備的統(tǒng)一管理和外圍設備與內存之間的數(shù)據(jù)傳送。
根據(jù)信息交換方式的不同,一個系統(tǒng)中可以設立三種類型的通道:選擇通道,數(shù)組多路通道、字節(jié)多路通道。
解釋通道命令、通道程序、地址字和通道狀態(tài)字
中央處理器與通道之間是怎樣配合工作的?
設備驅動程序的主要功能是什么?
設備驅動程序的最突出的特點是他與I/O設備的硬件結構密切聯(lián)系。是操作系統(tǒng)低層中唯一知道各種輸入輸出設備的控制器細節(jié)以及用途的部分。
請說明SPOOLing技術的基本思想,SPOOLing系統(tǒng)由哪些部分組成?簡述他們的功能。
SPOOLing系統(tǒng)主要包括輸入程序模塊、輸出程序模塊、作業(yè)調度模塊。
SPOOLing系統(tǒng)中輸入井和輸出井的作用是什么?
輸入井:在作業(yè)自行前就利用慢速設備將作業(yè)預先輸入到后援存儲器中去,作業(yè)進入內存運行后,使用數(shù)據(jù)時,直接從輸入井取出。
輸出井:作業(yè)執(zhí)行時不必啟動外部設備輸出數(shù)據(jù),只需將這些數(shù)據(jù)寫入輸出井中去,稱為緩輸出。
實現(xiàn)虛擬設備的主要條件是什么?
為什么說SPOOLing技術實現(xiàn)了虛擬設備?SPOOLing系統(tǒng)為什么能提高獨占設備的利用率?
在什么條件下要使用緩沖技術?
為了解決I/O設備與處理器速度不匹配的問題。
為什么相比單緩沖。采用雙緩沖可以提高I/O的性能?
單緩沖是在I/O設備與處理器間設置一個緩沖區(qū),不能實現(xiàn)I/O設備與I/O設備之間的并行操作。設置雙緩沖區(qū)可以解決兩臺I/O設備之間的并行操作問題。
DMA技術和通道技術的相同點和不通點是什么?
總結
以上是生活随笔為你收集整理的操作系统(02326)课后习题答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 开发效率神器 Lombok(含
- 下一篇: 计算机系统操作中级工试题及答案,计算机系