- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统第10章 文件管理2
用户文件描述符表 系统为每个进程设置了一张用户文件描述符表,以记录进程使用文件的情况。 当用户第一次打开指定文件时,系统便在该进程的用户文件描述符表中分配一个空表项,填入有关信息,再取该表项在用户文件描述符表中的位移量作为文件描述符返回给用户。 以后,当用户再访问该文件时,只需提供该文件的描述符,系统根据描述符便可找到相应文件的内存索引节点。 文件表 文件表整个系统一张,其中存放文件的读/写指针。可以允许用户采用下述三种方式使用文件: 多个用户通过不同的文件表项读/写各自的文件; 多个用户共享一个文件,但彼此独立地对文件进行读/写; 多个用户共享一个文件,且共享一个读/写指针。 文件的三种读写方式 文件表 内存索引节点 … … … … … … A用户 B用户 C用户 D用户 E用户 F用户 用户文件描述符表 第一种情况 第二种情况 第三种情况 … … … … … 目录管理 文件系统的基本功能是实现按名存取,这是通过文件目录来实现的。 UNIX系统中的每个目录项由文件名及其相应的索引节点号组成,其中文件名占14个字节,索引节点号占2个字节。 通常,每个文件都在文件目录中有一个目录项,通过查找文件目录可以找到该文件的目录项和对应的索引节点,进而找到文件存放的物理位置。 构造目录 每当创建一个新文件时,系统都要在其父目录文件中为之构造一个目录项。 在UNIX系统中,构造目录的任务由makenode过程完成。 在创建一个新文件时,由系统调用creat调用该过程来为新文件构造一个目录项。makenode过程首先调用ialloc过程来为新建的文件分配一个磁盘索引节点和内存索引节点,设置内存索引节点的初值,然后调用写目录过程,将用户提供的文件名与分配给文件的磁盘索引节点号一起构成一个新目录项,再将它记入其父目录文件中。 删除目录 当用户已不再需要某个文件时,应将它从文件系统中删除。 UNIX系统中不存在一条用于删除文件的系统调用,当一个用户(进程)已不再需要某文件时,只能利用系统调用unlink请求清除进程与该文件的链接。此时,系统需对该文件的链接计数执行减1操作,并相应地删除该用户(进程)的一个指定文件目录。当所有链接到该文件的用户都不再需要该文件时,其链接计数值为0,这时系统才执行删除该文件的操作。 检索目录 在UNIX系统中,当用户第一次访问某文件时,需要使用文件的路径名,系统按路径名去检索文件目录,得到该文件的磁盘索引节点,且返回给用户一个文件描述符。 以后,用户便可以利用该文件描述符来访问文件,这时系统不必再去检索文件目录。 存取控制矩阵的使用和特点 当用户向文件系统提出存取请求时,由存取控制验证模块利用这个存取控制矩阵将本次请求和该用户对这个文件的存取权限进行比较,如果不匹配就拒绝执行; 存取控制矩阵法从原理上讲是简单、清晰的,但在实际上是不可行的,因为当用户和文件较多时,存取控制矩阵将变得非常庞大。例如,某系统有500个用户,20000个文件,那么这个存取控制矩阵就有500× 20000 =107个元素,空间开销太大; 实用的存取控制法有两种,一是存取控制表,二是用户权限表。 存取控制表 存取控制表是一种以文件为主的实现方案,它给出每个用户或每类用户对该文件拥有的存取权限。Unix系统使用的就是这种方案。 文件 用户 ALPHA 文件主 R、W、E A组 R、E B组 E 其他 None 用户权限表 用户权限表是以用户为主的实现方案,它把一个或一类用户对所有文件拥有的存取权限存放在该表内。 用户 文件 A组 Sqrt R、E Test R、E Alpha R Beta R 口令 口令是一种简单的文件保护方法; 使用口令的方法是文件主为自己的每个文件规定一个口令,一方面进行口令登记,另一方面把口令告诉允许访问该文件的用户; 当用户请求访问某文件时,首先要提供该文件的口令,经证实后再进行相应的访问。 口令方法的特点: 只需提供少量的保护信息,简单且易于实现; 但其保密性不强,不易更改存取权限; 这种方法常用于识别用户。 密码 密码方法对需要保护的文件进行加密; 文件写入时进行编码,读出时进行译码,要求发出存取请求的用户提供一个代码键; 一种简单的编码方式是利用代码键作为生成一串随机数的起始码,编码程序把这些随机数加到被编码文件的字节中去;译码时,用和编码时相同的代码键启动随机数发生器,并从存入文件的各字节中依次减去所产生的随机数; 密码技术具有保密性强、节省存储空间的优点,但编码和译码要花费一定的时间。 9.5.3.文件的转储和恢复 为了能在各种意外情况下减少或避免文件系统遭到破坏和丢失时的损失,最有效的方法就是定期
文档评论(0)