操作系統(tǒng)教學(xué)課件:Chapter 11 File Systems Interface_第1頁
操作系統(tǒng)教學(xué)課件:Chapter 11 File Systems Interface_第2頁
操作系統(tǒng)教學(xué)課件:Chapter 11 File Systems Interface_第3頁
操作系統(tǒng)教學(xué)課件:Chapter 11 File Systems Interface_第4頁
操作系統(tǒng)教學(xué)課件:Chapter 11 File Systems Interface_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

Chapter11FileSystemsInterfaceFileConcept(文件概念)AccessMethods(存取方法)DirectoryStructure(目錄結(jié)構(gòu))FileSystemMounting(文件系統(tǒng)掛載)FileSharing(文件共享)Protection(保護)Unix/Linux文件系統(tǒng)概述WhyafilesystemThereisageneralneedforlong-termandshareddatastorage:FilesmeettheserequirementsThefilemanagerorfilesystemwithintheOSfilesystem文件系統(tǒng)是操作系統(tǒng)中負責(zé)管理和存取文件信息的軟件機構(gòu),它是由管理文件所需的數(shù)據(jù)結(jié)構(gòu)和相應(yīng)的管理軟件以及訪問文件的一組操作組成。從系統(tǒng)的角度看:文件系統(tǒng)是一個負責(zé)文件存儲空間管理的機構(gòu)。從用戶的角度看:文件系統(tǒng)是用戶在計算機上存儲信息、和使用信息的接口。FileConceptAbstractionpresentedtotheuser文件是具有符號名的記錄的集合.FilenamemayencodethefiletypefileextensionsinUNIXandWindowsCommonexamplesofFiletypesRegularfiles,directoriesExecutablefilesspecialfiles(blockandcharacter)ArchivesFileStructureNone-sequenceofwords,bytesSimplerecordstructureLines,Fixedlength,VariablelengthComplexStructuresFormatteddocument,multi-mediadocuments Whodecides:OperatingsystemApplication“Middleware”DBMSFileAttributesName

–onlyinformationkeptinhuman-readableform.Type

–neededforsystemsthatsupportdifferenttypes.Location

–pointertofilelocationondevice.Size

–currentfilesize.Protection

–controlswhocandoreading,writing,executing.Time,date,anduseridentification

–dataforprotection,security,andusagemonitoring.Informationaboutfilesarekeptinthedirectorystructure,whichismaintainedonthedisk.FileTypes–name,extensionCasestudy–unixfileUNIX系統(tǒng)文件分類方法:1、普通文件普通文件是無結(jié)構(gòu)的字符的集合。2、目錄文件目錄文件是由文件的目錄項組成的文件。3、特別文件特別文件就是設(shè)備。FileTypes–name,extensionUNIX系統(tǒng)中的文件名:文件名是一個不大于14個字符的字符串。并且區(qū)分英文字母的大小寫。例如:unixlinuxll.ca.outaaAA注意:在UNIX系統(tǒng)中文件名就是一個字符串,沒有文件名和文件擴展名之分,文件的類型由用戶命名時確定UNIX系統(tǒng)中文件屬性:-普通文件d目錄文件p管道文件c字符型設(shè)備文件b塊設(shè)備文件FileOperationscreatewritereadrepositionwithinfile–fileseekdeletetruncateopen(Fi)

–searchthedirectorystructureondiskforentryFi,andmovethecontentofentrytomemory.close(Fi)

–movethecontentofentryFiinmemorytodirectorystructureondisk.AccessMethodsSequentialAccess-readnextwritenextresetnoreadafterlastwrite(rewrite)DirectAccess:n=relativeblocknumberreadnwritenpositiontonreadnextwritenextrewritenSequential-accessFileSimulationofSequentialAccessonaDirect-accessFileExampleofIndexandRelativeFilesDirectoryStructureAcollectionofnodescontaininginformationaboutallfiles.F1F2F3F4FnDirectoryFilesBoththedirectorystructureandthefilesresideondisk.Backupsofthesetwostructuresarekeptontapes.ATypicalFile-systemOrganizationInformationinaDeviceDirectoryNameTypeAddressCurrentlengthMaximumlengthDatelastaccessed(forarchival)Datelastupdated(fordump)OwnerID(whopays)Protectioninformation(discusslater)OperationsPerformedonDirectorySearchforafileCreateafileDeleteafileListadirectoryRenameafileTraversethefilesystemOrganizetheDirectory(Logically)Efficiency

–locatingafilequickly.Naming

–convenienttousers.Twouserscanhavesamenamefordifferentfiles.Thesamefilecanhaveseveraldifferentnames.Grouping

