操作系统原理:第十一章 文件系统_第1页
操作系统原理:第十一章 文件系统_第2页
操作系统原理:第十一章 文件系统_第3页
操作系统原理:第十一章 文件系统_第4页
操作系统原理:第十一章 文件系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Chapter11

文件系统Chapter11:文件系统文件概念Fileattributes,Fileoperations,Filetypes,Filestructures访问方法目录结构文件系统安装文件共享文件保护文件概念文件系统提供了在线存储、访问计算机操作系统和所有用户程序与数据的机制文件是记录在外存上的具有名称的相关信息的集合文件为外部信息存储提供了统一逻辑接口,文件是逻辑外存的最小分配单元,即数据除非在文件中,否则不能写到外存类型:数据numericcharacterbinary程序源程序目标程序可执行程序文件属性example.bat名称–onlyinformationkeptinhuman-readableform标识符–uniquetag(number)identifiesfilewithinfilesystem类型–neededforsystemsthatsupportdifferenttypes位置–pointertofilelocationondevice大小–currentfilesize保护–controlswhocandoreading,writing,executing时间,日期,和用户标识–dataforprotection,security,andusagemonitoringInformationaboutfilesarekeptinthedirectorystructure,whichismaintainedonthedisk文件操作创建文件1.在文件系统中为文件找到空间2.在目录中为新文件创建一个条目写文件读文件在文件内重定位截短文件(truncate)只删除文件内容而保留其属性,而不是强制用户删除文件再创建文件。删除文件在目录中搜索给定名称的文件,找到相关目录条目后,释放所有的文件空间以便其他文件使用,并删除相应目录条目。Open(Fi):在磁盘上的目录结构中查找Fi,并将其内容复制到内存Close(Fi):将内存中的Fi的内容复制到位于磁盘上的目录结构中打开文件在打开文件时需要某些关联信息:文件指针:pointertolastread/writelocation,perprocessthathasthefileopen文件打开计数:counterofnumberoftimesafileisopen–toallowremovalofdatafromopen-filetablewhenlastprocessesclosesit文件在磁盘上的位置:cacheofdataaccessinformation访问权限:per-processaccessmodeinformationOpenFileLockingProvidedbysomeoperatingsystemsandfilesystemsControldifferentprocessaccesstothesamefile(assharedresource)Mandatoryoradvisory:Mandatory–accessisdenieddependingonlocksheldandrequestedAdvisory–processescanfindstatusoflocksanddecidewhattodoFileLockingExample–JavaAPIimportjava.io.*;importjava.nio.channels.*;publicclassLockingExample

{

publicstaticfinalbooleanEXCLUSIVE=false; publicstaticfinalbooleanSHARED=true; publicstaticvoidmain(String

arsg[])throwsIOException

{

FileLock

sharedLock=null;

FileLock

exclusiveLock=null; try{

RandomAccessFile

raf=newRandomAccessFile("file.txt","rw"); //getthechannelforthefile

FileChannel

ch=raf.getChannel(); //thislocksthefirsthalfofthefile-exclusive

exclusiveLock=ch.lock(0,raf.length()/2,EXCLUSIVE); /**Nowmodifythedata...*/ //releasethelock

exclusiveLock.release();FileLockingExample–JavaAPI(cont) //thislocksthesecondhalfofthefile-shared

sharedLock=ch.lock(raf.length()/2+1,raf.length(), SHARED); /**Nowreadthedata...*/ //releasethelock

exclusiveLock.release();

}

catch(java.io.IOException

ioe){

System.err.println(ioe);

}finally{

if(exclusiveLock!=null)

exclusiveLock.release(); if(sharedLock!=null)

sharedLock.release();

}

}}文件类型如果OS识别文件类型,那么它就能按合理方式对文件进行操作。实现文件类型的常用技术是在文件名称内包含类型名称和扩展名

AppleMacintonsh的文件有一个创建者属性,用来包含创建它的程序名称。当用户双击表示该文件的图标来打开文件时,就会自动调用相应的程序。UNIX系统彩幻数(magicnumber)(保存在文件的开始部分的一个整数值)大致表示文件类型:可执行程序、批处理文件、postscript文件。但不是所有的文件都有幻数。文件类型–名称,扩展名文件结构每个应用程序必须有自己的代码对输入文件进行合适的解释。但所有的OS必须至少支持一种结构,即可执行文件结构,以便能装入和运行程序。无:字或字节的序列简单记录结构行固定长度可变长度复杂结构格式化文档可重定位装载文件可通过在第一种表示方法中插入适当的控制字符来模拟后两种表示方法文件的结构由以下两者来决定OS程序访问方法顺序访问(基于文件的磁带模型) readnext writenext reset noreadafterlastwrite (rewrite)直接访问(基于文件的磁盘模型) readn writen positionton readnext writenext rewriten

