请问什么是windows文件高速缓存?

请问什么是windows文件高速缓存?,第1张

高速缓存英文是cache。一种特殊的存储器子系统,其中复制了频繁使用的数据,以利于CPU快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。

L1高速缓存,也就是我们经常说的一级高速缓存。在CPU里面内置了高速缓存可以提高CPU的运行效率。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。采用回写(Write Back)结构的高速缓存。它对读和写*作均有可提供缓存。而采用写通(Write-through)结构的高速缓存,仅对读*作有效。在486以上的计算机中基本采用了回写式高速缓存。在目前流行的处理器中,奔腾Ⅲ和Celeron处理器拥有32KB的L1高速缓存,奔腾4为8KB,而AMD的Duron和Athlon处理器的L1高速缓存高达128KB。

L2高速缓存,指CPU第二层的高速缓存,第一个采用L2高速缓存的是奔腾 Pro处理器,它的L2高速缓存和CPU运行在相同频率下的,但成本昂贵,市场生命很短,所以其后奔腾 II的L2高速缓存运行在相当于CPU频率一半下的。接下来的Celeron处理器又使用了和CPU同速运行的L2高速缓存,现在流行的CPU,无论是AthlonXP和奔腾4,其L2高速缓存都是和CPU同速运行的。除了速度以外,L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量最大的是512KB,而服务器和工作站上用CPU的L2高速缓存更高达1MB-3MB。

——》1,高速缓存(Cache),全称“高速缓冲存储器”。

——》2,例如:当CPU处理数据时,它会先到高速缓存中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从主内存中读取数据——由于CPU的运行速度一般比主内存快,因此若要经常存取主内存的话,就必须等待数个CPU周期从而造成浪费。

——》3,提供“高速缓存”的目的是为了让数据存取的速度适应CPU的处理速度,其基于的原理是内存中“程序执行与数据访问的局域性行为”。

——》4,现在Cache的概念已经被扩充了:不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘高速缓存),乃至在硬盘与网络之间也有某种意义上的“Cache”(Internet临时文件夹)。

——》5,凡是位于速度相差较大的两种硬件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache。

——》6,所以硬盘和内存之间的Cache就叫做磁盘高速缓存。它是在内存中开辟一块位置,来临时存取硬盘中的数据。这项技术可使计算机读写时的存储系统平均数据传输率提高5-10倍,适应了当前激增的海量数据存储需求。

——》7,在DOS时代,我们用:

smartdrv 内存容量

命令来加载硬盘高速缓存。自从有了Windows后,我们就不需要加载硬盘高速缓存了,因为Windows本身有自己的高速缓存管理单元,如果强行使用smartdrv命令加载,反而会影响Windows的性能。

——》8,我们在用硬盘安装Win2000/XP时候,系统会提示加载高速缓存,这是因为在安装的初期还是DOS操作,所以为了达到读存的速度,安装程序要求加载高速缓存

1.1 缓存管理器介于内存管理器(VMM)和文件系统驱动程序(FS)之间,它包含一组以"Cc"打头的内核模式函数,全局变量,以及一些系统线程.

1.2 缓存管理器(CM)以虚拟块(Virtual Block)为基础来缓存数据,

这使得可以在不涉及文件系统驱动程序的情况下进行智能预读((Read_Ahead)和延迟(Lazy_Write)

1.3 Windows缓存管理器使用一种称为虚拟块缓存(virtual Block caching)的方法,它跟踪,记录了哪些文件的哪些部分位于缓存中.

1.4 在intel x86系统中,系统默认的缓存大小为512MB,地址范围是0xc1000000--0xe100000

 2.缓存管理器during read and write operation

2.1 读的操作.

大致的过程如下,从I/O管理器发出一个read的IRP开始,然后是到文件系统驱动程序,然后是缓存管理器,再然后是虚拟内存管理器.

中间需要进行两个判断,1.缓存管理器是否将文件缓存到系统缓存中? 2,是否产生页错误?

2.2 写操作和读操作类似,见下图.

3.Cache Manager Interface

3.1 文件流(File Stream) 操作函数(

使文件映射到系统缓存中.

@ CcInitializeCacheMap()

@ CcSetFileSize()

@ CcFlushCache()

@ CcZeroData()

@ CcGetFileObjectFromSectionPtrs()

@ ......

3.2 文件系统接口

一旦一个文件已经被建立起缓存方式的访问环境,文件系统驱动程序就调用几个函数中的某一个来访问文件中的数据.

要访问被缓存的数据,可以通过下面三种主要的方法:

1、通过服务器管理器安装添加角色

2、下一步

3、勾选“文件服务器”

4、下一步

5、勾选“文件服务器”和“windows Search服务”

6、可以勾选需要索引的卷

7、确认安装项目,进行安装

8、安装

9、安装成功,关闭对话框。

10、在“服务器管理器”中,展开“角色”-----“文件服务”-----“共享和存储管理”。在管理工具里面也可以找到。

11、点击右侧的“设置共享”

12、浏览需要共享的文件夹

13、我们选择C盘的share文件夹

14、点击下一步

15、我们来更改,编辑NTFS权限

16、给予user组可读的权限

17、下一步

18、勾选“SMB”,确定共享名。下一步。

19、点击高级,可以配置一些高级选项。

20、在用户限制标签,可以限制同时连接这个共享的用户数,或者启用禁用,基于访问权限的枚举。

21、在“缓存”标签,可以设置这个共享文件夹是否可以在客户端缓存。

22、根据自己需要设置好之后,下一步

23、这个共享文件夹,我们让所有用户都只具有只读的共享访问权限。

24、由于我们还没有配置DFS,我们暂时不要将它发布到DFS命名空间

25、确定我们的配置,点击“创建”

26、成功之后,关闭窗口。

27、我们在共享和存储管理中,可以看到我们新建的share共享了。

28、选中share共享文件夹,我们在右侧启用或者停止共享。

29、我们也可以在这个共享文件夹上,点击右键,选择“属性”

30、在这里我们依然可以对这个共享的属性进行调整。

31、还可以调整共享权限和NTFS权限。

32、我们往C:\share里面放入一些文件。

33、我们找到一台同网段的客户端电脑

34、通过 \\fs01 来访问文件服务器。我们发现已经可以正常访问了。

35、双击进入share目录,可以看到我们刚才放入的文件。

36、我们尝试一下删除

37、可以看到,大家只有只读权限。

我的服务器用的是小鸟云的,挺稳定的,性能好。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/583457.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-06
下一篇2023-07-06

发表评论

登录后才能评论

评论列表(0条)

    保存