–logicalgroupingoffilesbyproperties,(e.g.,allPascalprograms,allgames,…)Single-LevelDirectoryAsingledirectoryforallusers.Namingproblem:主要問題是"重名"問題GroupingproblemTwo-LevelDirectorySeparatedirectoryforeachuser.PathnameCanhavethesamefilenamefordifferentuserEfficientsearchingNogroupingcapabilityTree-StructuredDirectoriesTree-StructuredDirectoriesAbsoluteorrelativepathnameCreatinganewfileisdoneincurrentdirectory.Deleteafile

rm<file-name>Creatinganewsubdirectoryisdoneincurrentdirectory.

mkdir<dir-name> Example:ifincurrentdirectory/spell/mail

mkdircountEfficientsearchingGroupingCapabilityCurrentdirectory(workingdirectory)cd/spell/mail/progtypelistmailprogcopyprtexpcountDeletingmaildeletingtheentiresubtreerootedby‘mail’Tree-LevelDirectory路徑名:一個文件的路徑名是由根目錄到該文件的通路上所有目錄文件名和該文件的符號名組成的。DOSWINDOWS系統(tǒng)中文件路徑名\A\R\T\B\IU\I\D\B\PNIX系統(tǒng)中文件路徑名/A/R/T/B/IU/I/D/B/PTree-LevelDirectoryAcyclic-GraphDirectoriesHavesharedsubdirectoriesandfiles.Acyclic-GraphDirectoriesTwodifferentnames(aliasing)Ifdictdeletesall

danglingpointer. Solutions:Backpointers,sowecandeleteallpointers.

Variablesizerecordsaproblem.Backpointersusingadaisychainorganization.Entry-hold-countsolution.GeneralGraphDirectoryGeneralGraphDirectory(Cont.)Howdoweguaranteenocycles?Allowonlylinkstofilenotsubdirectories.Garbagecollection.EverytimeanewlinkisaddeduseacycledetectionalgorithmtodeterminewhetheritisOK.FileSystemMountingAfilesystemmustbemountedbeforeitcanbeaccessed.Aunmountedfilesystem(I.e.Fig.11-11(b))ismountedatamountpoint.(a)Existing.(b)UnmountedPartitionMountPointFileSharingSharingoffilesonmulti-usersystemsisdesirable.

Sharingmaybedonethroughaprotectionscheme.

Ondistributedsystems,filesmaybesharedacrossanetwork.

NetworkFileSystem(NFS)isacommondistributedfile-sharingmethod.ProtectionFileowner/creatorshouldbeabletocontrol:whatcanbedonebywhomTypesofaccessReadWriteExecuteAppendDeleteListAccessListsandGroupsModeofaccess:read,write,executeThreeclassesofusers

RWX

a)owneraccess 7 111

RWX

b)groupsaccess 6 110

RWX

c)publicaccess 1 001Askmanagertocreateagroup(uniquename),sayG,andaddsomeuserstothegroup.Forparticularfileorsubdirectory,defineanappropriateaccess.ownergrouppublicchmod761gameAttachagrouptoafilechgrp

GgameLinux文件系統(tǒng)概述Linux文件系統(tǒng)是在內(nèi)核內(nèi)存和外部存儲器中管理文件系統(tǒng)目錄的一個內(nèi)核子系統(tǒng)Linux內(nèi)部認為,一個文件就是一個可以存儲在輔助存儲系統(tǒng)上的有名字節(jié)流:該字節(jié)流細分成一組塊,這些塊是按某一種文件系統(tǒng)類型所選取的策略存儲在輔助存儲系統(tǒng)上的Linux支持多種文件系統(tǒng)類型每一種類型是一種不同的文件系統(tǒng)實現(xiàn)通常每一種類型都在一個可裝載模塊中一些重要的文件類型編譯到了內(nèi)核中Linux支持多種文件系統(tǒng)實例每一個實例是一個安裝(mounted)了的文件系統(tǒng)每一個Linux系統(tǒng)有一個根文件系統(tǒng)文件系統(tǒng)的軟件體系結(jié)構(gòu)Linux文件系統(tǒng)類型基于實際設(shè)備的文件系統(tǒng)建立在塊設(shè)備(磁盤等)之上,例:ext、ext2、ext3

