導航:首頁 > 源碼編譯 > 文件系統演算法設計

文件系統演算法設計

發布時間:2022-04-12 08:54:13

① 請教高手!!!

1。考試難度與以前差不多。

2。沒有上機考試,依然採取筆試方式。

3。與三級網路相比,就我個人認為,程序員考試相對要容易。三級網路既考筆試又考上機,且考試涉及的知識面和程序員差不多廣。
但主要還是由每個人的興趣愛好來決定。
程序員比較適合今後搞編程這行,而三級網路主要適合今後從事網路工程方面的工作。

附:

2007年程序員考試大綱

一考試說明
1.考試要求:
(1)掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
(2)理解計算機的組成以及各主要部件的性能指標;
(3)掌握操作系統、程序設計語言的基礎知識;
(4)熟練掌握計算機常用辦公軟體的基本操作方法;
(5)熟練掌握基本數據結構和常用演算法
(6)熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
(7)熟悉資料庫、網路和多媒體的基礎知識;
(8)掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
(9)了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(10)了解信息化、計算機應用的基礎知識;
(11)正確閱讀和理解計算機領域的簡單英文資料。
2.通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照程序設計規格說明書編制並調試程序,寫出程序的相應文檔,產生符合標准規范的、實現設計要求的、能正確可靠運行的程序;具有助理工程師(或技術員)的實際工作能力和業務水平。
3.本考試設置的科目包括:
(1)計算機硬軟體基礎知識,考試時間為150分鍾,筆試;
(2)程序設計,考試時間為150分鍾,筆試。

二、考試范圍

考試科目1:計算機硬軟體基礎知識
1. 計算機科學基礎
1.1 數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2 數據的表示
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)
非數值表示(字元和漢字的機內表示、聲音和圖像的機內表示)
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)
1.3 算術運算和邏輯運算
計算機中二進制數的運算方法
邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學應用
常用數值計算(矩陣、方程的近似求解、插值)
排列組合、應用統計(數據的統計分析)
1.5 常用數據結構
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法
常用的排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2. 計算機系統基礎知識
2.1 硬體基礎知識
2.1.1 計算機系統的組成,硬體系統、軟體系統及層次結構
2.1.2 計算機類型和特點
微機、工作站、伺服器、大型計算機、巨型計算機
2.1.3 中央處理器CPU
算器和控制器的組成,常用的寄存器、指令系統、定址方式、指令執行控制、處理機性能
2.1.4 主存和輔存
存儲器系統
存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等)
主存儲器的組成、性能及基本原理
Cache的概念、虛擬存儲的概念
輔存設備的類型、特性、性能和容量計算
2.1.5 I/O介面、I/O設備和通信設備
I/O介面(匯流排、DMA、通道、SCSI、並行口、RS232C、USB、IEEE1394)
I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、攝像頭,以及各種輔存設備)
I/O設備控制方式(中斷控制、DMA)
通信設備的類型和特性(Modem、集線器、交換機、中繼器、路由器、網橋、網關)及其連接方法和連接介質(串列連接、並行連接,傳輸介質的類型和特性)
2.2 軟體基礎知識
2.2.1 操作系統基礎知識
操作系統的類型和功能
操作系統的內核(中斷控制)和進程概念
處理機管理、存儲管理、設備管理、文件管理、作業管理
漢字處理
圖形用戶界面及其操作方法
2.2.2 程序設計語言和語言處理程序基礎知識
匯編、編譯、解釋系統的基礎知識
程序設計語言的基本成分(數據、運算、控制和傳輸)
過程(函數)調用
2.3 網路基礎知識
網路的功能、分類、組成和拓撲結構
網路體系結構與協議(OSI/RM,TCP/IP)
常用網路設備與網路通信設備,網路操作系統基礎知識和使用
Client/Server結構、Browser/Server結構
LAN基礎知識
Internet基礎知識
2.4 資料庫基礎知識
資料庫管理系統的主要功能和特徵
資料庫模型(概念模式、外模式、內模式)
數據模型,ER圖
數據操作(關系運算)
資料庫語言(SQL)
資料庫的主要控制功能
2.5 多媒體基礎知識
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型
簡單圖形的繪制,圖像文件的基本處理方法
音頻和視頻信息的應用
簡單多媒體應用製作方法
2.6 系統性能指標
響應時間、吞吐量、周轉時間等概念
可靠性、可維護性、可擴充性、可移植性、可用性、可重用性、安全性等概念
2.7 計算機應用基礎知識和常用辦公軟體的操作方法
信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等概念
文字處理基礎知識和常用操作方法
電子表格處理基礎知識和常用操作方法
演示文稿製作方法
電子郵件處理操作方法
網頁製作方法
3. 軟體開發和運行維護基礎知識
3.1 軟體工程和項目管理基礎知識
軟體工程基本概念
軟體開發各階段的目標和任務
軟體過程基本知識
軟體工程項目管理基本知識
面向對象開發方法基礎知識
軟體開發工具與環境基礎知識(CASE)
軟體質量管理基礎知識
3.2 軟體需求分析、需求定義及軟體基礎知識
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))
面向對象設計、結構化設計基礎知識
模擬設計、代碼設計、人機界面設計要點
3.3 程序設計基礎知識
結構設計程序設計,程序流程圖,NS圖,PAD圖
程序設計風格
面向對象設計基礎知識、可視化程序設計基礎知識
3.4 程序測試基礎知識
黑盒測試、白盒測試、灰盒測試基礎知識
測試工作流程
3.5 軟體開發文檔基礎知識
3.6 軟體運行和維護基礎知識
軟體運行基礎知識
軟體維護基礎知識
4. 安全性基礎知識
安全性基本概念
計算機病毒的防治,計算機犯罪的防範
訪問控制
加密與解密基礎知識
5. 標准化基礎知識
標准化基本概念
國際標准、國家標准、行業標准、企業標准基礎知識
代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准基礎知識
標准化機構
6. 信息化基本知識
信息化基本概念
全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略常識
有關的法律、法規要點
過程教育、電子商務、電子政務等常識
企業信息資源管理常識
7. 計算機專業英語
掌握計算機技術的基本詞彙
能正確閱讀和理解本領域的簡單英文資料

考試科目2:程序設計
1. 內部設計
1.1 理解外部設計
1.2 功能劃分和確定結構
數據流圖、結構圖
1.3 物理數據設計
確定數據組織方式、存儲介質,設計記錄格式和處理方式
1.4 詳細輸入輸出設計
界面設計、報表設計
1.5 內部設計文檔
對程序介面、程序功能、人機界面、輸入輸出、測試計劃的描述
1.6 內部設計文檔
2. 程序設計
2.1 模擬劃分(原則、方法、標准)
2.2 編寫程序設計文檔
模塊規格說明書(程序處理邏輯的描述、輸入輸出數據格式的描述)
測試要求說明書(測試類型和目標、測試用例、測試方法)
2.3 程序設計評審
3. 程序實現
3.1 編程
編程方法和標准
程序設計語言的使用
人工走查
程序文檔化
3.2 程序測試
准備測試環境和測試工具
准備測試數據
寫出測試報告
4. 程序設計語言(C語言為必選,其他語言可以任選一種)
4.1 C程序設計語言(ANSI C標准)
程序結構,語法,數據類型說明,可執行語句,函數調用,標准庫函數,指針
4.2 C++程序設計語言(ANSI C++標准)
C++和面向對象程序設計,語法和程序結構,類、成員、構造函數、析構函數、模板、繼承、多態
4.3 Java程序設計(Java 2)
Java和面向對象程序設計
語言機制(程序結構和語法,類、成員、構造函數、析構函數、繼承、介面)
4.4 Visual Basic程序設計(Visual Basic 6.0)
用戶界面設計
程序結構和語法
文件系統對象
訪問資料庫

② 利用文件系統處理數據與資料庫系統處理數據有什麼不同各有何優缺點

早期的資料庫管理都是採用文件系統。在文件系統中,數據按其內容、結構和用途組成若干命名的文件。文件一般為某個用戶或用戶組所有,但可供其他用戶共享。用戶可以通過操作系統對文件進行打開、讀、寫和關閉等操作。

