操作系統(tǒng) 習題及答案 第六章 文件系統(tǒng)_第1頁
操作系統(tǒng) 習題及答案 第六章 文件系統(tǒng)_第2頁
操作系統(tǒng) 習題及答案 第六章 文件系統(tǒng)_第3頁
操作系統(tǒng) 習題及答案 第六章 文件系統(tǒng)_第4頁
操作系統(tǒng) 習題及答案 第六章 文件系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章文件系統(tǒng)習題1.什么是文件和文件系統(tǒng)?文件系統(tǒng)的功能是什么?文件是一組帶標識的、在邏輯上有完整意義的信息項的序列。這里所謂“標識”是指文件名,“信息項”構成了文件的內容。文件系統(tǒng)是操作系統(tǒng)中統(tǒng)一管理信息資源的一種軟件。它管理文件的存儲、檢索、更新,提供安全可靠的共享和保護手段,并且方便用戶使用。作為一個統(tǒng)一的文件管理機構,文件系統(tǒng)應具有下述功能:(1)統(tǒng)一管理文件的存儲空間,實施存儲空間的分配與回收。(2)實現文件從名字到外存地址空間的映射。即實現文件的按名存取,以對用戶透明的方式管理文件名。(3)實現文件信息的共享,并提供文件的保護措施。(4)向用戶提供一個方便使用的接口(提供對文件系統(tǒng)和文件的操作命令,以及信息存取、加工等)。(5)系統(tǒng)維護及向用戶提供有關信息。(6)保持文件系統(tǒng)的執(zhí)行效率。文件系統(tǒng)在操作系統(tǒng)接口中占的比例最大,用戶使用操作系統(tǒng)的感覺在很大程度上取決于對文件系統(tǒng)的使用效果。(7)提供I/O的統(tǒng)一接口。2.文件按其用途和性能(hrz:性能是什么?打錯了?)可分為幾類?按文件的用途可以把文件分為三類:(1)系統(tǒng)文件操作系統(tǒng)和各種系統(tǒng)應用程序和數據所組成的文件。對于普通用戶而言,系統(tǒng)文件中的程序文件只允許用戶通過系統(tǒng)提供的調用接口來執(zhí)行,數據文件也只允許系統(tǒng)程序來讀寫,但不允許用戶對該類系統(tǒng)文件直接進行讀寫和修改。對于超級用戶,則可以對某些系統(tǒng)文件進行讀寫修改。(2)庫函數文件標準子程序及常用應用程序組成的文件。該類文件允許用戶對其進行讀取、執(zhí)行,但不允許對其進行修改。如C語言子程序庫、FORTRAN子程序庫等等。(3)用戶文件用戶文件是用戶委托文件系統(tǒng)保存的文件。這類文件只由文件的所有者或所有者授權的用戶才能使用。用戶文件可以由源程序、目標程序、用戶數據文件、用戶數據庫等等組成。3.對于用戶來說,有些系統(tǒng)把設備也看成是“文件”,試問這樣做有什么好處?還會帶來什么問題?一切皆文件的思想使得對設備、網絡連接等的訪問與對文件的訪問非常類似。這種設計的好處包括:統(tǒng)一接口:通過將設備也視為文件,系統(tǒng)提供了一種統(tǒng)一的訪問接口。無論是文件、設備還是網絡連接,都可以使用相似的文件I/O操作進行訪問,簡化了編程接口。一致性:統(tǒng)一文件系統(tǒng)接口使得在處理不同類型的資源時更加一致,減少了開發(fā)人員需要學習和記憶的不同接口數量。方便性:文件系統(tǒng)的概念是用戶和開發(fā)者熟悉的,因此將設備也視為文件使得與設備的交互更加直觀和方便。然而,這種設計也可能帶來一些問題,例如:抽象層次:有時將設備抽象為文件可能會導致某些特定設備功能無法充分表達,因為文件系統(tǒng)提供的抽象可能不夠精確。性能問題:一些特殊設備的訪問可能需要更低層次的操作,將其視為文件可能引入一些性能開銷。4.什么是文件的邏輯結構(物理結構)?有哪幾種典型的文件邏輯結構(物理結構)?這些結構各自有什么特點?文件的邏輯結構是面向用戶的文件的組織結構,即是用戶看到的文件的組織結構。常用的文件物理結構有順序結構、鏈接結構、索引結構。(1)順序結構又稱連續(xù)結構,這是一種最簡單的文件物理結構,它把邏輯上連續(xù)的文件信息依次存放在連續(xù)編號的物理塊中。在順序結構中,一個文件的目錄項中只要指出該文件占據的總塊數和起始塊號即可。(2)鏈接結構的實質就是為每個文件構造所使用磁盤塊的鏈表。使用這種鏈接結構的文件,將邏輯上連續(xù)的文件分散存放在若干不連續(xù)的物理塊中。在每個物理塊中都設有一個指針,該指針指向其后續(xù)的物理塊。(3)索引結構的文件把每個物理塊的指針字,集中存放在稱為索引表的數據結構中的內存索引表中。在每個文件相應的目錄條目中包括該文件的索引表地址,而索引表中的第i個條目指向文件的第i塊。這樣,要讀某個文件的第i塊,只需從該文件索引表的第i個條目中得到該文件塊的地址就行了。5.怎樣確定文件的存取方式?請總結文件的存取方式、文件物理結構和存儲設備類型之間的聯系。文件常用的存取方法有:順序存取和隨機存取等兩種方式。選擇哪一種文件的存取方式,既取決于用戶使用文件的方式,也與文件所使用的存儲介質有關。例如,數據庫文件適合采用隨機存取方法,而如果采用磁帶來存儲數據庫文件,會讀寫不便且效率低下。(1)順序存取順序存取就是按從前到后的次序依次訪問文件的各個信息項。對記錄式文件,是按記錄的排列順序來存取,例如,若當前讀取的記錄為Ri,則下一次讀取的記錄被自動地確定為Ri+1。順序存取只要把當前記錄的邏輯地址加上記錄的長度,就可以得到下一個記錄的邏輯地址。若要直接存取第n個記錄,其邏輯地址則為(n-1)×記錄長度。對流式文件,順序存取反映當前讀寫指針的變化,在存取完一段信息后,讀寫指針自動指出下次存取時的位置。(2)隨機存取隨機存取又稱直接存取,即允許用戶按任意的次序、直接存取文件中的任意一個記錄,或者根據存取命令把讀寫指針移到文件中的指定記錄處讀寫。UNIX類操作系統(tǒng)的文件系統(tǒng)采用了順序存取和隨機存取等兩種方法。已經基本不露面的MS-DOS操作系統(tǒng)也采用了順序存取和隨機存取這兩種方法。存儲介質磁帶磁盤物理結構連續(xù)結構連續(xù)鏈接索引存取方式順序存取順序順序順序隨機隨機6.文件系統(tǒng)應由哪些部分組成?簡述各部分的主要工作。(1)統(tǒng)一的管理文件的存儲空間:實施存儲空間的分配與回收。(2)文件從名字到外存地址空間的映射:實現文件的按名存取,以對用戶透明的方式管理文件名。(3)文件信息的共享和文件的保護措施。(4)方便用戶使用的接口:對文件系統(tǒng)和文件的操作命令,以及信息存取、加工等。(5)系統(tǒng)維護及向用戶提供有關信息的功能。(6)I/O的統(tǒng)一接口。請設計一個文件系統(tǒng)的FCB,并說明為何要安排FCB中每一項內容。FCB包含以下條目:文件名,是用戶給文件取的名稱。文件號,是系統(tǒng)在文件創(chuàng)建時所指定的一個編號,文件號唯一地標識一個文件,即在一個文件系統(tǒng)中,文件號是不重復的。用戶名,記錄了該文件創(chuàng)建者的名稱。一般而言,一個文件的創(chuàng)建者就是該文件的所有者。文件物理結構,標識了該文件內部的物理結構是順序結構、鏈接結構還是索引結構。文件邏輯結構,指出該文件是流式文件還是記錄式文件。文件物理位置,記錄了與文件在存儲介質中的物理位置有關的信息。如果文件是鏈接結構,則該欄目中保存了該文件記錄的首指針;如果是索引結構,則該欄目中保存了該文件的索引表地址。文件長度和記錄大小,則分別保存有該文件的長度和每個物理塊的大小。文件類型,這與該文件系統(tǒng)的文件類型的劃分方法有關。一些常見的文件類型有:源程序文件、可執(zhí)行文件、字符文件、數據文件、語音文件和視頻文件等等。文件屬性,指出文件是只讀式文件、可讀寫文件還是只可執(zhí)行文件。共享說明,指出該文件是否允許其他用戶使用,是僅允許組內用戶使用,還是允許系統(tǒng)中的所有用戶使用等等??诹?,是指為了文件的安全所設置的訪問文件的密碼。保存期限是指預計該文件的保管時間。有的文件只是臨時性使用,或只使用一次,就可以丟棄;有的文件甚至需要保存幾十年,比如一些重要的財務文件。8.文件目錄的作用是什么?為了實現按名存取,文件目錄應包含哪些內容?文件目錄是實現用戶按名存取文件的一種手段。在用戶要求讀一個文件時,系統(tǒng)便從文件目錄中查找用戶所指定文件是否存在,并核對是否有權使用。文件目錄需要包含文件名和對應的文件說明FCB9.多級目錄結構的特點有哪些?建立多級目錄的好處有哪些?在多級目錄結構中,除了最低一級的物理塊中裝有文件信息外,其他每一級目錄中存放的都是下一級目錄或文件的說明信息,由此形成層次關系,最高層為根目錄,最低層為文件。多級目錄結構的優(yōu)點是便于文件分類,且具有下列特點:l層次清楚。不同性質、不同用戶的文件可以構成不同的子樹,便于管理;不同層次、不同用戶的文件可以被賦予不同的存取權限,有利于文件的保護。l解決了文件重名問題。文件在系統(tǒng)中的搜索路徑是從根開始到文件名為止的各文件名組成,因此,只要在同一子目錄下的文件名不發(fā)生重復,就不會由文件重名而引起混亂。l查找搜索速度快??蔀槊款愇募⒁粋€子目錄,由于對多級目錄的查找每次只查找目錄的一個子集,因此,其搜索速度較一級和二級目錄時更快。10.用戶A有名為A1,A2和A3的三個私有文件,用戶B有名為B1,B2的兩個私有文件,這兩個用戶都要使用共享文件F。文件系統(tǒng)對所有用戶提供按名存取功能,為保證存取的正確性,文件系統(tǒng)應設置合理的目錄結構,請畫出文件系統(tǒng)設計的目錄結構。11.有一個可以帶4個終端的計算機系統(tǒng),該系統(tǒng)配置了一個磁盤用來存儲終端用戶的程序和數據?,F有4個上機實習的學生,他們在各自的終端上鍵入了自己的程序和數據,并都存儲在磁盤上,湊巧他們給各自的程序取的文件名均為F1,請問:(1)系統(tǒng)應采用怎樣的目錄結構才能區(qū)別這些學生的程序?并畫出這個目錄結構; (2)簡單闡明系統(tǒng)怎樣為這4個學生存取他們各自的程序?當學生要對一個文件進行存取操作或創(chuàng)建、刪除一個文件時,首先從第一級主文件目MFD找到對應的目錄名,并從用戶名查找到該用戶的第二級用戶目錄文件UFD。余下的操作就與一級目錄時相同了,即文件系統(tǒng)通過該目錄表提供的信息,對文件進行創(chuàng)建、搜索、讀寫和刪除等等操作。12.假定一個UNIX磁盤塊能存放1048個磁盤地址。用直接盤塊指針的文件的最大尺寸是多少?一重間接盤塊指針呢?二重間接盤塊指針呢?三重呢?假設每個磁盤塊的大小為B字節(jié):直接指針:文件最大尺寸是直接指向數據塊的指針數量乘以每個塊的大小,即:文件最大尺寸=直接指針數*塊大小假設所有inode中的指針都是直接指針,我們有:文件最大尺寸=1048*B字節(jié)一重間接指針:一個一重間接指針指向一個完整的塊,該塊包含1048個指向數據塊的指針,假設所有inode中的指針都是一重間接指針,我們有:文件最大尺寸=一重間接指針塊數*塊大小*每個塊的地址數)文件最大尺寸=1048*B*1048=1048^2*B字節(jié)二重間接指針:一個二重間接指針指向一個塊,該塊包含1048個指向其他塊的指針,這些塊又各自包含1048個指向數據塊的指針,假設所有inode中的指針都是二重間接指針,我們有:文件最大尺寸=二重間接指針塊數*塊大小*每個塊的地址數^2文件最大尺寸=1048*B*1048^2=1048^3*B字節(jié)三重間接指針:一個三重間接指針指向一個塊,該塊包含1048個指向其他塊的指針,這些塊又各自包含1048個指向更多塊的指針,而這些塊最終指向數據塊,假設所有inode中的指針都是三重間接指針,我們有:文件最大尺寸=三重間接指針塊數*塊大小*每個塊的地址數^3文件最大尺寸=1048*B*1048^3=1048^4*B字節(jié)13.假定需要一種機制,使得一個文件能被任何用戶讀,但只能被一個用戶寫。比如,全國高考成績,可被高考學生讀,但只能被有關辦公室修改成績。請設計該文件的存取控制機制。創(chuàng)建一個特定的用戶賬戶,比如叫做exam_office,此賬戶用于管理高考成績文件。將高考成績文件的所有權設置為exam_office用戶。設置文件的權限,使得只有所有者exam_office有寫權限,而其它用戶有讀權限。14.在UNIX系統(tǒng)中,采用i節(jié)點方式給出一個文件的所在磁盤塊的塊號。假設每個磁盤塊大小為1024字節(jié),并且每個間接盤塊能容納256個塊號,試問:(1)如果進程要讀取某文件的字節(jié)偏移量為8192,應該如何找到它所在磁盤塊?(2)如果想要存取某文件的字節(jié)偏移量為640000,又將如何?(1)字節(jié)偏移量為8192時的塊號確定:由于每個磁盤塊大小為1024字節(jié),我們可以通過將字節(jié)偏移量除以磁盤塊大小來找到所需的塊號:8192字節(jié)/1024字節(jié)/塊=8塊因此,偏移量8192位于第8個塊(從0開始編號,第8個塊實際上是塊號7偏移量也是從0編址,因此塊號為8偏移量也是從0編址,因此塊號為8,偏移為0(2)字節(jié)偏移量為640000時的塊號確定:同樣地,我們首先計算該偏移量位于哪個塊:640000字節(jié)/1024字節(jié)/塊=625塊(625號塊0偏移)由于每個間接塊可以包含256個塊號,我們首先需要確定這個字節(jié)偏移量是在直接指針指向的塊中,還是在一級間接指針、二級間接指針或三級間接指針指向的塊中。對于直接指針,如果UNIX文件系統(tǒng)使用了例如12個直接指針,那么它們會直接指向前12個塊(塊0到塊11)。假設我們已超出了直接指針的范圍,我們將進入一級間接指針。一級間接指針的第一個塊將包含接下來的256個塊號。在這個例子中:(625-12)塊=613塊因為我們已經超出了直接指針的范圍,所以我們需要通過一級間接指針來定位數據。我們需要找到第613塊在一級間接指針指向的塊號表中的位置:613/256=2...101這意味著我們需要跳過完整的兩個256塊號表(由一級間接指針指向),然后在第三個表中找到第101號個塊號的位置(因為256塊號的表從0開始計數,所以實際上是第102個塊號)。因此,偏移量640000位于一級間接指針指向的塊中,具體來說是在通過一級間接指針找到的第三第3個塊號表的第102個塊號中。15.什么是當前目錄?引入當前目錄的好處是什么?當前目錄實現時要考慮什么問題?文件系統(tǒng)向用戶提供了一個當前正在使用的目錄,稱為“當前目錄”,又稱“工作目錄”。如果需要,用戶可隨意更改當前目錄。用戶在訪問文件時,需要進行目錄檢索,這時用戶給出文件名,系統(tǒng)按名尋找目錄項。有兩種根據路徑名檢索的方法:一種是全路徑名,另一種是相對路徑。使用全路徑名檢索的方法,需要從根目錄開始,列出由根到用戶指定文件的全部有關子目錄,全路徑名又稱為“絕對路徑名”。但是,如果每次都從根結點開始檢索,很不方便。因為通常各目錄文件放在外存,故影響訪問速度,尤其是當目錄層次較多時檢索要耗費很多時間。為克服這一缺點,引入“相對路徑”的概念。所謂相對路徑的含義是,用于檢索的路徑名只是從當前目錄開始到所要訪問文件的一段路徑,即以當前目錄作為路徑的相對參照點。這樣檢索路徑縮短,檢索速度提高。16.為什么要劃分符號文件目錄與基本文件目錄?這樣做有什么好處?在操作系統(tǒng)中,劃分符號文件目錄與基本文件目錄是一種常見的做法,特別是在類Unix系統(tǒng)(如Linux)中,這種劃分有以下好處:組織性:通過將符號文件(如鏈接)與實際文件分開存放,可以更加清晰地組織文件系統(tǒng)。管理員和用戶可以輕松區(qū)分哪些是鏈接,哪些是真實的文件內容。安全性:分離這兩種類型的文件可以增強系統(tǒng)的安全性。例如,符號鏈接可能會用于指向敏感文件或目錄,通過將它們分開存放,可以更容易地設置和管理針對這些符號鏈接的安全策略。靈活性:符號鏈接提供了一種對文件和目錄進行間接引用的方式,使得在不移動實際文件的情況下對文件系統(tǒng)進行重新組織成為可能。這使得用戶可以在不同目錄之間創(chuàng)建指向相同文件的鏈接,從而提供快捷訪問。備份和恢復:在備份文件系統(tǒng)時,可以選擇性地備份符號鏈接或實際文件,這樣可以提供更多的靈活性,且在恢復時也能保持文件系統(tǒng)的結構不變。性能優(yōu)化:在某些情況下,通過使用符號鏈接可以避免復制文件,從而節(jié)省磁盤空間和I/O操作,這對于大型文件的管理尤為重要。兼容性:有些程序可能需要特定的文件路徑才能運行,通過使用符號鏈接,可以不修改程序的情況下,將其指向所需的文件或目錄。易于維護:在軟件升級時,如果使用符號鏈接指向當前版本,可以很容易地通過修改符號鏈接來切換到新版本,而不必修改引用該軟件的所有路徑。劃分符號文件目錄與基本文件目錄的具體實施方式可能因操作系統(tǒng)的不同而有所變化,但上述好處在多數系統(tǒng)設計中都是適用的。17.某文件系統(tǒng)中磁盤物理塊大小為512 B。假設文件A包含590個邏輯記錄,每個記錄大小為255B,每個磁盤塊可以存放2個記錄。文件A在該文件目錄中的位置如圖5-266-32所示。所示。此樹形文件目錄結構由根目錄節(jié)點、作為目錄文件的中間節(jié)點和作為信息文件的葉子節(jié)點組成。每個目錄項占127B,每個磁盤塊存放4個目錄項。根目錄常駐內存。(1)若文件的物理結構采用鏈接結構,要將文件A讀入內存,至少要存取幾次磁盤,為什么?(2)若文件的物理結構采用連續(xù)結構,要將文件A的邏輯記錄號為480的記錄讀入內存,至少要存取幾次磁盤,為什么?圖6-32習題17(1)鏈接結構的文件系統(tǒng):首先,我們需要確定訪問文件A需要訪問的目錄結構。從圖中可以看出,文件A位于以下路徑下:```root->usr->user1->mytext->A```由于根目錄常駐內存,我們不需要訪問磁盤來獲取它。對于其他目錄節(jié)點,我們需要按順序訪問它們以找到文件A的實際位置。每個目錄節(jié)點存儲在一個磁盤塊中,并且每個磁盤塊可以存放4個目錄項。訪問路徑中的目錄節(jié)點需要以下步驟:1.訪問目錄"usr"來找到"user1"的位置。2.訪問目錄"user1"來找到"mytext"的位置。3.訪問目錄"mytext"來找到文件A的起始塊位置。因此,我們至少需要3次磁盤訪問來定位到文件A的起始塊。接著,由于文件A使用鏈接結構,每個磁盤塊會包含一個指向下一個塊的指針,我們需要順序讀取所有的塊來讀入整個文件A。如之前計算的,文件A共需要295個磁盤塊。因此,總共需要的磁盤訪問次數是目錄訪問次數(3次)加上文件塊訪問次數(295次),共計298次。(2)連續(xù)結構的文件系統(tǒng):同樣,首先我們需要訪問目錄結構來找到文件A的起始塊位置。這部分和鏈接結構相同,需要3次磁盤訪問。接著,由于文件A是連續(xù)存儲的,一旦我們知道了起始塊的位置,我們就可以直接計算出邏輯記錄號為480的記錄所在的塊。如前所述,這個記錄位于第241個塊(從0開始計數)。因此,我們只需直接訪問這個塊即可。所以,對于連續(xù)結構,總共需要的磁盤訪問次數是目錄訪問次數(3次)加上訪問記錄所在塊的1次,共計4次。18.在實現文件系統(tǒng)時,為加快文件目錄的檢索速度,可利用“文件控制塊分解法”。假設目錄文件存放在磁盤上,每個盤塊512字節(jié);文件控制塊占64字節(jié),其中文件名占8字節(jié),文件控制塊分解后,第一部分占有10字節(jié)(包括文件名和文件內部號),第二部分占56字節(jié)(包括文件內部號和文件其他信息)。(1)假設某一目錄文件共有256個文件控制塊,試分別給出采用分解法前和分解法后,查找該目錄文件的一個文件控制塊的平均訪盤次數。(2)一般地,若目錄文件分解前占用n個盤塊,分解后改用m個盤塊存放文件名和文件內部號部分,請給出訪盤次數減少的條件。(1)查找文件控制塊的平均訪盤次數計算分解法前:每個盤塊可以存放(512/64=8)個文件控制塊。全部256個文件控制塊占用(\fra256/8=32)個盤塊。平均查找一個文件控制塊的訪盤次數為((1+32)/2=16.5)次。分解法后:第一部分(10字節(jié))的文件控制塊,每個盤塊可以存放(512/10=51)個(實際上由于無法完全利用最后一個盤塊的剩余2字節(jié)空間,所以實際可能稍微少于這個數字,但這里我們取整數計算)。第二部分(56字節(jié))的文件控制塊,每個盤塊可以存放(512/56≈9)個(剩余8字節(jié)無用)。對于第一部分,全部256個文件控制塊占用(256/51≈56)個盤塊(5個不夠,超過了)(實際上是5個盤塊多一點,但平均查找時我們取整數5個盤塊)。對于第二部分,假設我們已經通過第一部分找到了文件內部號,可以直接訪問對應的盤塊,那么第二部分直接訪問1次。平均查找一個文件控制塊的訪盤次數為((1+56)/2+1=4.5)次。(2)訪盤次數減少的條件分解前:平均查找一個文件控制塊的訪盤次數為((1+n)/2)。分解后:第一部分占用(m)個盤塊。平均查找第一部分的訪盤次數為((1+m)/2)。查找第二部分的訪盤次數為1(因為已經知道文件內部號,可以直接定位到對應盤塊)。平均查找一個文件控制塊的訪盤次數為((1+m)/2+1)。為了使得訪盤次數減少:分解后的訪盤次數必須小于分解前的訪盤次數:(1+m)/2+1<(1+n)/2簡化上述不等式:m+2<n所以,訪盤次數減少的條件是:m<n-219.磁盤空間的管理有幾種方法?位示圖。利用一串二進制位(bit)的值來反映磁盤空間的分配使用情況。空閑塊表。專門為空閑塊建立的一張表,該表記錄外存儲設備全部空閑的物理塊:包括第一個空閑物理塊號和空閑物理塊的個數??臻e塊鏈表。將外存儲器中所有的空閑塊連成一個鏈表,用一個空閑塊首指針指向第一個空閑塊,隨后的每個空閑塊中都含有指向下一個空閑塊的指針,最后一塊的指針為空,表示鏈尾,這樣就構成了一個空閑塊鏈表。20.文件分配所用的位示圖應該保存在哪里,請說明原因?文件分配所用的位示圖通常保存在存儲設備的文件系統(tǒng)元數據區(qū)域??焖僭L問:位示圖保存在元數據區(qū)域,使得文件系統(tǒng)能夠快速訪問該信息。這樣,當需要分配或釋放存儲空間時,系統(tǒng)可以迅速檢查位示圖來確定可用的簇或塊。數據保護:將位示圖保存在元數據區(qū)域有助于保護其免受用戶誤操作或破壞的影響。如果位示圖損壞,可能會導致文件系統(tǒng)的不一致性,因此將其與其他元數據分開有助于降低這種風險。一致性和原子性:將位示圖與其他元數據一起保存可以確保在文件系統(tǒng)操作期間維持一致性。例如,在分配新的存儲空間時,系統(tǒng)可以原子性地更新位示圖和其他相關元數據,以確保操作的完整性。21.系統(tǒng)打開文件表和用戶打開文件表的作用是什么?為什么將它們分開處理?系統(tǒng)打開文件表和用戶打開文件表在操作系統(tǒng)中用于管理打開的文件資源,它們有不同的作用,并且分開處理能夠提供更加靈活和高效的文件管理。系統(tǒng)打開文件表(System-WideOpenFileTable)的作用:唯一性:系統(tǒng)打開文件表為每個已打開的文件或設備維護一個唯一的入口。無論文件被多少個進程引用,系統(tǒng)都有一個統(tǒng)一的記錄來表示這個文件的狀態(tài)。共享和鎖定機制:通過系統(tǒng)打開文件表,操作系統(tǒng)可以實現對文件的共享和鎖定機制。不同的進程可以共享對同一文件的訪問,而且系統(tǒng)可以在這個層面上實施鎖定策略,防止數據的不一致性。資源管理:它維護著文件的各種狀態(tài)信息,比如當前文件指針位置、打開模式、文件打開次數、文件鎖狀態(tài)等,這有助于操作系統(tǒng)更有效地管理文件資源。用戶打開文件表(Per-ProcessOpenFileTable)的作用:進程級別的文件描述符:用戶打開文件表為每個進程維護了一個文件描述符表。文件描述符是一個非負整數,用于進程識別和訪問打開的文件。文件訪問狀態(tài):這個表記錄了每個進程關于打開文件的個性化信息,如文件描述符對應的系統(tǒng)打開文件表項、文件讀寫的權限等。系統(tǒng)資源的抽象:用戶打開文件表提供了一個抽象層,使得進程可以通過簡單的文件描述符來操作復雜的文件系統(tǒng)資源。分開處理的理由:效率和靈活性:分開處理可以讓系統(tǒng)更加高效地管理文件。進程可以共享系統(tǒng)打開文件表中的項,當多個進程打開同一個文件時,不需要為每個進程單獨保存一份文件的狀態(tài)信息。安全性和隔離性:進程間的文件描述符是隔離的,一個進程不能直接訪問或干擾另一個進程的文件描述符。這在多任務操作系統(tǒng)中是非常重要的安全功能。資源利用:當進程結束時,操作系統(tǒng)可以清理其用戶打開文件表,釋放文件描述符,而不需要影響到系統(tǒng)打開文件表中的項。同樣,當文件不再被任何進程引用時,系統(tǒng)可以從系統(tǒng)打開文件表中移除相應的項,釋放相關資源。復雜操作的簡化:分開處理簡化了如文件復制(duplication)、重定向(redirection)等復雜操作的實現,因為這些操作往往只需要在用戶打開文件表層面進行,而不必涉及系統(tǒng)打開文件表。22.假設某文件由100個邏輯記錄組成,每個邏輯記錄長度為80個字符。磁盤空間被劃分為若干塊,塊長度為2048個字符。為了充分利用磁盤空間,采用成組方式把該文件保存在磁盤上。(1)請回答該文件占用多少個磁盤塊?每個磁盤塊上存放了多少個邏輯記錄?(2)若文件物理結構是鏈接結構,當用戶要求處理第56個邏輯記錄時,系統(tǒng)應為用戶做哪些工作?(1)首先,我們需要計算整個文件占用的字符總數,然后根據磁盤塊的大小來確定所需的磁盤塊數量。文件的總字符數為:100個邏輯記錄×80個字符/邏輯記錄=8000個字符一個磁盤塊可以存放的字符數為2048個字符。所以,該文件占用的磁盤塊數能夠成組存放記錄為:2048/80=25個成組邏輯記錄,余48字節(jié)不夠存放1個記錄,100個記錄/25記錄/塊=4塊2048個字符/塊/8000個字符=?3.90625?=4塊接下來,我們來計算每個磁盤塊上可以存放的邏輯記錄數:一個邏輯記錄占用80個字符,所以在2048個字符的磁盤塊內可以存放的邏輯記錄數為:?80/2048?=?25.6?=25個邏輯記錄/塊但是,最后一個磁盤塊可能不會被完全填滿,因為100個邏輯記錄?3×25個邏輯記錄/塊=25個邏輯記錄,正好填滿第四個塊。這意味著每個磁盤塊都存放了25個邏輯記錄。(2)對于文件的物理結構采用鏈接結構,每個磁盤塊通常會包含指向下一個磁盤塊的指針信息。當用戶請求處理第56個邏輯記錄時,系統(tǒng)需要確定該邏輯記錄位于哪一個磁盤塊。由于一個磁盤塊存放25個邏輯記錄,所以第56個邏輯記錄位于:?25/56/25?=?2.24?=32號磁盤塊(從0編址因為第一個塊存放了1-25號邏輯記錄,第二個塊存放了26-50號邏輯記錄)系統(tǒng)需要做的工作包括:讀取第一個磁盤塊0,獲取指向下一磁盤塊的指針。根據指針讀取第二個磁盤塊1。重復上述過程,直到定位到包含第56個邏輯記錄的第三個磁盤塊2。在第三個磁盤塊內,找到第56個邏輯記錄(55)的具體位置6(5)并處理它。由于每個磁盤塊存放了25個邏輯記錄,第56個記錄將是第三個塊內的第一第6個記錄(因為第5550個是第二塊的最后一個)。23.假定磁帶的記錄密度為每英寸1000個字符,每一個邏輯記錄長為180個字符,塊與塊之間的間隙為0.5英寸,現有800個邏輯記錄需要存儲到磁帶上,請回答下列問題:(1)在沒有采用成組操作時,磁帶空間的利用率是多少?(2)在采用以8個邏輯記錄為一組的成組操作時,磁帶空間的利用率是多少?(3)為了使磁帶空間的利用率大于70%,采用記錄成組操作時的塊因子至少應為多少?(1)沒有采用成組操作時的磁帶空間利用率每個塊的長度(以英寸計)為:180/1000=0.18英寸每個塊加上間隙的總長度為:0.18+0.5=0.68英寸800個邏輯記錄占用的總磁帶長度為:800*0.68-0.5間隙少一個=543.54英寸間隙少一個但是,只有邏輯記錄的部分是有效使用的磁帶空間,總的有效字符數是:800*180=144000字符總的有效磁帶長度為:144000/100=144英寸因此,沒有采用成組操作時的磁帶空間利用率為:144/544543.5=26.475%(2)采用以8個邏輯記錄為一組的成組操作時的磁帶空間利用率如果采用成組操作,即每8個邏輯記錄組成一個塊,那么每個塊包含的字符數為:8*180=1440字符因為有800個邏輯記錄,所以需要的塊數為:800/8=100塊115每個塊的長度為:1440/1000=1.44英寸1.26100個塊加上間隙占用的總磁帶長度為:100*1.44+99*0.5=193.5英寸201.9總有效磁帶長度不變,為144英寸。144.9因此,采用成組操作時的磁帶空間利用率為:144/193.5=74.42%72%(3)為了使磁帶空間的利用率大于70%,采用記錄成組操作時的塊因子至少應為多少?設塊因子為(B),利用率為144/(800/B*180/1000+(800/B-1)*0.5)=144B/(144+400-0.5B)>0.7(800/B×(180×B/1000))/(800/B×(180×B/1000+0.5)-0.5)>0.7144/(144+400/B-0.5)>0.7144/0.7>144+400/B-0.5144(1/0.7-1)+0.5>400/B144(3/7)+0.5>400/BB>6.43取整B>=7不等式的解即為答案。24.假定某文件系統(tǒng)把文件存儲到磁盤上時采用鏈接結構,磁盤塊大小為512個字符,而邏輯記錄大小為250個字符?,F有一個名為F1的文件,共10個邏輯記錄。(1)怎樣存放該文件才能有效地利用磁盤空間?(2)畫出文件F1在磁盤上的鏈接結構(磁盤塊號自定);(3)若用戶要求讀出包含第1245個字符的邏輯記錄,系統(tǒng)完成的工作步驟有哪些?(1)由于磁盤塊的大小是512個字符,而邏輯記錄的大小是250個字符,因此每個磁盤塊可以存放兩個邏輯記錄,以及額外的一些信息(如鏈接到下一個磁盤塊的指針)。對于名為F1的文件,它共有10個邏輯記錄,每個記錄250個字符。為了有效地利用磁盤空間,可以采用以下存儲策略:由于一個磁盤塊可以存儲兩個邏輯記錄,我們可以將兩個邏輯記錄存儲在同一個磁盤塊中,直到所有邏輯記錄都被存儲。這樣可以減少所需磁盤塊的數量,從而提高空間利用率。F1文件的10個邏輯記錄將被分為5組,每組包含2個邏輯記錄。每組邏輯記錄(2個)占用一個磁盤塊。每個磁盤塊最后包含一個指向下一個磁盤塊的指針,以保持記錄之間的鏈接結構。對于前四個磁盤塊,每個塊的尾部將有一個指針指向下一個塊。最后一個磁盤塊(即包含第9和第10個邏輯記錄的塊)則不需要指向下一個塊的指針,因為它是文件的最后一個塊。如果每個磁盤塊的末尾需要保留一定的空間用于存儲指向下一個塊的指針,則實際可用于存儲邏輯記錄的空間可能略小于512個字符。如果指針占用的空間很小(例如不超過12個字節(jié)),這種差異可以忽略不計不影響存儲;如果指針占用的空間較大(超過12字節(jié)),則可能需要重新考慮如何分配邏輯記錄到磁盤塊中,以確保每個塊都能有效利用。通過這種方式,F1文件的10個邏輯記錄可以有效地存儲在5個磁盤塊中,每個磁盤塊存儲兩個邏輯記錄,并通過鏈接結構相互連接。這種方法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論