快速文件系统实验报告 - Read.PDF

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
快速文件系统实验报告 - Read

速文件系统实验报告 一、实验目的: 1 理解Windows 2000/XP 系统的文件管理机制。 2 掌握无文件高速缓存 文件高速缓存、异步传输模式的原理。 3 比较无文件高速缓存 文件高速缓存、异步传输模式的使用。 二、实验原理: 1 文件高速缓存: (1) 假设一个进程读了文件的第一个字节,它常常会按照顺序读第二个第三个字节,一直 到读出所有的字节。利用这个原理可以进行 预取”,也就是说,在进程没请求读磁盘之前就先 把文件读出来并放到高速缓存中。 (2) 由于一个文件可能会被多次读人,因此可以在第一次读人后,将文件数据保存在高速 缓存中。这 ,下次再读时就不必再从硬盘而可以从缓存中读取。 (3) LRU(LeastRecently Used,最近最少使用)的原则,可以将不常使用的文件从缓存中删除 以节省高速缓存空间。 (4) 文件高速缓存还有一个 事后写”的机制。具体地讲,如果一个进程要求写磁盘,它首先 把要写的内容交给高速缓存。而高速缓存并不马上把它写到磁盘上,而是寻找CPU 空闲的时间 来进行写操作。这 ,要写磁盘的进程就可以不必等待磁盘写完毕以后再继续工作,这也就节 省了整个进程的执行时间。这里需要说明的是,如果有另外一个进程要访问还没有被写入磁盘 的文件时,高速缓存管理程序可以使这个进程直接读高速缓存里面新的即将要写入的文件内容, 而不是磁盘上的旧内容,从而保证了文件内容的一致性。 2 异步传输 (1) 文件的异步传输是一种改变指令执行顺序的机制。 (2) 如果CPU 遇到一条访盘指令,那么它就必须等待缓慢的磁盘访问结束以后才能进行后续 的工作。 (3) 如果它后面的指令并不依赖于访盘操作时,这个等待就显得很没有必要。Windows 2000 中使用了一种异步传输的机制来解决这个问题。 (4) 它通过设置打开文件时的一个标志位来使进程不等待读写文件操作而继续执行。当后续 指令必须用到磁盘访问的结果数据时,它再通过一条Wait 指令进行等待。 (5) 在访盘指令和等待指令之间的指令就可以 磁盘访问同时进行了,从而大大加快了系统 的 三、相关的API 函数用法总结: 1 CreateFile (1) 功能: CreateFile 函数创建或打开下列对象,并返回一个可以用来访问这些对象的句柄。 1) 文件 2) pipes 3) 邮槽 4) 通信资源 5) 磁盘驱动器(仅适用于windowsNT ) 6) 控制台 7) 文件夹(仅用于打开)。 (2) 函数原型: HANDLE CreateFile(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) (3) 参数说明: 1) lpFileName:指向一个空结尾字符串。该参数指定了用于创建或打开句柄的对象。如果 lpFileName 的对象是一个路径,则有一个最大字符数的限制。不能超过常量(MAX_PATH). 这个限制指示了CreateFile 函数如何解析路径。 2) dwDesiredAccess 指定对象的访问方式,程序可以获得读访问权,写访问权,读写访问权或者 是询问设备(device query) 访问权。这个参数可以是下列值的任意组合: a) 0:指定询问访问权.程序可以在不直接访问设备的情况下查询设备的属性。 b) GENERIC_READ:指定读访问权.可以从文件中读取数据,并且移动文件指针.可以 和GENERIC_WRITE 组合成为读写访问权。 c) GENERIC_WRITE:指定写访问权.可以从文件中写入数据,并且移动文件指针.可以 和GENERIC_READ 组合成为读写访问权。 3) dwShareMode 4) 设置位标志指明对象如休共享.如果参数是0, 对象不能够共享。 后续的打开对象的操作 将会失败,直到该对象的句柄关闭。使用一个或多个下列

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档