文件系統有明顯的缺點:
(1).編寫應用程序很不方便。
應用程序的設計者必須對所用的文件的邏輯及物理結構有清楚的了解。操作系統 只能打開、關 閉、讀、寫等幾個低級的文件操作命令,對文件的查詢修改等處理都須在應用程序內解決。應用程序還 不可避免地在功能上有所重復。在文件系統上編寫應用程序的效率不高。
(2).文件的設計很難滿足多種應用程序的不同要求,數據冗餘經常是不可避免的。
為了兼顧各種應用程序的要求,在設計文件系統時,往往不得不增加冗餘的數據。數據冗餘不僅浪費空間,而且會帶來數據的不一致性(inconsistency).在文件系統中沒有維護數據一致性的監控機制,數據的一致性完全有用戶負責維護。在簡單的系統中勉強能應付,但在大型復雜的系統中幾乎是不可能完成的。
(3).文件結構的修改將導致應用程序的修改,應用程序的維護量將很大。
(4).文件系統不支持對文件的並發訪問(concurrent access)。
(5).數據缺少統一管理,在數據的結構、編碼、表示格式、命名以及輸出格式等方面不容易做到規范化、標准化;數據安全和保密方面,也難以採取有效的辦法。

針對文件系統的缺點,人們發展了以統一管理和共享數據為主要特徵的資料庫系統。在資料庫系統中,數據不再僅僅服務於某個程序或用戶,而是看成一個單位的共享資源,由一個叫資料庫管理系統(Data Management System,簡稱DBMS)的軟體統一管理。由於有DBMS的統一管理,應用程序不必直接介入諸如打開、關閉、讀寫文件等低級的操作,而由DBMS代辦。用戶也不必關系數據存儲和其他實現的細節,可在更高的抽象級別上觀察和訪問數據。文件結構的一些修改也可以由DBMS屏蔽,使用戶看不到這些修改,從而減少應用程序的維護工作量,提高數據的獨立性。由於數據的統一管理,人們可以從全單位著眼,合理組織數據,減少數據冗餘;還可以更好地貫徹規范化和標准化,從而有利於數據的轉移和更大范圍的共享。由於DBMS不是為某個應用程序服務,而是為整個單位服務的,DBMS做得復雜一些也是可以接受的。許多在文件系統中難以實現的動能,在DBMS中都一一實現了。

例如:適合不同類型用戶的多種用戶界面,保證並發訪問時的數據一致性的並發控制(concurrent control),增進數據安全性(security)的訪問控制(access control),在故障的情況下保證數據一致性的恢復(recovery)功能,保證數據在語義上的一致性的完整性約束(integrity constraints)檢查功能等。隨著計算機應用的發展,DBMS的功能愈來愈強,規模愈來愈大,復雜性和開銷也隨之增加。目前,在一些功能非常明確且無數據共享的簡單應用系統中,為減少開銷,提高性能,有時仍採用文件系統;不過在數據密集型應用系統中,基本上都使用資料庫系統。

現代的資料庫管理系統應該具備的7個功能:
1、提供高級的用戶介面
2、查詢處理和優化
這里的查詢(query)泛指用戶對資料庫所提的訪問要求,不但包含數據檢索,也包括修改\定義新數據等
3、數據目錄管理
4、並發控制
5、恢復功能
6、完整性約束檢查
7、訪問控制

數據管理和數據處理一樣,都是計算機系統的最基本的支撐技術。盡管計算機科學技術經歷了飛速的發展,但數據管理的這一地位沒有變化。數據管理將作為計算機科學技術的一個重要分支一直發展下去,社會信息化,對數據管理的要求也愈高。

③ 常見的文件系統有哪些

常見的文件系統有FAT、NTFS、ExtFAT、ext2、ext3、reiserFS、VFAT、APFS。

1、FAT文件系統。

FAT文件系統誕生於1977年,它最初是為軟盤設計的文件系統,但是後來隨著微軟推出dos和win 9x系統,FAT文件系統經過適配被逐漸用到了硬碟上,並且在那時的20年中,一直是主流的文件系統。

2、NTFS文件系統。

它是一種比FAT32功能更加強大的文件系統,從windows 2000之後的windows系統的默認文件系統都是NTFS,而且這些windows系統只能夠安裝在NTFS格式的磁碟上。NTFS系統是一個日誌性的文件系統,系統中對文件的操作都可以被記錄下來,當系統崩潰之後,利用日誌功能可以修復數據。

3、ExtFAT文件系統。

ExFAT也是微軟開發的文件系統,它是專門為快閃記憶體檔設計的文件系統,單個文件突破了4G的限制,而且分區的最大容量可達64ZB,建議512TB。 ExFAT在windows,Linux以及Mac系統上,都可以讀寫,作為U盤或者是移動硬碟的格式還是比較合適的。

4、ext2文件系統。

ext2是為解決ext文件系統的缺陷而設計的可擴展的、高性能的文件系統,又被稱為二級擴展文件系統。它是Linux文件系統中使用最多的類型,並且在速度和CPU利用率上較為突出。ext2存取文件的性能極好,並可以支持256位元組的長文件名,是GNU/Linux系統中標準的文件系統。

5、ext3文件系統。

ext3是ext2文件系統的日誌版本,它在ext2文件系統中增加了日誌的功能。ext3提供了3種日誌模式:日誌(journal)、順序(ordered)和回寫(writeback)。與ext2相比,ext3提供了更好的安全性以及向上向下的兼容性能。

6、reiserFS文件系統。

reiserFS是Linux環境下最穩定的日誌文件系統之一,使用快速的平衡二叉樹(binary tree)演算法來查找磁碟上的自由空間和已有的文件,其搜索速度高於ext2,reiserFS能夠像其他大多數文件系統一樣,可動態的分配索引節,而無須在文件系統中創建固定的索引節。

7、VFAT文件系統。

VFAT主要用於處理長文件的一種文件名系統,它運行在保護模式下並使用VCACHE進行緩存,並具有和Windows系列文件系統和Linux文件系統兼容的特性。因此VFAT可以作為Windows和Linux交換文件的分區。

8、APFS文件系統。

APFS是蘋果公司發布的新的文件格式,替代目前所使用的HFS+格式。這一全新文件系統專門針對快閃記憶體/SSD進行優化,提供了更強大的加密、寫入時復制元數據、空間分享、文件和目錄克隆、快照、目錄大小快速調整、原子級安全存儲基元,以及改進的文件系統底層技術。

④ 簡述微軟的FAT32文件系統

FAT32是分區格式的一種。這種格式採用32位的文件分配表,使其對磁碟的管理能力大大增強,突破了FAT16對每一個分區的容量只有2 GB的限制。由於現在的硬碟生產成本下降,其容量越來越大,運用FAT32的分區格式後,我們可以將一個大硬碟定義成一個分區而不必分為幾個分區使用,大大方便了對磁碟的管理。但由於FAT32分區內無法存放大於4GB的單個文件,且性能不佳,易產生磁碟碎片。目前已被性能更優異的NTFS分區格式所取代。

分區標識: 0x0B, 0x0C(MBR)EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(GPT)

最大單文件大小: 4 GB (Fat16分區是2 GB )
最大文件數量: 268,435,437
最長檔名限制: 8.3 或者 長文件名255個字元
最大卷大小: 8 TB (在windows 2000和windows XP環境下格式化程序只能創建最大32GBFAT32文件系統,不過可以用如PQ等分區軟體分出大於32GB的FAT32分區,大於32GB的FAT32分區在WIN2000/XP下使用完全正常)
記錄日期: 創建、修改、訪問
日期范圍: 1980年1月1日至2107年12月31日
屬性: 只讀,隱藏,系統,卷標,子目錄,檔案
透明加密:不支持
透明壓縮:不支持
訪問許可:無限制

性能特點
編輯
FAT32(File Allocation Table)具有一個最大的優點:在一個不超過8GB 的分區中,FAT32分區格式的每個簇容量都固定為4KB,與FAT16相比,可以大大地減少磁碟的浪費,提高磁碟利用率。目前,支持這一磁碟分區格式的操作系統有Win95、Win98、Win2000、Win2003、Win Vista、Win7和Win10。部分智能手機也支持對FAT32格式存儲器的直接讀寫(OTG)。但是,這種分區格式也有它的缺點,首先是採用FAT32格式分區的磁碟,由於文件分配表的擴大,運行速度比採用FAT16格式分區的磁碟要慢。

約束
編輯
windows 2000和windows XP能夠讀寫任何大小的FAT32文件系統,但是這些平台上的格式化程序只能創建最大32GB的FAT32文件系統。
在dos系統下可直接訪問fat32分區,而ntfs分區則不能在dos下直接訪問。

缺點
編輯
但FAT有一個嚴重的缺點:當文件刪除後寫入新資料,FAT不會將檔案整理成完整片段再寫入,長期使用後會使檔案資料變得逐漸分散,而減慢了讀寫速度。硬碟碎片整理是一種解決方法,但必須經常整理來保持FAT文件系統的效率。還有就是FAT32分區因為設計缺陷,無法支持超過4GB的單個文件.

磁碟結構
編輯
主啟動區 文件 分配表 #1 文件 分配表 #2 根目錄 其他所有資料...剩下磁碟空間
一個FAT文件系統包括四個不同的部分。

