數(shù)據(jù)恢復(fù)構(gòu)造文件管理系統(tǒng)_第1頁
數(shù)據(jù)恢復(fù)構(gòu)造文件管理系統(tǒng)_第2頁
數(shù)據(jù)恢復(fù)構(gòu)造文件管理系統(tǒng)_第3頁
數(shù)據(jù)恢復(fù)構(gòu)造文件管理系統(tǒng)_第4頁
數(shù)據(jù)恢復(fù)構(gòu)造文件管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

構(gòu)造文件管理系統(tǒng)FAT計(jì)算機(jī)科學(xué)學(xué)院郭果FAT是微軟最早推出的管理文件的方式,目前有三種不同的格式如FAT12、FAT16、FAT32等。他們的文件管理思想是相似的,即原來是相同的。1、“一本書”的管理思想一本書對(duì)其上的文章的管理,可以看出,一本書有目錄,目錄中有文章的篇名及該文章的頁碼。讀者就可以根據(jù)目錄中的文章篇名和文章頁碼來找到該文章。事實(shí)上,在書的目錄中還隱含了其他有用的信息,如一篇文章的開始位置、結(jié)束位置(也隱含了文章的長度)等信息。1、“一本書”的管理思想可以進(jìn)一步來假定,如果該書可以任意裝訂,也就是說,該書可以由讀者任意編排文章。在這種情況下,自然就有以下的考慮:如,一篇文章如何加入到某頁中?如何把一篇文章從書中撕掉、對(duì)應(yīng)的目錄又如何修改?如何反應(yīng)加入的或撕掉的文章的日期、文章的長度?等等信息!2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)根據(jù)一本書的對(duì)文章的管理思想,在一個(gè)主分區(qū)內(nèi),理解進(jìn)行文件的管理思想(或是數(shù)據(jù)存儲(chǔ)的原理)。在該分區(qū),已分好了區(qū)(由分區(qū)工具完成)、也進(jìn)行了高級(jí)格式化。于是,分區(qū)上便有了MBR、DBR及某種FAT。不過,MBR及DBR暫時(shí)不考慮!這里只關(guān)心FAT2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)現(xiàn)在假定有100KB的一個(gè)分區(qū)??梢院唵蔚卣J(rèn)為:這100KB是線性地址空間!為了討論方便,把這100KB分成100份,每份1KB!再假定,有三個(gè)文件要依次存儲(chǔ)在這100KB地空間中,這三個(gè)文件是:1.A.TXT10KB;2.B.TXT53.6KB;3.C.TXT20.5KB2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)很自然地想到,為了要與一本書的管理方式相同,這三個(gè)文件是順序地存放在這100KB的空間中的。同時(shí),要注意,這三個(gè)文件的大小、文件開始的位置等信息!!為了能方便地進(jìn)行文件查找,這是必須要考慮的信息??!如同書的目錄??!2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)在這個(gè)目錄中,用100KB中的第一個(gè)1KB來放這個(gè)目錄。這個(gè)目錄,就是我們所說的這三個(gè)文件的特征,或叫文件的屬性!另外,還要了解,100KB空間,分成了100份后,每份為1KB,而且是該分區(qū)中的最小單位,是不能再分割的,我們就把這個(gè)1KB叫扇!同時(shí)也叫簇!!很明顯,A.TXT是10KB,就要用10個(gè)扇,或叫10個(gè)存儲(chǔ)單位,或叫10個(gè)簇??!B.TXT是53.6KB,要54個(gè)簇;C.TXT是20.5KB,要21個(gè)簇。2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)

如下圖4.3.1的存儲(chǔ)方式。??!

可以看出這樣一個(gè)問題??!B.TXT和C.TXT的這種存放方式,不是要浪費(fèi)空間嗎?(各自浪費(fèi)了不到1簇的空間)能不能緊挨著??!2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)

接下來,要考慮這三個(gè)文件的目錄內(nèi)容(存儲(chǔ)的屬性!)有那些?。∨c書的目錄比較??!對(duì)于一個(gè)文件而言,有:(1)文件名;(2)開始的位置(即所在簇的位置號(hào));(3)文件大小;(4)創(chuàng)建日期、時(shí)間;(5)文件可能的修改日期、時(shí)間;(6)文件可能的讀寫屬性等。

2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)有了這些文件的屬性后,就可以用數(shù)據(jù)庫的思想來存放這些文件的屬性了!方法是:在100KB的第一個(gè)1KB的空間內(nèi),看成是10份(每份100B)文件的屬性記錄。就有了10條數(shù)據(jù)庫記錄。如下圖4.3.2??!

2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)

2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)可以看出,是可以對(duì)這些文件進(jìn)行正確的讀寫了,以下就是對(duì)這三個(gè)文件進(jìn)行的一些操作。(1)讀:很自然,目錄很清楚,是不成問題的;(2)寫:要注意,一個(gè)新的文件一定要是一個(gè)14KB的、或以內(nèi)的!而且也只能寫在最后面的空余空間內(nèi)。另外,假如A.TXT的10KB文件是不存在的,則新加入的文件一定要小于或等于10KB,才能在原A.TXT文件的位置放下!(3)修改:如果對(duì)A.TXT這個(gè)10KB的文件進(jìn)行修改,其修改后的大小是不能大于10KB?。?)超寫:如果對(duì)A.TXT文件修改后(增加了內(nèi)容?。笥诹?0KB,或新放一個(gè)大于10KB的文件,將如何進(jìn)行??

2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)對(duì)于前面的三種操作是能夠順利進(jìn)行的,對(duì)于第四個(gè)操作,有什么解決方法??一個(gè)解決方法是:要加大A.TXT文件的容量,可以把B.TXT文件刪除了!假定,A.TXT和C.TXT文件還存在,共用簇為31個(gè)簇,還余下68個(gè)簇。要在B.TXT的位置放一個(gè)文件,假定文件為:D.TXT,大小為60.3KB,占用簇為61簇。如下圖4.3.3和4.3.4?。?、構(gòu)造一個(gè)線性的文件管理系統(tǒng)