、VFAT、msdos、umsdos、vfat、ntfs、iso9660、minix、xia、sysv、其它,如swap、NFS等。網(wǎng)絡(luò)文件系統(tǒng)處理網(wǎng)絡(luò)協(xié)議的特殊模塊,例:NFS、SMB虛擬/特別文件系統(tǒng)/proc、/dev(devfs)等Linux的VFS虛擬文件系統(tǒng)也叫虛擬文件系統(tǒng)轉(zhuǎn)換(virtualfilesystemswitch),其數(shù)據(jù)結(jié)構(gòu)都是隨時建立和刪除的,在盤上并不永久存在,只能放在內(nèi)存中目的給用戶模態(tài)進程提供統(tǒng)一的文件管理接口為各種不同的文件系統(tǒng)類型提供內(nèi)核抽象功能提供與文件和文件系統(tǒng)相關(guān)的系統(tǒng)調(diào)用的服務(wù)管理所有與文件和文件系統(tǒng)相關(guān)的數(shù)據(jù)結(jié)構(gòu)提供進行有效查找和遍歷文件系統(tǒng)的例程與特定的文件系統(tǒng)模塊進行交互VFS的四個基本數(shù)據(jù)結(jié)構(gòu)superblock:用于一個文件系統(tǒng)每一個安裝了的文件系統(tǒng)都有一個superblock對象inode:用于一個特定的文件(相當于Unix的vnode)每一個文件由磁盤上的一條inode記錄表示有些作為inode對象裝載到了內(nèi)核內(nèi)存dentry:用于目錄樹結(jié)構(gòu)一個目錄中的每一個入口都由一個dentry表示用于pathname到inode的映射file:用于一個打開的文件句柄每一個進程都通過文件句柄跟蹤打開的文件VFS對象的關(guān)系dentry和inodedentry只駐留在內(nèi)核內(nèi)存中inode駐留在磁盤上,但是為了訪問被裝載到內(nèi)存中file和inode之間存在一一映射一個file(inode)可能有多個dentry一些雙向鏈表通過structlist_head*的一個域鏈接同一類型的所有對象表頭是另一類型對象的一個變量或者一個域VFS對象的抽象視圖文件系統(tǒng)的安裝常用術(shù)語安裝點安裝了的文件系統(tǒng)的根目錄根文件系統(tǒng)要使用一個文件系統(tǒng)首先必須注冊,然后必須進行安裝在安裝Linux時,磁盤上已經(jīng)有一個分區(qū)安裝了EXT2文件系統(tǒng),它被用來作為根文件系統(tǒng),根文件系統(tǒng)在系統(tǒng)啟動時自動安裝安裝一個文件系統(tǒng)文件系統(tǒng)安裝每一個文件系統(tǒng)實例是一棵樹安裝:將一個文件系統(tǒng)的樹根嫁接到另一個文件系統(tǒng)的葉子,形成一個更大的樹數(shù)據(jù)結(jié)構(gòu):structvfsmount代表一個安裝了的文件系統(tǒng)實例Linux文件系統(tǒng)的裝卸文件系統(tǒng)的使用UNIX文件系統(tǒng)只有一個根目錄(/)mount(安裝、掛載)操作

建立文件系統(tǒng)與目錄(mountpoint)的聯(lián)系:mount/dev/hdb1/homemount-tmsdos/dev/fd0/mnt/floppymount-t-iso9660/dev/cdrom/mnt/cdrommount-tvfat-ocodepage=936,iocharset=cp936/dev/hda5/mnt/dumount(卸載)操作 切斷文件系統(tǒng)與目錄的聯(lián)系。

umount/mnt/floppyUNIX/Linux的文件系統(tǒng)結(jié)構(gòu)1.UNIX文件系統(tǒng)結(jié)構(gòu) (硬盤分區(qū)上)引導(dǎo)塊(bootstrap)超級塊(專用塊、superblock) 記錄fs的整體信息,管理和控制文件卷的資源。內(nèi)容包括fs的名稱、狀態(tài);fs的大小,總盤塊數(shù)、已用、空閑;空閑盤塊索引;空閑i-node數(shù)、索引;封鎖標記、修改標記;……UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)索引節(jié)點表(i-nodetable)

描述文件的重要信息。數(shù)據(jù)區(qū) 存放文件的內(nèi)容。UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)

ext2文件系統(tǒng)結(jié)構(gòu)一個文件系統(tǒng)只有一個引導(dǎo)塊;只有“/”放引導(dǎo)程序;將塊劃分塊組,每個塊組重復(fù)保存fs的信息 (優(yōu)點:安全、高效:崩潰時易于恢復(fù);i-node和data近,操作快)超級塊是fs的信息,塊組描述符是塊組的信息(后4項)UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)ext2超級塊