保留扇區
位於最開始的位置。第一個保留扇區是引導區(分區啟動記錄)。它包括一個稱為基本輸入輸出參數塊的區域(包括一些基本的文件系統信息尤其是它的類型和其它指向其它扇區的指針),通常包括操作系統的啟動調用代碼。保留扇區的總數記錄在引導扇區中的一個參數中。引導扇區中的重要信息可以被DOS和OS/2中稱為驅動器參數塊的操作系統結構訪問。

FAT區域
它包含有兩份文件分配表,這是出於系統冗餘考慮,盡管它很少使用,即使是磁碟修復工具也很少使用它。它是分區信息的映射表,指示簇是如何存儲的。

根目錄區域
它是在根目錄中存儲文件和目錄信息的目錄表。在FAT32下它可以存在分區中的任何位置,但是在早期的版本中它永遠緊隨FAT區域之後。

數據區域
這是實際的文件和目錄數據存儲的區域,它占據了分區的絕大部分。通過簡單地在FAT中添加文件鏈接的個數可以任意增加文件大小和子目錄個數(只要有空簇存在)。然而需要注意的是每個簇只能被一個文件佔有,這樣的話如果在32KB大小的簇中有一個1KB大小的文件,那麼31KB的空間就浪費掉了。

啟動扇區
編輯
格式如下
偏移(位元組) 長度(位元組) 說明
0x00 3 跳轉指令(跳過開頭一段區域)
0x03 8 OEM名稱(空格補齊)。 MS-DOS檢查這個區域以確定使用啟動記錄中的哪一部分數據。常見值是IBM 3.3(在「IBM」和「3.3」之間有兩個空格)和MSDOS5.0.
0x0b 2 每個扇區的位元組數。基本輸入輸出系統參數塊從這里開始。
0x0d 1 每簇扇區數
0x0e 2 保留扇區數(包括啟動扇區)
0x10 1 文件分配表數目
0x11 2 最大根目錄條目個數
0x13 2 總扇區數(如果是0,就使用偏移0x20處的4位元組值)
0x15 1 介質描述 0xF8 單面、每面80磁軌、每磁軌9扇區
0xF9 雙面、每面80磁軌、每磁軌9扇區
0xFA 單面、每面80磁軌、每磁軌8扇區
0xFB 雙面、每面80磁軌、每磁軌8扇區
0xFC 單面、每面40磁軌、每磁軌9扇區
0xFD 雙面、每面40磁軌、每磁軌9扇區
0xFE 單面、每面40磁軌、每磁軌8扇區
0xFF 雙面、每面40磁軌、每磁軌8扇區
同樣的介質描述必須在重復復制到每份FAT的第一個位元組。有些操作系統(MSX-DOS 1.0版)全部忽略啟動扇區參數,而僅僅使用FAT的第一個位元組的介質描述確定文件系統參數。
0x16 2 每個文件分配表的扇區(FAT16)
0x18 2 每磁軌的扇區
0x1a 2 磁頭數
0x1c 4 隱藏扇區
0x20 4 總扇區數(如果超過65535,參見偏移0x13)
0x24 4 每個文件分配表的扇區(FAT32)。擴展基本輸入輸出系統參數塊從這里開始。
0x24 1 物理驅動器個數(FAT16)
0x25 1 當前磁頭(FAT16)
0x26 1 簽名(FAT16)
0x27 4 ID (FAT16)
0x28 2 Flags (FAT32)
0x2a 2 版本號 (FAT32)
0x2c 4 根目錄啟始簇 (FAT32)
0x2b 11 卷標(非FAT32)
0x30 2 FSInfo 扇區 (FAT32)
0x32 2 啟動扇區備份 (FAT32)
0x34 2 保留未使用 (FAT32)
0x36 8 FAT文件系統類型(如FAT、FAT12、FAT16)
0x3e 2 操作系統自引導代碼
0x40 1 BIOS設備代號 (FAT32)
0x41 1 未使用 (FAT32)
0x42 1 標記 (FAT32)
0x43 4 卷序號 (FAT32)
0x47 11 卷標(FAT32)
0x52 8 FAT文件系統類型(FAT32)
0x1FE 2 扇區結束符(0x55 0xAA)
這里描述的啟動扇區能在如OS/2 1.3的啟動盤上看到。早期的版本使用一個較短的基本輸入輸出系統參數塊,它們的啟動代碼在前面開始(如OS/2 1.1中是偏移0x2b)。

分配表
編輯
一個分區分成同等大小的簇,也就是連續空間的小塊。簇的大小隨著FAT文件系統的類型以及分區大小而不同,典型的簇大小介於2KB到32KB之間。每個文件根據它的大小可能佔有一個或者多個簇;這樣,一個文件就由這些(稱為單鏈表)簇鏈所表示。然而,這些鏈並不一定一個接著一個在磁碟上存儲,它們經常是在整個數據區域零散的儲存。
文件分配表(FAT)是映射到分區每個簇的條目列表。每個條目記錄下面五種信息中的一種。
●鏈中下一個簇的地址
●一個特殊的文件結束符(EOF)符號指示鏈的結束
●一個特殊的符號標示壞簇
●一個特殊的符號標示保留簇
●0來表示空閑簇
FAT32條目值:
FAT32 描述
0x?0000000 空閑簇
0x?0000001 保留簇
0x?0000002 - 0x?FFFFFEF 被佔用的簇;指向下一個簇
0x?FFFFFF0 - 0x?FFFFFF6 保留值
0x?FFFFFF7 壞簇
0x?FFFFFF8 - 0x?FFFFFFF 文件最後一個簇
注意FAT32隻使用32位中的28位。高4位通常是0但它們是保留位,不要更改它們。在上面的表中它們用問號表示。

