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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論