文件系統(tǒng)的大小、形狀等信息。幻數(shù)(magicnumber)。安裝時確認是ext2的超級塊;文件系統(tǒng)的版本號(主版本號、次版本號);mount計數(shù)和最大mount數(shù);本超級塊的塊組號碼;數(shù)據(jù)塊大小(單位);數(shù)據(jù)塊數(shù)目;空閑塊數(shù)目;空閑i-node數(shù)目;fs中第1個inode的號碼。UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)目錄和索引節(jié)點(i-nodei:information)目錄文件目錄本身也是文件;UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)目錄文件包含的信息:一般OS:目錄中包括關(guān)于文件的信息,如文件名、屬主、權(quán)限、文件長度、文件的創(chuàng)建、訪問、修改時間等。UNIX:目錄項主要只有2項:文件名、i-node號。關(guān)于文件的信息放在i-node中。 一個目錄中至少有2個登記項.和..。Linux和后期的UNIX的擴展目錄項變長;有的系統(tǒng)(ext2、BSD)補足4的整數(shù)倍;UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)例:/usr/include/linux/ext2_fs.h中的定義/**Structureofadirectoryentry*/#defineEXT2_NAME_LEN255structext2_dir_entry{ __u32 inode; /*索引節(jié)點號*/ __u16 rec_len; /*目錄項長度*/ __u16 name_len; /*文件名長度*/

char name[EXT2_NAME_LEN]; /*文件名*/};UNIX/Linux的文件系統(tǒng)結(jié)構(gòu)文件的多重索引結(jié)構(gòu)Linux缺省塊大小為1k字節(jié),每指針4字節(jié)1024/4=256個指針/塊(塊大小可以在fs創(chuàng)建時指定)文件的容量=10+256+256^2+256^3=10+256+64MB+16GBLinux是32位OS,故4GB。訪問速度:當文件<260K時快。虛擬文件系統(tǒng)(vfs)本節(jié)內(nèi)容:1.虛擬文件系統(tǒng)(vfs)結(jié)構(gòu)2.

vfs主要數(shù)據(jù)結(jié)構(gòu)(4類:超級塊、索引節(jié)點、目錄項、文件及相互關(guān)系)3.vfs的注冊、mount和umount4.高速緩存(塊高速緩存、索引節(jié)點高速緩存、目錄高速緩存)虛擬文件系統(tǒng)(vfs)1.vfs系統(tǒng)結(jié)構(gòu)(支持多種文件系統(tǒng)的統(tǒng)一接口)虛擬文件系統(tǒng)(vfs)虛擬文件系統(tǒng)(vfs)vfs系統(tǒng)是一個內(nèi)核中的通用的文件子系統(tǒng)。vfs系統(tǒng)作用:對具體文件系統(tǒng),vfs是管理者;對內(nèi)核各子系統(tǒng),vfs是使用接口。具體作用: 1)接受用戶層的系統(tǒng)調(diào)用,如read、write、open、link等。 2)接受內(nèi)核其它子系統(tǒng)(特別是內(nèi)存管理子系統(tǒng))的操作請求。 3)對具體的fs進行抽象,以統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)(file_operation)進行管理。 4)支持多種具體的fs之間的相互訪問。

虛擬文件系統(tǒng)(vfs)2.vfs主要數(shù)據(jù)結(jié)構(gòu)(4類)超級塊(superblock):系統(tǒng)中已mount的fs的信息;索引節(jié)點(i-node):具體文件的屬性信息;目錄項(dentry):存放目錄項與對應(yīng)文件的鏈接信息;文件(file):打開的文件與進程進行交互的信息。共同特點:充分考慮多種文件系統(tǒng)的兼容性;只存在于內(nèi)存,是“虛”的(虛擬的、假的)。虛擬文件系統(tǒng)(vfs)(1)超級塊vfs超級塊只存在于內(nèi)存;在mount時建立,在umount時刪除。(vfs超級塊structsuper_block由/usr/include/linux/fs.h定義)數(shù)據(jù)結(jié)構(gòu)super_block的主要內(nèi)容:描述具體文件系統(tǒng)的整體信息:具體文件系統(tǒng)的塊設(shè)備標識符;fs中數(shù)據(jù)塊的大?。灰粋€塊大小占的位數(shù)(如1024--10);文件的最大長度幻數(shù)(magicnumber,區(qū)別不同的具體fs)虛擬文件系統(tǒng)(vfs)數(shù)據(jù)結(jié)構(gòu)super_block的主要內(nèi)容(續(xù))用于管理超級塊的域;指向超級塊鏈表的指針;鎖標志位,置位時其他進程不能對該超級塊操作;對超級塊讀寫時進行同步;超級塊的修改位;具體fsmount的目錄;超級塊使用計數(shù);索引節(jié)點鏈表虛擬文件系統(tǒng)(vfs)super_block的主要內(nèi)容(續(xù))和具體fs相聯(lián)系的域指向fs數(shù)據(jù)結(jié)構(gòu)的指針指向某特定的具體fs的用于超級塊操作的函數(shù)集合指向某特定的具體fs的用于限額操作的函數(shù)集合union,成員是各種fs的sb_info的數(shù)據(jù)結(jié)構(gòu)虛擬文件系統(tǒng)(vfs)(2)vfs索引節(jié)點每個文件或目錄有一個且僅有一個vfs索引節(jié)點;

