“操作系統(tǒng)概論”習題解答之文件管理

字號:

第4章 習題解答
    1.什么叫文件?
    答:所謂文件是指邏輯上具有完整意義的信息集合。在計算機系統(tǒng)中,很多東西都是以文件的形式存放在輔存中供用戶使用,其中包括作業(yè)的源程序、目標程序、數(shù)據(jù)以及各類軟件程序等等。
    2.文件系統(tǒng)應具有哪些功能?
    答:為了正確地按名存取,文件系統(tǒng)具有如下功能:
    ①實現(xiàn)從邏輯文件到物理文件間的轉換。
    ②有效地分配文件的存儲空間。
    ③建立文件目錄。
    ④提供合適的存取方法以適應各種不同的應用。
    ⑤實現(xiàn)文件的共享、保護和保密。
    ⑤提供一組文件操作。
    3.什么是文件的邏輯結構和存儲結構?
    答:用戶是從使用的角度來組織文件,用戶把能觀察到的且可以處理的信息根據(jù)使用要求構造成文件,這種構造方式稱為文件的邏輯結構。文件系統(tǒng)是從文件的存儲和檢索的角度來組織文件,在存儲媒介上的文件構造方式稱為文件的存儲結構。
    4.解釋順序文件、鏈接文件和索引文件。
    答:(1)順序結構
    將一個文件邏輯上連續(xù)信息存放在存儲介質(磁盤)中相鄰的塊上,這種存儲結構保證了邏輯記錄順序和物理塊順序相一致。磁帶上的文件只能是順序結構的,因為磁帶機本身就是個順序存取的設備。
    (2)鏈接結構(串聯(lián)結構)
    文件所占用的存儲介質物理塊不再要求連續(xù)(相鄰)的,可以分散在存儲媒介上。在結構上,采用鏈表的結構方式,將每一塊的最后一個單元用來存放下一個物理塊的地址,形成指針鏈。最后一塊的最后一個單元為0表示結束。
    (3)以索引結構
    和鏈接結構一樣,也是一個非連續(xù)存儲的結構,但它不采用鏈接方式,而是為每一個文件建立一張索引表,索引表中存放文件中每一個記錄存放的物理地址。
    5.解釋記錄的成組和分解
    答:當文件的一個邏輯記錄的長度小于一個物理塊的長度的時候,我們可以把若干個邏輯記錄合并成一組存到一個物理塊中,這個工作稱為成組。訪問某個記錄的時候,需要把這個記錄從它所在的塊中的一組記錄中分離出來,這一工作稱為分解。記錄的成組和分解可以提高存儲空間的利用率,并且可以減少存儲設備的啟動次數(shù)。
    6.假定某個文件由長度為80個字符的100個邏輯記錄組成,磁盤存儲空間被劃分成長度為2048個字符的塊,為有效地使用磁盤空間,你可采用成組方式把文件存放到磁盤上,回答下列問題:
    ①該文件至少占用多少磁盤存儲塊?
    ②若該文件是以鏈接結構形式在磁盤上的,現(xiàn)用戶要求使用第28個邏輯記錄,寫出系統(tǒng)為滿足用戶要求而應做的主要工作。
    答:①每塊能存放的記錄個數(shù)為「2048/80」=25個。一共需要 100/25=4塊。
    ②首先系統(tǒng)計算出第28個記錄在第2個物理塊上,然后系統(tǒng)通過文件目錄讀出第一塊物理塊,在該塊最后單元找到第二物理塊的地址,讀出第二物理塊,再經(jīng)過肇按第28個記錄在第二塊中的位置讀出該記錄。
    7.舉一例說明數(shù)據(jù)的分解操作過程。
    答:就以上題為例,假定某個文件由長度為 80個字符的 100個邏輯記錄組成,磁盤存儲空間被劃分成長度為2048個字符的塊,為有效地使用磁盤空間,采用成組方式把文件存放到磁盤上,現(xiàn)用戶要求每次讀一個邏輯記錄到他的工作區(qū)中,當對該邏輯記錄處理后,要求把下一個邏輯記錄讀人到工作區(qū),直到連續(xù)讀出8個記錄。
    由于主存儲器與外存之間的信息交換是以塊為單位的,所以應當在主存中開辟一個2048字節(jié)的緩沖區(qū)。由上題可知每塊中含有25個記錄,文件一共占用4塊,用戶在指明了要讀人記錄的記錄號N后,根據(jù)公式[N/25」得到該記錄應該在4塊的哪一塊中,將該塊讀人到緩沖區(qū)中,并根據(jù)公式(N/25)得到該記錄是塊內(nèi)的第幾個記錄(式中[]表示取整,()表示取余數(shù)),將該記錄從緩沖區(qū)拷貝到用戶工作區(qū),然后 N+l,如果[(N+1)/25]=[N/25],則將緩沖區(qū)中的下一個記錄拷貝到用戶工作區(qū),而無需啟動 I/O操作,否則,按照新的塊號將一個數(shù)據(jù)塊讀進緩沖區(qū),并將記錄從緩沖區(qū)拷貝到用戶工作區(qū)。
    8.頁式存儲管理中用位示圖表示主存空間的分配情況,磁盤存儲空間的分配也可用位示圖來表示,兩者能合用一張位示圖嗎?
    答:不行,主存空間和磁盤存儲空間是兩種不同的存儲空間,應該使用不同的位示圖來表示分配情況。
    9.為了實現(xiàn)按名存取,文件目錄應包含哪些內(nèi)容?
    答:為了實現(xiàn)按名存取,文件目錄至少要包括文件的名字和文件存放的物理地址,除此之外,目錄中還可以包含其他的控制和管理文件的信息,如:文件類型、記錄長度、記錄個數(shù)、口令、建立日期、保存期限、上次修改時間等。
    10.怎樣才能防止不同的用戶可能給各自的文件取了相同的名字而造成混亂?
    答:可以采用二級目錄或多級目錄結構。在主目錄中登記每個用戶的名字和用戶文件目錄的存放地址;在第二級用戶文件目錄中登記用戶的每個文件的文件名及文件存放位置。這樣,不同的用戶有同名文件時,由于文件的路徑是不一樣的,所以不會產(chǎn)生混亂。多級目錄是在二級目錄的基礎上,在用戶目錄下,根據(jù)項目和應用領域再建立子目錄和孫目錄,這樣可以避免同一個用戶的同名文件造成的混亂。
    11.有一個文件可供兩個用戶共享,但這兩個用戶卻對這個文件定義了不同的名字,為了保證兩個用戶都能存取該文件,應怎樣設置文件目錄?簡單畫出目錄結構關系且解釋之。
    答:采用二級目錄結構。如圖4-3所示,用戶 zhangshan和用戶 lisi對一個共享文件分別定義了不同的名字ww和pw,只要在它們各自的目錄表中把相應的文件存放地址填上共享文件在存儲介質上的起始位置,當用戶zhangshan存取ww文件,用戶lisi存取pw文件時,文件系統(tǒng)按照目錄查找文件時得到相同的文件存放位置。于是各用戶使用了不同的文件名,卻仍能共享同一文件。
    12.總結文件的存取方法、文件的存儲結構、存儲設備類型之間的關系。
    答:文件的存取方法有兩種:順序存取和隨機存取。文件的存取方法決定了文件的存儲結構,它們的關系如表4-1所示。
    13.文件系統(tǒng)提供的主要文件操作有哪些?
    答:文件系統(tǒng)提供的主要文件操作有以下幾種:
    ①‘建立“操作。用戶要求把一個新文件存放到存儲介質上時,首先要向系統(tǒng)提出”建立“要求。系統(tǒng)在接到用戶的”建立“要求后,在文件目錄中尋找空目錄項進行登記
    ②“打開”操作。用戶要使用存放在存儲介質上的文件前,必需提出“打開 ”要求。系統(tǒng)在接到用戶的“打開”要求后,找到該用戶的文件目錄,如果文件目錄在外存上,還要把它調入到主存,然后從文件目錄中找到與用戶的需求相符合的目錄項,取出文件存放的物理地址。如果是索引文件,還要將這個文件的索引表也調入到主存中,這樣,后繼的讀操作能夠很快地進行。
    ③“讀/寫”操作。用戶調用這個操作來讀/寫文件,系統(tǒng)只允許用戶對已經(jīng)過“打開”或“建立”操作的文件進行讀/寫。對順序存取方式的文件,用戶只需給出讀/寫的文件名,而無需給出讀/寫記錄的編號,系統(tǒng)執(zhí)行本操作的時候,每次順序讀/寫一個或幾個邏輯記錄。對于采用隨機方式的文件,用戶除了要給出需讀/寫的文件名外,還要給出需讀/寫記錄的編號(或主鍵),系統(tǒng)執(zhí)行讀操作的時候,按指定的記錄號(或鍵)查索引表,得到記錄存放的物理地址后,按地址將記錄讀出;執(zhí)行寫操作的時候,在索引表找到一個空登記項且找一個空閑的存儲塊,把記錄存人找到的存儲塊中,同時在索引表中登記
    ④“關閉”操作。經(jīng)過“打開”或“建立”的文件,在讀/寫完畢后,需要執(zhí)行“關閉”操作。執(zhí)行關閉操作時要檢查讀到主存儲器中的文件目錄或索引表是否被改變,如果改過,則應把修改過的文件目錄或索引表重新保存好。一個關閉后的文件不能再使用,如果要使用,必須重新執(zhí)行“打開”操作。用戶提出“關閉”要求時,必須說明關閉哪個文件。
    ⑤“刪除”操作。用戶用本操作向系統(tǒng)提出刪除一個文件的要求,系統(tǒng)執(zhí)行時把指定文件的名字從目錄和索引表中除取,并收回它所占用的存儲區(qū)域。
    14.文件系統(tǒng)中為什么要設置“建立”、“打開”和“關閉”操作?
    答:要把一個文件存放到存儲介質上或使用一個已經(jīng)建立在某存儲介質上的文件前,首先應該把文件的屬性(文件名、文件類型、可訪問性、記錄大小等),文件的管理信息(口令、建立日期、保存期限等)以及存取方式,通過特定的形式告訴文件系統(tǒng)?!敖ⅰ薄!按蜷_”和“關閉”操作就是為此目的而設置的。
    用“建立”操作向系統(tǒng)提出生成一個新文件的要求。
    用“打開”操作向系統(tǒng)申請讀一指定文件的權力。
    用“關閉”操作表示已經(jīng)不再要讀/寫某個文件了,向系統(tǒng)歸還使用文件的權力。
    15.當用戶要讀一個尚未打開的文件的時候,系統(tǒng)怎么處理?
    答:當用戶要讀一個文件的時候,系統(tǒng)先要驗證該用戶是否有使用權力,所以任何一個用戶如果要讀文件前都要執(zhí)行“打開”操作。系統(tǒng)不允許隱式使用,那么當讀一個還沒有打開的文件,系統(tǒng)不會執(zhí)行讀操作,而是返回一個“文件未打開”的錯誤信息。如果系統(tǒng)允許隱式使用,那么系統(tǒng)將會替用戶做打開文件的工作。
    16.文件系統(tǒng)能允許用戶去“關閉”一個不是自己“打開”或“建立”的文件嗎?
    答:不能!一個不是自己“打開‘域”建立“的文件,是沒有權力使用和強行關閉的。