n=relativeblocknumberSequential-accessFileSimulationofSequentialAccessonaDirect-accessFile

其它访问方法

ExampleofIndexandData(relative)Files

databasesystemstuff….11.3目录结构目录是包含所有文件信息的节点的集合BoththedirectorystructureandthefilesresideondiskBackupsofthesetwostructuresarekeptontapes典型的文件系统组成目录操作搜索文件创建文件删除文件列出目录重命名文件遍历文件系统目录逻辑结构的组织方法有效:迅速定位文件命名:方便用户两个不同的用户的文件名称可以相同同一文件可以有不同的名称分组:按文件的属性逻辑分组(如所有java程序,所有游戏等)组织目录(Logically)单层目录,双层目录树结构目录Howaboutsharedfiles&theuseoflink?无环图目录(nocycle)EasyforsearchDanglingpointerproblem通用图目录Cycledetection单层目录所有文件都包含在同一目录中,便于支持和理解。但存在命名问题与分组问题。双层目录SeparatedirectoryforeachuserPathnameCanhavethesamefilenamefordifferentuserEfficientsearchingNogroupingcapability树型目录树型目录(续)有效搜索分组当前目录(工作目录)cd/spell/mail/progtypelist绝对路径与相对路径名创建文件与目录通常在当前目录中进行mkdir<dir-name>删除文件rm<file-name>树型目录(Cont) Example:ifincurrentdirectory/mail

mkdircountmailprogcopyprtexpcountDeleting“mail”deletingtheentiresubtreerootedby“mail”无环图目录Havesharedsubdirectoriesandfiles无环图目录(Cont.)同一文件可能有不同的名字,不同的路径(aliasing)

共享文件和目录链接在共享目录中重复被共享文件信息共享文件和目录的删除-悬挂指针直接删除保留链接列表保留引用计数通用图目录通用图目录(续)如何确保无环?只允许链接发生在文件,而非子目录上垃圾收集自我引用的文件,其引用计数不等于0垃圾收集涉及遍历整个文件系统,并标记所有可访问的空间。然后,第二次将所有没有标记的部分收集到空闲空间链表上。每当新链接建立的时候,就采用相应的算法进行检测,以避免环的出现。文件系统安装文件系统在被系统上的进程使用之前必须安装(

mount)Mountpointisadirectorywithoutanyfilesinside(a)Existing.(b)UnmountedPartitionMountPoint11.5文件共享期望多用户系统上文件的共享共享可以通过保护机制来实现在分布式系统上,文件可以跨网络共享。NFS是一种常见的分布式文件共享方法文件共享–多用户用户标识(UserIDs)identifyusers,allowingpermissionsandprotectionstobeper-user

组标识(GroupIDs)allowuserstobeingroups,permittinggroupaccessrights文件共享–远程文件系统UsenetworkingtoallowfilesystemaccessbetweensystemsManuallyviaprogramslikeFTPAutomatically,seamlesslyusingdistributedfilesystems(分布式文件系统)Semiautomaticallyviathe

worldwideweb(WWW)Client-servermodelallowsclientstomountremotefilesystemsfromserversServercanservemultipleclientsClientanduser-on-clientidentificationisinsecureorcomplicatedNFSisstandardUNIXclient-serverfilesharingprotocolCIFSisstandardWindowsprotocolStandardoperatingsystemfilecallsaretranslatedintoremotecallsDistributedInformationSystems(distributednamingservices)suchasLDAP,DNS,NIS,ActiveDirectoryimplementunifiedaccesstoinformationneededforremotecomputing文件共享–故障模式远程文件系统增加了新的故障模式,可由网络故障,服务器故障等引起从故障中恢复需要客户机-服务器之间的状态信息无状态协议suchasNFSincludeallinformationineachrequest,allowingeasyrecoverybutlesssecurity文件共享–一致性语义一致性语义描述了多个用户如何同时访问同一个共享文件。SimilartoCh7processsynchronizationalgorithmsTendtobelesscomplexduetodiskI/Oandnetworklatency(forremotefilesystemsAndrewFileSystem(AFS)implementedcomplexremotefilesharingsemanticsUnixfilesystem(UFS)implements:WritestoanopenfilevisibleimmediatelytootherusersofthesameopenfileSharingfilepointertoallowmultipleuserstoreadandwriteconcurrentlyAFShas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论