vfs索引節(jié)點需要時保存在系統(tǒng)內(nèi)存或緩存(動態(tài));(vfs索引節(jié)點structinode由/usr/include/linux/fs.h定義)vfs索引節(jié)點內(nèi)容:描述文件信息:所在設(shè)備標識符、i-node號、類型及permissions、uid、時間、數(shù)據(jù)塊大小等;索引節(jié)點高速緩存信息:hash鏈表指針、索引節(jié)點鏈表指針、目錄項鏈表指針;描述索引節(jié)點操作信息:索引節(jié)點操作、指向文件操作的指針、鎖定狀態(tài)、同步信號量、等待隊列指針、索引節(jié)點修改指針等;與內(nèi)存頁面管理有關(guān)的信息;其它信息:各種指針及狀態(tài)標志等。虛擬文件系統(tǒng)(vfs)(vfs索引節(jié)點包含文件的大多數(shù)信息,但不包含路徑相關(guān)的信息及文件名)(3)目錄項(dentry)每一文件有一個dentry;dentry描述文件的邏輯屬性,在磁盤上沒有對應(yīng)的映象;

i-node描述文件的物理屬性,對于具體的fs,有對應(yīng)的映象;一個i-node可能對應(yīng)多個dentry。dentry內(nèi)容dentry標志、引用計數(shù);對應(yīng)的vfsi-node結(jié)構(gòu);隊列d_alias、d_hash、d_lru(鏈表);隊列d_vfsmnt、d_child、d_subdir(樹)虛擬文件系統(tǒng)(vfs)(4)與進程相關(guān)的文件結(jié)構(gòu) 主要有:file結(jié)構(gòu)、files_struct結(jié)構(gòu)和fs_struct結(jié)構(gòu)文件(file結(jié)構(gòu))文件描述符fd(每個進程最多能同時使用的文件數(shù)) 由fs.h的NR_OPEN定義;文件指針Linux定義數(shù)據(jù)結(jié)構(gòu)file,描述打開文件的文件指針(why:同一文件可被不同的進程打開,也可被同一進程多次打開)file結(jié)構(gòu)形成系統(tǒng)打開文件表,表長由NR_FILE定義。 系統(tǒng)創(chuàng)建2個file雙向循環(huán)鏈表,file在其一:“正使用”文件鏈表(inuse_filps);“未使用”文件鏈表(free_filps);虛擬文件系統(tǒng)(vfs)

4.高速緩存思想:減少塊設(shè)備操作的次數(shù)以提高系統(tǒng)性能;盡可能重復(fù)利用塊設(shè)備操作的結(jié)果。有:塊高速緩存、索引節(jié)點高速緩存和目錄高速緩存。(1)塊高速緩存(Buffercache)文件系統(tǒng)以塊為單位組織文件;文件以塊為單位訪問,故以塊為單位調(diào)入內(nèi)存;塊的唯一性:一個塊在內(nèi)存只有一個buffer;存在時間:避免頻繁調(diào)用;buffer的管理機制:創(chuàng)建、使用、查找、回收Linux的buffercache:緩沖區(qū)首部(buffer_head):記錄與buffer管理相關(guān)的信息;緩沖區(qū)內(nèi)容(data)虛擬文件系統(tǒng)(vfs)(2)索引節(jié)點高速緩存索引節(jié)點鏈表hash表:hash值由超級塊指針和inode號獲得in-usedirtyunused(3)目錄高速緩存目錄項狀態(tài): 空閑、未使用、正使用、負狀態(tài)(磁盤d_inode已刪除)目錄項高速緩存數(shù)據(jù)結(jié)構(gòu)hash表未使用、正使用、負狀態(tài)的目錄項文件類型、鏈接及訪問權(quán)限1.文件類型2.鏈接(link)3.文件類型和file命令5.文件訪問權(quán)限和進程的用戶標識文件類型、鏈接及訪問權(quán)限1.文件類型%ls-lt.txt-rw-rw-r-

溫馨提示

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

最新文檔

評論

0/150

提交評論