2、構(gòu)造一個(gè)線性的文件管理系統(tǒng)這個(gè)操作看來還可以,按說能放下。可是往那里放呢?沒有61個(gè)連續(xù)的空間了,不可能把一個(gè)文件切割成兩個(gè)文件來存放,而且目錄行沒辦法寫了,一個(gè)文件也不可能有兩個(gè)目錄??磥頍o連續(xù)塊存儲(chǔ)暫時(shí)也是不行的。得出這樣一個(gè)結(jié)論:

文件必須是連續(xù)空間的存儲(chǔ)這個(gè)文件管理系統(tǒng)(方法)有問題??!3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┯幸环N雜志,由于排版的問題,可以讓一些文章在不同的頁中排版,并在轉(zhuǎn)頁的那一頁標(biāo)明要轉(zhuǎn)到的那一頁,也就是一篇文章可以拆成幾個(gè)部分分別排在書的不同位置。這是一個(gè)十分重要的思想??!這就是說:允許文件不連續(xù)地存放!或是,文件可以在不同的簇中存放!3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┖苊黠@,如果還用以前設(shè)計(jì)的文件目錄結(jié)構(gòu),又如何反映文件在不同簇中的存放呢?解決方法1:以文件映射簇!也就是一個(gè)文件用了多少簇,就在目錄中加入這些文件簇的相關(guān)記錄??!很明顯,這個(gè)方法使問題更復(fù)雜了!首先是,目錄空間可能不夠用!第二是,同一個(gè)文件有若干個(gè)屬性記錄!當(dāng)如果文件名修改后,還得對(duì)這些記錄進(jìn)行修改!看來,用文件映射簇的方法不可取??!3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┙鉀Q方法2:如果換個(gè)思想,以簇來映射文件呢?具體做法是:在100KB的第一個(gè)1KB中,即第0簇,專門用來存放數(shù)據(jù)區(qū)中數(shù)據(jù)與簇號(hào)的關(guān)系!也就是用來記錄數(shù)據(jù)區(qū)中每一簇的被占用情況,暫時(shí)稱其為文件分配表(將來的FAT)。3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┘俣ǎ€是以前的三個(gè)文件!如圖4.3.5和4.3.6。3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┑?簇還是原來的目錄,數(shù)據(jù)就從第二簇開始存放!現(xiàn)在就把0簇叫文件分配表FAT!很明顯,有了“文件分配表”和“文件目錄”,就可以完全解決文件的自由讀寫和自由修改了。這個(gè)文件分配表是一個(gè)數(shù)據(jù)表,也是被構(gòu)造出來的一個(gè)數(shù)據(jù)表。如圖4.3.7記錄了簇與數(shù)據(jù)(文件)的對(duì)應(yīng)關(guān)系:3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形!)

3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┰摻M織方式是完全可以實(shí)現(xiàn)對(duì)文件占有簇的記錄的。但還不夠效率,從這張表可以看出,也有問題!就是太羅嗦!!比如文件名在文件分配表中記錄太多,浪費(fèi)空間,而實(shí)際上在目錄中已經(jīng)記錄了文件的開始簇了。簇所對(duì)應(yīng)的文件名,要反復(fù)地使用,而文件名本身要占用一定地空間,所以,這個(gè)文件分配表會(huì)隨文件的修改而越來越大,最后會(huì)空間不夠!!即是一個(gè)簇與文件名的對(duì)應(yīng)要占用多個(gè)字節(jié)!所以,這個(gè)文件分配表不合理!3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┦聦?shí)上,在文件目錄中,一個(gè)文件的目錄記錄,已標(biāo)明了該文件的文件名,同時(shí),也是重要的一點(diǎn),他標(biāo)明了該文件的開始簇!那么,能不能在文件分配表中,只用2個(gè)字節(jié)來表示簇與數(shù)據(jù)(文件)的對(duì)應(yīng)呢?

這又是一個(gè)重要的思想!3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┮簿褪牵河面湹姆绞絹泶娣耪加写氐年P(guān)系!如圖4.3.8。原來是簇對(duì)應(yīng)數(shù)據(jù)(文件)的文件名,現(xiàn)在簇號(hào)對(duì)應(yīng)的是文件占用的下一個(gè)簇的簇號(hào)!這樣,文件分配表的容量問題也解決了,這就是改良的文件分配表??!3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。├斫馕募峙浔淼囊饬x:如文件a.txt,根據(jù)目錄項(xiàng)中指定的a.txt的首簇為2,然后找到文件分配表的第2簇記錄,上面登記的是3,就能確定下一簇是3,找到文件分配表的第3簇記錄,上面登記的是4,就能確定下一簇是4......直到指到第11簇,發(fā)現(xiàn)下一個(gè)指向是FF,就是結(jié)束。文件便絲毫無誤讀取完畢。3、構(gòu)造一個(gè)非線性的文件管理系統(tǒng)(一個(gè)FAT的雛形?。┪覀儊砜戳硗庖环N情況:在前面提到的問題,就是將b.txt刪除以后,存入一個(gè)大小為60.3KB的d.txt的情況。利用簇鏈可以很容易的實(shí)現(xiàn)。實(shí)現(xiàn)后的磁盤如圖4.3.9

、4.3.10

和4.3.11。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論