目錄表
編輯
目錄表是一個表示目錄的特殊類型文件(現今通常稱為文件夾)。它裡面保存的每個文件或目錄使用表中的32位條目表示。每個條目記錄名字、擴展名、屬性(檔案、目錄、隱藏、只讀、系統和卷)、創建的日期和時間、文件/目錄數據第一個簇的地址,最後是文件/目錄的大小。
除了FAT12和FAT16文件系統中的根目錄表占據特殊的根目錄區域位置之外,所有其它的目錄表都存在數據區域。
合法的DOS文件名包括下面一些字元:
●大寫字母A-Z
●數字0-9
●空格(盡管結尾的空格被作為填充而不是文件名的一部分)
●! # $ amp;amp; ( ) - @ ^ _ ` { } ~ '
●數值 128-255
●DOS文件名位於OEM字元集。
長文件名(LFN)使用一個技巧存儲在FAT文件系統上——在目錄表中添加假的條目。這些條目使用一個普通文件無法使用的卷標屬性標識,普通文件無法使用是由於它們被大多數舊的MS-DOS程序忽略。很顯然,一個只包含卷標的目錄被當作空卷,這樣就允許刪除;使用長文件名創建的文件在從普通的DOS刪除就會發生這樣的情形。
校驗和也允許檢驗長文件名是否與8.3文件名匹配;當一個文件刪除之後使用DOS在同一個目錄位置重新創建之後就會出現不匹配現象。校驗和使用下面的演算法計算。(注意pFcbName是指向如正常目錄條目中所顯示的文件名的指針,例如前八個字元是文件名,最後三個是擴展名。點是隱含的。文件名中沒有使用的空間將使用空格(ASCII 0x20)補齊。例如,「Readme.txt」將記錄為"README TXT"。

特點
編輯
FAT32實際上是文件分區表採取的一種形式,它是相對於FAT16而言的。眾所周知,Dos和Windows95採用的都是FAT16格式。至於FAT32,准確地說是在Windows95OSR2中第一次出現的,之所以沒有宣傳是因為當時該文件系統還不夠成熟,尚處於試探階段。那麼為什麼一定要推出FAT32呢?這主要是由其自身的優越性決定的。
首先,它可以大大地節約磁碟空間。文件在磁碟上是以簇的方式存放的,簇里存放了一個文件就不能再存放另外的文件。假如一個磁碟的分區大小為512MB,基於FAT16的系統的簇的大小為8KB,而FAT32系統的簇的大小僅是4KB,那麼,我們存放一個3KB的文件,FAT16系統就會有5KB的空間被浪費,而FAT32的浪費則會少一些。如果分區達到1GB,FAT16的簇為16KB,而FAT32還是4KB,節省的也就更多了。
在推出FAT32文件系統之前,通常PC機使用的文件系統是FAT16。像基於MS-DOS,Win 95等系統都採用了FAT16文件系統。在Win 9X下,FAT16支持的分區最大為2GB。我們知道計算機將信息保存在硬碟上稱為「簇」的區域內。使用的簇越小,保存信息的效率就越高。在FAT16的情況下,分區越大簇就相應的要增大,存儲效率就越低,勢必造成存儲空間的浪費。並且隨著計算機硬體和應用的不斷提高,FAT16文件系統已不能很好地適應系統的要求。在這種情況下,推出了增強的文件系統FAT32。同FAT16相比,FAT32主要具有以下特點:
1. 同FAT16相比FAT32最大的優點是可以支持的磁碟大小達到2TB(2048GB),但是不能支持小於512MB的分區。基於FAT32的Win 2000可以支持分區最大為32GB;而基於 FAT16的Win 2000支持的分區最大2GB。
2. 由於採用了更小的簇,FAT32文件系統可以更有效率地保存信息。如兩個分區大小都為2GB,一個分區採用了FAT16文件系統,另一個分區採用了FAT32文件系統。採用FAT16的分區的簇大小為32KB,而FAT32分區的簇只有4KB的大小。這樣FAT32就比FAT16的存儲效率要高很多,通常情況下可以提高15%。
3. FAT32文件系統可以重新定位根目錄和使用FAT的備份副本。另外FAT32分區的啟動記錄被包含在一個含有關鍵數據的結構中,減少了計算機系統崩潰的可能性。
稍作補充:

功能
編輯
與以前的 FAT 文件系統實現相比,FAT32 提供了以下增強功能:FAT32 支持最大為 2 TB 的驅動器。
注意:Microsoft Windows 2000 僅能支持最大為 32 GB 的 FAT32 分區。
· FAT32 可以更高效地使用空間。FAT32 使用較小的簇(即,對於大小在 8 GB 以內的驅動器,使用 4 KB 的簇),這與大的 FAT 或 FAT16 驅動器相比,可將磁碟空間的使用率提高10% 到 15%。
· FAT32 更穩定可靠。FAT32 可以重新定位根文件夾,而且它使用文件分配表的備份副本,而不是使用默認副本。此外,FAT32 驅動器上的引導記錄也得到擴展,包括了關鍵數據結構的備份副本。因此,與現有的 FAT16 驅動器相比,FAT32 驅動器不容易受單點故障的影響。
· FAT32 更靈活。FAT32 驅動器上的根文件夾是普通的簇鏈,因此它可以位於驅動器上的任何位置。以前對根文件夾數量的限制不復存在。此外,可以禁用文件分配表鏡像,這樣就可以讓文件分配表的副本而不是讓第一個文件分配表處於活動狀態。這些功能允許您動態重調 FAT32 分區的大小。不過要注意,雖然 FAT32 的設計允許這一功能,但 Microsoft 將不在初始版本中實現此功能。

兼容性
編輯
軟硬體的兼容問題
為了與現有程序、網路和設備驅動程序保持最大程度的兼容性,FAT32 盡可能不改動現有的 Windows 體系結構、內部數據結構、應用程序編程介面(API) 和磁碟上的格式。然而,因為需要 4 位元組來存儲簇值,所以許多內部的和磁碟上的數據結構以及發布的 API 都作了修改或擴展。某些情況下,現有的 API 無法在 FAT32 驅動器上運行。大多數程序不會受這些更改的影響。現有工具和驅動程序在 FAT32 驅動器上應能夠繼續正常運行。不過,MS-DOS 塊設備驅動程序(例如 Aspidisk.sys)和磁碟工具需要經過修改才能支持 FAT32 驅動器。
所有 Microsoft 捆綁磁碟工具(格式化、Fdisk、碎片整理、基於 MS-DOS 和 Windows 的磁碟掃描)已經過修改,可以在 FAT32 中正常運行。此外,Microsoft 正在與一些主要設備驅動程序和磁碟工具廠商協作,幫助他們修改其產品以支持 FAT32。
注意:不能使用 Microsoft DriveSpace 或 DriveSpace 3 壓縮 FAT32 卷。
FAT32 性能
轉換到 FAT32 文件系統是您可以在基於 Windows 98 的計算機上實現的最大的一種性能增強。
雙啟動計算機
目前,在 Microsoft 操作系統中,只有 Windows 95 OSR2、Windows 98、Windows 2000 和 Windows Me 可以訪問 FAT32 卷。MS-DOS、Windows 95 原始版和 Windows NT 4.0不識別 FAT32 分區,它們無法從 FAT32 卷啟動。此外,如果使用其他操作系統(例如,Windows 95 或 MS-DOS 啟動盤)啟動計算機,也無法正確訪問 FAT32 卷。
Windows 95 OSR2 和 Windows 98 可以在實模式下啟動(例如為了運行游戲)並可以使用 FAT32 卷。
創建 FAT32 驅動器
在 Windows 95 OSR2、Windows 98 和 Windows Me 中,如果在大小超過 512 兆位元組 (MB) 的硬碟上運行 Fdisk 工具,Fdisk 將提示您是否啟用大磁碟支持。如果回答「是」(啟用大磁碟支持),您創建的任何大於 512 MB 的分區都將被標記為 FAT32 分區。
Windows 98 和 Windows Me 中還帶有一種 FAT32 轉換工具,您可以使用該工具將現有驅動器轉換為 FAT32 文件系統。要使用該轉換工具,請按照下列步驟操作: 1. 單擊開始,依次指向程序、附件、系統工具,然後單擊驅動器轉換器 (FAT32)。
2. 單擊下一步。
3. 單擊希望轉換為 FAT32 文件系統的驅動器,然後單擊下一步。
4. 按照屏幕上的說明操作。
支持范圍
Microsoft 將支持 FAT32 文件系統的功能,以實現無錯讀取和在實模式或保護模式下保存文件。Microsoft 支持 Windows 95 中所帶的實模式和保護模式工具。
對於舊式(較早的)程序,如果它們無法在 FAT32 卷上安裝,或者無法正確保存文件或讀取文件,則您必須與軟體包的生產廠商聯系。
注意:雖然 FAT32 文件系統所支持的硬碟容量最高可以達到 2 TB,但有些硬碟可能會因為計算機基本輸入/輸出系統 (BIOS) INT13 介面的限制而無法包含大於 7.8 GB 的可啟動分區。請與硬體製造商聯系,以確定您計算機的 BIOS 是否支持更新後的 INT13 擴展。
Windows 操作系統使用 FAT32 文件系統時存在以下限制: · 簇不能是 64 千位元組 (KB) 或更大。如果簇為 64 KB 或更大,有些程序(例如安裝程序)在計算磁碟空間時可能會出錯。
· 卷必須包含至少 65,527 個簇,才能使用 FAT32 文件系統。您不能增加使用 FAT32 文件系統的卷上的簇大小,以致於該卷的最終簇數小於 65,527。
· 在使用 FAT32 文件系統的卷上,簇最多是 268,435,445 個。對於文件分配表 (FAT) 的空間,每簇最大為 32 KB,據此計算出的最大磁碟大小大約為 8 太位元組 (TB)。
· Microsoft Windows 95 和 Microsoft Windows 98 附帶的「磁碟掃描」工具是 16 位程序。這樣的程序有一個內存塊,該內存塊的最大分配大小等於 16 MB 減去 64 KB。因此,Windows 95 或 Windows 98 的「磁碟掃描」工具無法處理使用 FAT32 文件系統(其 FAT 大小大於 16 MB 和 64 KB 之差)的卷。使用 FAT32 文件系統的卷上的 FAT 項使用 4 位元組,因此 ScanDisk 無法處理使用定義的簇數大於 4,177,920(包括兩個保留的簇)的 FAT32 文件系統的卷上的 FAT。將 FAT 本身包括在內,按每簇最大 32 KB 計算,卷大小為 127.53 吉位元組 (GB)。
· 您不能減少使用 FAT32 文件系統的卷上的簇大小,以致於 FAT 的最終大小大於 16 MB 與 64 KB 之差。
· 在 Windows 2000 中您無法使用 FAT32 文件系統格式化大於 32 GB 的卷。Windows 2000 FastFAT 驅動程序可以安裝和支持使用 FAT32 文件系統且大於 32 GB的卷(受到其他限制),但是您不能使用格式化工具創建一個這樣的卷。這種現象是設計使然。如果需要創建大於 32 GB 的卷,請改用 NTFS 文件系統。
備註:在嘗試格式化大於 32 GB 的 FAT32 分區時,在進程快結束時格式化會失敗,並出現以下錯誤:
Logical Disk Manager:Volume size too big.
Windows XP 中 FAT32 文件系統的限制
當您在 Windows XP 中使用 FAT32 文件系統時,請注意下列限制: · 簇不能等於或大於 64 KB。如果簇大小為 64 KB 或更大,則有些程序(例如安裝程序)可能會不正確地計算磁碟空間。
· FAT32 卷必須至少包含 65,527 個簇。您不能增加使用 FAT32 文件系統的卷上的簇大小,這樣會導致卷上的簇數少於 65,527 個。
· 如果考慮到以下可變因素,則最大磁碟大小大約為 8 TB:一個 FAT32 卷上允許的最大簇數為 268,435,445,每個簇最大為 32 KB,另外還有文件分配表 (FAT) 所需的空間。
· 您不能減少 FAT32 卷上的簇大小,這樣會導致 FAT 的大小大於 16 MB 減去 64 KB。
· 在 Windows XP 安裝過程中,您不能使用 FAT32 文件系統格式化大於 32 GB 的卷。Windows XP 可以裝入和支持大於 32 GB 的 FAT32 卷(受到其他限制),但是您不能在安裝期間使用 Format 工具創建大於 32 GB 的 FAT32 卷。如果您需要格式化大於 32 GB 的卷,請使用 NTFS 文件系統來格式化。另一種方法是從 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 啟動盤啟動,然後使用該磁碟上包含的 Format 工具。
有關如何使用 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 啟動盤格式化硬碟的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
255867 如何使用 Fdisk 和 Format 工具對硬碟進行分區或重新分區
注意:當您在 Windows XP 安裝過程中試圖格式化大於 32GB 的 FAT32 分區時,在格式化過程快結束時操作將會失敗,並且您可能會收到以下錯誤信息:
Logical Disk Manager:Volume size too big.
· MS-DOS(Microsoft Windows 95 的原始版本)和 Microsoft Windows NT 4.0 及更低版本都不能識別 FAT32 分區,因此無法從 FAT32 卷啟動。
· 您不能在 FAT32 分區上創建大於 (2^32)-1 位元組(即 4 GB 減去 1 個位元組)的文件。
FAT32格式理論上可以支持128TB的磁碟,即簇的大小乘簇的數量32K*(2^32),但由於受到軟硬體的限制和其他方面的原因,不可能達到理論值。
FAT32數據恢復原理
由於FAT與FDT對數據的鏈式存儲管理的,可以通過鏈式搜索查找。只有FAT表和FDT配合使用,才能可以統一管理整個磁碟文件,也就可以准確定位被刪除的文件的確切位置。
在 Window操作系統下對文件的刪除工作,是將FDT中該文件的第一個字元改「E5」來表示該文件已經刪除,同時改寫引導扇區的第二個扇區中表示該分區點用空間大小的相應信息。因此,在設計的時候,根據其存儲結構,對相應的地方進行修改,搜索E5刪除標志,再按被刪文件數據鏈進行恢復。
具體步驟如下:
(1) 獲取磁碟分區類型,分區存儲空間,FAT、FDT、文件等存儲的起始扇區。
(2) 獲取FAT、FDT表項內的簇信息,即簇的刪除、未使用、壞簇、以及文件佔用簇的起始扇區信息等。
(3) 通過FAT、FDT計算不同文件在物理扇區的起始位置,包括有標識E5的刪除文件起始位置、文件類型、佔用大小和存儲的所在簇。
(4) 改變刪除位,通過第3步得到的結果,並按FAT表對文件進行鏈式查找並緩存,當達到文件所在簇尾時,停止操作。
(5) 對存儲的數據進行轉換,生成文件。
(6) 對文件進行異區存儲。 而操作系統在讀寫文件時,會根據FDT中的起始單元,結合FAT表就可以知道文件在磁碟的具體位置,然後順序讀取每個簇的內容,文件的查找如圖4-1所示。具體的方法如下:
(1)在文件目錄項FDT中找到存放在FAT表中的文件File的地址M(2)2*M得到FAT表中File文件數據鏈表首地址B。
(3)在FAT表中的B地址中,存放有文件FILE數據鏈表頭P。
(4)P*4得到在FAT表項中的下一個偏移位置,即下一個數據鏈表。
(5)如果下一個數據鏈表內的信息為0FFFFFFH,則表示文件存儲已經結束圖4-1查找文件流程需要說明的是,新建文件時,系統在FAT表中查找未用的簇記錄在新文件目錄項中做為首簇;FDT文件目錄項中,第0~7位元組為文件名(若有剩餘位元組用20填充)第1位元組表明了該文件的狀態,第1位元組又表明了文件的狀態,00HE5H及其它字元。當該位元組為00H時,表示該目錄項是空表項,可以使用。當為E5H時,表示該目錄項以前用過,但是文件被已經刪除了。

小知識
編輯
在FAT32下,一個目錄只能夠容納65536個文件。微軟的官方文檔沒有給出。

⑤ 文件系統的設計與實現演算法

直接用MFC中的CFile類就行了,所有的關於文件的操作都在裡面

⑥ 如何加密文件系統,都有哪些策略

XP系統:
加密文件或文件夾
打開 Windows 資源管理器。
右鍵單擊要加密的文件或文件夾,然後單擊「屬性」。
在「常規」選項卡上,單擊「高級」。
選中「加密內容以便保護數據」復選框。
注意

要打開「Windows 資源管理器」,請單擊「開始」,依次指向「所有程序」、「附件」,然後單擊「Windows 資源管理器」。
只可以加密 NTFS 文件系統卷上的文件和文件夾。
被壓縮的文件或文件夾也可以加密。如果要加密一個壓縮文件或文件夾,則該文件或文件夾將會被解壓
無法加密標記為「系統」屬性的文件,並且位於 systemroot 目錄結構中的文件也無法加密。
在加密單個文件時,系統將詢問是否要同時加密包含它的文件夾。如果選擇這么做,所有將來添加進文件夾中的文件和子文件夾都將在添加時自動加密。
在加密文件夾時,系統將詢問是否要同時加密文件夾內的所有文件和子文件夾。如果選擇這么做,那麼文件夾中當前的和將來要添加的所有文件或子文件夾都將被加密。如果選擇僅加密文件夾,則文件夾中當前所有文件和子文件夾將不加密。然而,任何將來被加入文件夾的文件和子文件夾在加入時均被加密。

98
加密】
打開"我的電腦"或者"資源管理器",選擇"查看"→"文件夾選項"→"文件類型"下選擇要"加密"的文件後綴名,點擊"編輯"。在打開的"編輯文件類型"對話框中,在"始終顯示擴展名"的對話框前打上鉤,然後點"確定"來關閉對話框。然後,選中該文件,按F2鍵,修改其後綴名,這樣文件圖標就會發生變化,關聯的程序也會發生變化

對於有些軟體,如ACDSee的browse功能,它對文件的識別是不計較後綴名的,所以對於圖片文件的加密,建議用常用的打包程序,如Winzip,加密打包之後,再更改後綴名進行進一步的加密。其實這個方法也適合於其他文件的加密。

解密
方法一(適用於Windows98/Me系統):進入一個未加密的文件夾,點擊菜單欄上的「查看」命令,取消「按Web頁查看」選項。再次點擊「查看」,選擇「文件夾選項」,在彈出的對話框中選擇「查看」選項卡。點擊「與當前文件夾類似」,確定後即可取消本機上所有文件夾的加密。

方法二:採用方法一將會取消對所有已加密文件夾的加密屬性,無法對單個文件夾進行解密操作,而且不適用於Win2000、XP系統。其實,不管是在98系統還是2000/XP系統下,破解這種類型的加密文件夾有一個通用的方法,我們甚至可以像進入自己的文件夾那樣進入到加密的文件夾:假設被加密的文件夾為d:\lj,那麼只需要在地址欄中輸入d:\lj\folder settings\folder.htt,就可以打開改設置文件(folder.htt)。我們只要在改文件中找到進行加密的幾行代碼,密碼就出現了

2000加密
更改本地計算機的恢復策略

單擊「開始」,單擊「運行」,鍵入 mmc /a,然後單擊「確定」。
在「控制台」菜單上,單擊「添加/刪除管理單元」,然後單擊「添加」。
在「管理單元」下,單擊「組策略」,然後單擊「添加」。
在「組策略對象」下,確認顯示「本地計算機」,單擊「完成」、「關閉」,然後單擊「確定」。
在「本地計算機策略」中,單擊「公鑰策略」。
位置

本地計算機策略
計算機配置
Windows 設置
安全設置
公鑰策略
右鍵單擊「加密數據恢復代理」,然後單擊下列某個選項:
「添加」,使用「添加恢復代理」向導將用戶指派為其他恢復代理。
「創建」,使用「證書申請」向導以請求新的「文件恢復」證書。要完成該過程,必須有適當的訪問許可權以請求證書並且必須將證書授權機構 (CA) 配置為頒發該類型的證書。
「刪除策略」,刪除此 EFS 策略和每個恢復代理。刪除 EFS 策略和所有恢復代理的後果是用戶將無法在該計算機上對文件加密。
注意

要完成該過程,您必須登錄為管理員或管理員組成員。如果您的計算機連接在網路上,則網路規則設置也可能會禁止您完成該過程。
計算機頒發默認自簽名證書,該證書將本地管理員指派為默認恢復代理。如果沒有其他合適的策略而刪除該證書,計算機將有一個空恢復策略。空恢復策略意味著沒有恢復代理。這將關閉 EFS,因此不允許用戶加密此計算機上的文件。
在對恢復策略作任何更改之前,您首先應當將恢復項備份到軟盤。
在域中,當安裝第一個域控制器時,默認的域恢復策略將被執行。域管理員被頒發給自簽發證書,它指派域管理員作為恢復代理。要更改域的默認恢復策略,請以管理員身份登錄到第一個域控制器。
通過用滑鼠右鍵單擊證書,然後單擊「屬性」,可以對文件恢復證書進行改動。例如,您可以給證書一個好記的名稱,並輸入文字

⑦ 如何設計一個分布式文件系統,給出文件和目錄的更新演算法

分布式文件系統設計主要關注幾個方面: 設計特點、分布式能力、性能、容災、維護和擴展、成本 分布式文件系統主要關鍵技術: 全局名字空間、緩存一致性、安全性、可用性、可擴展性

⑧ 存儲管理分區分配演算法實現的課程設計

—、計算機操作系統課程設計方案
課程概況
計算機操作系統是中央電大計算機科學與技術專業(本科)的一門統設必修課。課程教學總學時72,4學分,開設一學期。前修課程為計算機組成原理、面向對象程序設計和數據結構。
計算機操作系統課是計算機專業的重要課程之一,通過學習使學員掌握計算機操作系統的設計基本原理及組成;計算機操作系統的基本概念和相關的新概念、名詞及術語;了解計算機操作系統的發展特點和設計技巧和方法;對常用計算機操作系統(DOS、Windows和UNIX或Linux)會進行基本的操作使用。
• 課程主要內容
主要內容包括:計算機操作系統概述、作業管理、文件管理、存儲管理、輸入輸出設備管理、進程及處理機管理、操作系統結構及程序設計。
二、教學內容體系及教學要求
第一章 操作系統概述
教學內容:
操作系統定義及發展;操作系統的形成和五大類型;操作系統的五大功能;表徵操作系統的屬性;操作系統的配置、「生成」概念
教學要求:
熟練掌握:什麼是操作系統;知道操作系統有五大類型和五大功能;
掌握:至少掌握一種實際攬操作系統的安裝、使用和維護;
了解:初步了解如何認識、熟悉和解剖操作系統

第二章 人機交互界面、任務、作業管理
教學內容:
人機交互界面的發展特點;第一、二、三代界面開發特點;基本的鍵盤命令和系統調用操作系統Shell語言;作業調度演算法;
教學要求:
熟練掌握:能進行一些人機介面界面的設計;
掌握:掌握操作系統人機介面界面的基本設計思想;
了解:操作系統傳統的介面界面

第三章 文件管理
教學內容:
文件管理的任務與功能;文件的結構與分類;文件的物理結構和邏輯結構;文件的目錄結構;文件的存取控制和安全機制;文件系統與模型結構;
教學要求:
熟練掌握:文件的基本存取控制和系統管理;
掌握:文件系統的目錄分類管理特點;
了解:文件系統的編程設計

第四章 內部存儲管理
教學內容:
內存的分區、分頁、分段管理概念;物理地址與邏輯地址;內存「擴充」技術;頁式存儲管理;段式存儲管理;內存的分配演算法
教學要求:
熟練掌握:內存管理中基本分配和調度方法;
掌握:掌握內存管理中各種分區、分頁和分段方法的特點;
了解:內存空間的有效利用

第五章 輸入輸出設備管理
教學內容:
輸入輸出設備功能與分類;獨享、共享、虛擬設備的管理特點;輸入輸出設備處理程序;輸入輸出設備的管理策略;
教學要求:
熟練掌握:掌握輸入輸出設備的管理特點;
掌握:掌握輸入輸出設備的分類設計方法;
了解:輸入輸出設備處理程序的編程要點

第六章 低級處理機管理
教學內容:
操作系統核心功能;「進程」概念;進程的並發與並行;進程的基本狀態與轉換;進程調度演算法;進程的同步與互斥;進程的P—V操作;「死鎖」概念;
教學要求:
熟練掌握:操作系統核心運行與「進程」的基本概念;
掌握:「進程」的基本轉換狀態與應用特點;
了解:進程調度演算法的程序編制

第七章 操作系統程序結構
教學內容:
操作系統的層次、模塊結構;操作系統的設計與檢測;
教學要求:
本章教學基本要求:了解現代計算機操作系統的基本設計思想與方法

三、課程教學媒體說明
本課程使用的教學媒體主要有:文字教材、錄像教材和網上教學輔導。
1. 文字教材
《計算機操作系統》(第2版)吳企淵著清華大學出版社
註:課程實驗含在主教材中。
文字教材為該課程的主媒體。文字教材的編寫既保持了學科體系的先進性、科學性,又兼顧操作系統的理論、技術、實現三方面的融合,並強調能力的培養。
2. 錄像教材
該課程已經製作16講課程錄像,每講50分鍾,講授課程的重點、難點、課程總結。幫助學生理解,建立操作系統的整體概念和思想,由吳企淵教授主講。
課程錄像與文字教材相對應,注意發揮錄像教材藝術表現力、形象化教學的作用。
3.網上教學輔導
網上教學輔導與上述媒體有機配合,有幾方面作用:(1)發布教學指導性文件、課程公告、問題咨詢、參考資料;(2)按照教學進度,發布輔導文章,刊登練習自測題;(3)在課程論壇上進行實時答疑和日常答疑;(4)開展網上的教師培訓和教學研討等工作。
文字教材是學生學習的基本依據,錄像教材是文字教材的補充,網上輔導則是教與學交互的便捷方式。總之,多種媒體的分工和搭配為學生提供較大的自學空間,便於學生自由選擇、自主學習,提高學生的自學能力。
四、教學安排建議
1. 課程主教材及課程實驗教學安排建議
教學點請根據中央電大的統一要求安排課程的面授輔導,見表1。
表1 課程主教材及課程實驗教學安排建議
周次 教學內容 建議學時 實驗內容 建議學時
一 操作系統課程教學安排概況介紹 2
二 操作系統定義、五大類型和五大功能 4
三 人機交互界面管理 2 Linux實踐准備 1
四 作業管理任務調度 4
五 文件管理的任務和功能 2 Linux操作命令使用 1
六 文件的邏輯結構和物理結構 4
七 存儲管理的任務和功能 2 命令解釋程序編制 2
八 分區式分配存儲管理 4
九 頁式、段式分配存儲管理 6 作業調度模擬編程 4
十 設備管理的任務和功能 2
十一 設備分配技術和管理 4 存儲管理設計 4
十二 進程的定義和特徵 4
十三 進程調度與通信 6 進程調度模擬編程 4
十四 死鎖的產生和處理 2
十五 操作系統的層次模塊結構 4
十六 (總復習) 4
總計 56 16

課程錄像內容,見表2。
表2 錄像教材內容
章 教學內容 課內學時 錄像學時分配
一 操作系統概述 8學時 4
二 作業管理 8學時 2
三 文件管理 8學時 2
四 存儲管理 8學時 2
五 設備管理 8學時 2
六 進程管理 10學時 4
七 操作系統程序結構 6學時 0
總計 56學時 16

2、網上輔導
網上輔導內容包括課程的教學文件、課程輔導、網路課堂。充分利用網路資源,定期與不定期的在網上提供有關的課程輔導材料,根據教學需要,適當安排網上輔導和考前答疑活動。具體安排如下:
• 教學文件
包括課程說明、教師介紹、教學大綱、教學設計方案。
• 課程輔導
包括課程作業及解答、專題輔導、練習和解答、期末自測、考核說明等;網上還提供了教師講課教案,供各教學點教學使用。
• 網路課堂
包括直播課堂和IP課件。
網上教學活動:中央電大一般將每學期集中安排1次對學生的實時在線輔導,和1次對教師的教研活動。具體的時間安排每學期在電大在線主頁上公布。
• 論壇:進行課程的日常答疑。

3、直播課堂
課程首開學期,通過教育電視台直播方式,安排4次直播課堂,每次50分。前3講為對教學重點、難點,對教學過程中反映的共性問題和有代表性的問題進行輔導,後1講為復習輔導和有關考試說明。直播課堂的內容掛在課程網頁內。

4、作業
該課程有一份形成性考核冊,即課程作業冊。作業成績計入課程總成績。中央電大將不定期地抽查作業,檢查作業的評審及完成情況。
關於課程考核的具體內容,請參考中央電大「計算機操作系統課程考核說明」。
五、教學方法的建議
• 教學建議
(1)計算機操作系統是實踐性較強的課程。其特點是概念多、涉及面廣。要求教學輔導要由淺入深對易混淆的概念加以詳細說明,對每章的重點,管理和控制的調度演算法技巧作詳細介紹。
(2)在實驗中著重培養學員熟練使用操作系統,以及在維護操作系統工作中的分析問題和解決問題能力。
• 學習建議
(1)學習操作系統要從宏觀和微觀兩方面把握。在宏觀上要認識操作系統在計算機系統中的地位,清楚操作系統的整體結構;微觀方面應掌握操作系統是如何管理計算機的各種資源的(進程、處理機、存儲器、文件、設備),理解有關概念、原理及技術。
(2)操作系統是計算機技術與管理技術的結合,學習時可以聯想日常生活中熟悉的管理示例反復體會操作系統的管理方法,以加深對問題的理解。
(3)注意加強對自主學習能力和動手能力的培養,努力實現「學以致用」的目標。

⑨ 如果讓你設計一個文件系統那麼該文件系統可以解決哪些問題

文件系統主要是管理文件用的,可以仿照windows設計,然後添加一些特色功能,主要解決的問題就一個:更方便的管理文件。

⑩ 基於多級文件目錄的文件管理系統設計的設計原理是什麼有著什麼樣的背景知識

Flash 存儲器( Flash Memory) 是一種高可靠性、高密度的固態存儲器件。 其存儲方式是完全非易失性的,掉電後可以保存數據;可以在線寫入,並可按頁連續位元組寫入,存取速度快,所以嵌入式系統通常使用Flash 存儲器作為存儲設備。 但Flash存儲器也存在著兩個主要缺陷:一是在重寫之前必須進行擦除,因為Flash 存儲器劃分成很多擦除塊(SectorOErase) ,對任何一位數據進行修改必須先擦除整個塊(Sector) ;二是擦除塊的擦除次數有限,當一個塊提前達到擦除次數上限時, 將導致整個Flash 存儲器無法使用。 所以,目前PC 機上很多成熟的基於磁碟的文件系統在Flash 存儲器上使用都存在著不足。
嵌入式系統應具有的特點: 一是高可靠性,在惡劣環境下系統仍能正常工作;二是低消耗,受成本限制系統設計必須量體裁衣,去除冗餘;三是高效率,在佔用較少資源情況下保證功能需求,這樣就要求演算法簡單,效率高。 而日誌文件系統(Log-St ruct ured File System) 在數據更新時無需將數據寫入原存儲區域,適應Flash 存儲器無法進行重寫這一特點。 目前,針對Flash 存儲器的缺陷而設計的Linux 下的J FFS 文件系統,就是採用簡化的日誌文件系統。 J FFS 文件系統將磨損均衡集成於清除機制之中,在帶來掉電可恢復功能的同時,大大減少了塊擦除的次數,提高了文件系統的存取速度和效率。 但是,J FFS 文件系統無法單獨使用,或者使用於其它實時操作系統中。 對由於受成本和實時性限制而無法使用Linux 的一些嵌入式系統,也就無法使用J FFS 文件系統。基於上述分析,該嵌入式文件系統適合在開源實時操作系統(如μC/OS-II) 和無操作系統的情況下使用。
嵌入式文件系統原理
在日誌文件系統中,一個文件被修改後不是被寫入到原來的存儲空間,而是被加到所有內容的後面,象日誌一樣被更新,這就是日誌文件系統的基本原理。 由於同一個文件在文件系統中會留下不同的版本,所以系統需要設置一張表標注文件的最新與以前的版本。 在內容不斷添加時為不將存儲空間占滿,系統設計了一種回收機制,回收無效內容佔用的空間。
日誌文件系統在文件更新時不用將文件寫回原來的地址,這對Flash 存儲器這種存儲介質最為適合。 文中所設計的嵌入式文件系統採用了日誌文件系統的設計原理,以及J FFS 文件系統將磨損均衡集成於清除機制之中的方法。 該系統將一個可擦寫塊平分為多個簇,文件的讀寫以簇為單位進行。簇的狀態有3 種:臟、干凈和空。 臟表示所存內容已被置為無效;干凈表示所存數據有效;空表示可以寫入數據。 文件和目錄在該系統中被作為節點,一個節點佔用若干個簇,節點中的內容連續存儲,但不能越過塊邊界存儲。 該系統設置一個索引節點,保存整個系統的信息,其中包含保存有各簇狀態的簇狀態表。
每一次文件更新後內容都將被添加至末尾處,索引節點也被更新,總是佔用最末尾的干凈簇。 回收臟簇時,將所要擦除塊中的干凈簇重寫到空簇中,再進行塊擦除。 當內容寫至存儲體末端,則從頭部重新開始循環存儲。 所設計的文件系統的操作過程見圖1。
ic72新聞中心
嵌入式文件系統設計
Flash 存儲器中的存儲結構
Flash 存儲器中的存儲結構見圖2。 該存儲器中每個簇的第一個字作為簇的狀態字,表示此簇是否為一個節點的首簇或空簇。 每個節點的首部存放此節點屬性(文件/目錄/索引節點) 和節點標識號。
ic72新聞中心
索引節點
索引節點存放該文件系統的大部分信息。 包括32 位的索引節點更新號、一張簇狀態表、下一個要被擦除塊的塊號、給下一個新建節點(文件或目錄) 的節點編號、系統根目錄信息表。系統每一次更新都會產生新的索引節點,索引節點更新號加1。 按照Flash 存儲器的使用壽命10 年計算,需要每秒更新136 次以上,才能達到索引節點更新號的上限,所以認為擁有最大更新號的索引節點為最新的索引節點。 簇狀態表中對應每一個簇有兩個Bit 位,表示各個簇的狀態(干凈01 ,臟11 ,空00) 。 根目錄信息表存放根目錄下的各個目錄項,每個目錄項包括:屬性(文件0x1/目錄0x0) 、文件名或目錄名、節點編號、此文件(或目錄) 對應節點的起始簇地址、根目錄表的大小可變。
目錄節點
目錄節點存放的內容有目錄名,目錄項個數,及所有目錄項信息。 文件節點存放文件名,文件大小,文件屬性及文件內容,內存中的目錄結構見圖3。
ic72新聞中心
內存數據結構及基本操作
該文件系統載入(Mount ) 後,會在內存中建立一個系統的映象。 該映象包括:索引節點中的信息、目錄及文件信息、每個可擦寫塊中包含的節點信息、未存檔的節點信息。 簇狀態表、索引節點更新號、新節點編號、下一擦除塊號等索引節點中的內容,在內存中均作為不同的變數。 內存中為每個文件和目錄都建立了映象,數據結構見圖4 和圖5。
ic72新聞中心
ic72新聞中心
內存中的文件節點不包含文件真正的數據,而使用指針。 文件被打開時,在內存中創建一塊新存儲區域存放數據,數據指針便指向此存儲區,未被打開時,此指針指向空。 對於每個目錄有1 個目錄層數,表示此目錄的深度,如根目錄的目錄層數為0 ,根目錄的下一級目錄則為1 ,依此類推。 存儲地址保存文件或目錄在Flash 中的地址。 文件和目錄都被存在上一級目錄下,所屬目錄指針即指向上一級目錄在內存中的數據結構,根目錄的所屬目錄指針即為空。 對於同目錄下的不同節點,在內存中使用鏈表將其串聯,同目錄文件指針即聯成鏈表。 鏈表的首指針保存在上一級目錄中,首目錄項指針即指向鏈表的首項。 為提高塊擦寫的效率,存儲在同一個可擦寫塊中的各個節點在內存中也建立一個鏈表,塊隊列指針即用於連成此鏈表。 為標識被修改的節點,利用一個未保存隊列,未保存隊列指針即用來建立此隊列。
該文件系統載入(mount ) 時,首先順序掃描Flash 中的每個索引節點,查找出最大的索引節點更新號,此更新號對應的索引節點即為最新的索引節點。 查找到最新索引節點後,將簇狀態表等信息映射到內存的數據結構中。 依據索引節點中的根目錄信息,遍歷所有節點,建立內存中的目錄文件結構,並將節點添加到對應的擦寫塊隊列中。 對一個文件編輯並保存的過程見圖6。
ic72新聞中心
文件打開時,先在內存中分配一塊空間作為數據區,將內容寫入,並定位文件節點的數據指針指向該內存中的數據區。 如果文件內容被修改,就將文件節點添加到未存檔隊列,依次寫入Flash 存儲器中,並修改簇狀態表。 保存時將內存中數據區內容寫入F 中,釋放申請的內存空間,修改節點中的數據指針和簇狀態表,再將文件的所有上級目錄重新寫入Flash ,最後將更新後的索引節點內容寫入Flash。 如果文件未被修改,則只需修改數據指針即可。
節點加入未存檔隊列的順序按照目錄層數的大小排列,文件節點排在隊列首,目錄層數最大的排在其後,目錄層數為1 的排在隊列末尾,根目錄不加入未存檔隊列。
嵌入式文件系統特殊處理機制
均衡擦寫機制
為了避免任意一個可擦除塊因擦寫次數過多而過早報廢,文件系統對Flash擦寫時採用了均衡擦寫機制。 考慮到系統的精簡性,擦寫在整片Flash 的各塊中依次進行,一塊擦寫完後,下一個被擦寫的塊即為後一個塊,在系統的索引節點中保存了下一個要擦除的塊號。 當文件系統中的剩餘空間減少到設定值時,系統會擦除此塊,以回收臟簇佔用的空間。 對應每個可擦寫塊都有一個節點隊列,此塊中包含的節點都加入其中。塊擦除的流程見圖7。
ic72新聞中心
首先,將未保存於隊列中的節點保存,清未保存隊列。 然後將塊隊列中的所有文件節點轉移到空簇中,同時將文件路徑上的各級目錄加入到未存檔隊列中。 對於塊隊列中的目錄節點,則將它和其路徑上的各級目錄加入未存檔隊列中,按照未保存隊列的順序,依次將各個目錄寫入Flash 中,最後寫入最新的索引節點。 因為目錄節點加入未存檔隊列時,按照目錄層數的大小排列,所以按照未保存隊列的順序寫入時,可以保證當一個目錄要被寫入Flash 時,它的所有下級目錄已被寫入Flash 中。 所有下級目錄在Flash 中的存儲地址都已確定。當該文件系統的空間將達到存儲上限時,可能會出現特殊情況,即廢簇回收時,空簇的空間不足,無法將所有干凈簇重寫。 文件系統為此建立了應急機制,先將文件節點內容存在內存中,這時新建一個臨時未保存隊列,專門保存文件節點,在塊擦寫完成後,將剩餘的文件節點寫入新的空簇中,其演算法與圖7 所示流程大致相同。 但是,一旦在擦寫時斷電,會導致該塊上的所有數據丟失。
斷電錯誤處理機制
當系統遭遇斷電重新啟動後,索引節點中的信息會與系統中的狀態不符,這時便需要錯誤處理機制。 錯誤一般是索引節點中標注的空簇已被寫入了數據,錯誤處理就是將此簇標志為臟簇,並查找下一個空簇重新寫入。
多任務處理機制
該文件系統允許同時打開多個文件,在多任務操作系統下,為了避免沖突建立了多任務處理機制。 系統允許打開的多個文件在內存中同時被編輯修改,但是對Flash 寫入操作有限制。 處理方法是設立Flash 寫入保護區,在此區中只允許當前正在執行的任務執行Flash 寫入操作。 實現Flash 寫入保護區的方法是建立一個初始值為1 的信號量,當一個節點需要Flash 寫入時,首先申請信號量,完成後再釋放信號量。 Flash 寫入保護區見圖6 、圖7。在圖6 中,空操作語句是用來對多個文件的保存進行同步。 例如,有文件1 和文件2 需要保存,先將文件1 的內容寫入Flash 中,文件1 路徑下的目錄節點被添加到未保存隊列中,再將文件2 的內容寫入Flash 中,文件2 路徑下的目錄節點也被添加到未保存隊列中,最後將未保存隊列中的所有節點都寫入Flash 中。 這樣,如果同一路徑下的兩個文件同時存檔,可避免路徑下的相同目錄節點被寫入兩次,從而提高了效率。 不足之處在於,如果很多文件同時存檔,會導致索引節點在一段時間內都無法寫入Flash 存儲器,有斷電丟失的危險。 但對於一般嵌入式系統來說,很少會碰到這種情況。 當進行Flash存儲器擦寫時,在取塊隊列首節點至索引節點寫入完成這段時間內都不允許進行其他Flash 存儲器的寫入操作,這是為了保證數據的完整性,同時也提高了文件系統的穩定性。
無目錄文件系統的優化
許多嵌入式系統設計中雖沒有目錄管理的要求,但是對執行效率和資源消耗的要求較高。 對於不要求有目錄管理的精簡文件系統,在設計時也進行了優化。 精簡文件系統在Flash 中的存儲格式與上述設計相同,文件系統中的所有文件信息都保存在索引節點的根目錄信息表中。 精簡文件系統在內存中的映象則要簡單很多,只包含索引節點中的信息,包括簇狀態表、下一個擦除塊、下一個新節點的標號和根目錄信息,而不用為每個文件都建立內存中的映象,節省大量的內存空間。 文件的編輯存檔過程簡化為:打開文件、編輯、將文件寫入Flash 存儲器、將修改後的索引節點寫入Flash 存儲器。 擦寫則只需通過查詢根目錄信息表中的各個目錄項,將塊中的所有文件節點寫入空簇即可。在無目錄管理的情況下,精簡文件系統佔用的內存資源可以減少,操作也可便捷,提高了效率。 對於大量只需要按名存取的簡單文件管理的小型嵌入式系統而言,針對Flash 存儲器的簡單文件系統將佔用資源少,執行效率高,有很大的應用價值。
嵌入式文件系統實現及性能分析
該文件系統的實現採用了分層方法,分為3 層4 個部分:應用程序介面、文件系統核心、操作系統調用介面、Flash 存儲器驅動,實現結構見圖8。
ic72新聞中心
實現平台中RTOS 為μC/OSOII 實時操作系統,CPU 使用三星S4510B作為處理器,Flash 存儲器晶元為FUJ ITSU 的29LV160 TE。 針對不同的實時操作系統和Flash 存儲器晶元需要實現不同的操作系統介面和Flash 存儲器驅動。
針對μC/ OSOII 編寫操作系統調用介面,包括5個函數: ①系統調用介面初始化FS_Sys_Interface_Init ( ) ,創建互斥信號量和內存分區; ② Flash 寫入關閉FS_Sys_Write_Lock ( ) ,禁止Flash 寫入操作,調用μC/OS-II 中OSMutePend ( ) ; ③ Flash寫入打開FS_Sys_Write_Unlock ( ) ,重新允許Flash 寫入操作,調用μC/OS-II 中OSMutePost() ; ④內存空間申請FS_Sys_Mem_Alloc( ) 和內存空間添加FS_Sys_Mem_Add ( ) , 都調用OSMemGet ( ) 來完成; ⑤內存空間釋放FS_Sys_Mem_Free ( ) ,調用OSMemPut ( ) 完成,將申請的內存塊全部釋放。針對29LV160 TE 這款Flash 存儲器晶元,定義一個FlashDef 結構體的全局變數, 用於存儲Flash 器件信息,並且編寫針對此款Flash 的塊擦寫函數FS_Device_Sector_Erase ( ) 和數據寫入函數FJ FS_Device_Write ( ) 。
完成這兩部分的實現後,該系統就可運行調試。 測試應用程序介面(API) 。 應該提供的各部分功能,並在突然斷電情況下,測試文件系統的恢復情況。無目錄管理的精簡文件系統的載入,可在2μs內完成,文件寫入耗時主要為快閃記憶體的等待時間,系統本身只佔用不到200 個位元組的內存,產生的代碼段大小為7 K。 完整的文件系統載入時,需要建立內存中映象,耗時根據文件數量的多少而不同,一般為10μs ,產生的代碼段大小為11 K。 系統寫入效率較高,在無目錄管理的配置下尤其明顯。 試驗中系統在多次斷電的情況下,系統仍能恢復至上次存檔的狀態,雖會導致個別文件未更新,但不會導致文件系統崩潰。
間的關系熟悉嗎?的和(並)。互斥事件(互不相容事件

閱讀全文

與文件系統演算法設計相關的資料

熱點內容
搜索本機加密軟體 瀏覽:206
三星迷你日記加密 瀏覽:816
優加密試卷五年級上冊數學 瀏覽:932
社區購物app源碼 瀏覽:123
程序員去北京完整視頻 瀏覽:272
linuxscan 瀏覽:902
查看linux默認shell 瀏覽:151
百雞問題java 瀏覽:714
通信信號調制識別原理與演算法源碼 瀏覽:721
e72手機安裝什麼app 瀏覽:177
程序員cv崗 瀏覽:257
ps下載解壓後怎麼找安裝包 瀏覽:120
運動手環軟體如何掃碼下載安卓 瀏覽:468
程序員前期報道 瀏覽:155
游戲主文件夾是什麼意思 瀏覽:800
極光電商app是什麼軟體 瀏覽:70
php調用html5 瀏覽:501
修改pdf安卓 瀏覽:478
php方法命名 瀏覽:162
200命令 瀏覽:331