微内核文件系统可扩展页面缓存系统及方法技术方案

技术编号:34694268 阅读:24 留言:0更新日期:2022-08-27 16:29
本发明专利技术提供了一种微内核文件系统可扩展页面缓存系统及方法,包括:模块M1:用于为与文件系统管理者服务器和文件系统服务器隔离在不同地址空间的客户端访问文件时,提供页缓存机制;模块M2:用于在每个文件系统中单独记录所有的页缓存信息,并启动一个回收线程,来周期性写回页缓存中的脏页;模块M3:用于将页缓存管理在文件系统端,多个客户端访问相同文件时,只在内存中存一份页缓存副本;模块M4:用于在页缓存资源达到预设阈值后,进行页面替换策略。与现有技术相比,本发明专利技术页缓存机制的应用显著降低了微内核系统中磁盘输入/输出消耗的时间。时间。时间。

【技术实现步骤摘要】
微内核文件系统可扩展页面缓存系统及方法


[0001]本专利技术涉及文件系统
,具体地,涉及一种微内核文件系统可扩展页面缓存系统及方法。

技术介绍

[0002]微内核(Microkernel)是仅提供核心功能的操作系统内核。与当前应用广泛的Linux和Windows等宏内核不同,微内核精简了内核的功能,以实现高可扩展性,可靠性跟稳定性。微内核操作系统仅将必要的功能,如内存管理等,放在内核态,而将其他功能,如文件系统和驱动等,放在用户态。由于内核中的功能模块大大减少,降低了内核发生问题的几率。同时,代码量的减少也使得形式化验证或维护变得更加容易。用户态的程序的崩溃,也因为其天然的隔离性,并不会影响到其他进程,更不会影响到内核。然而,微内核将各种系统服务做了隔离,因此请求各种系统服务需要通过进程间通信(Inter

Process Communication,IPC)的方式来传递消息,因此其请求服务的开销比宏内核要大。所以在其被提出来的几十年中,最终也没有能够做成像Windows或Linux这样用户群庞大的产品。
[0003]但是,近年来随着互联网产业的发展,操作系统在越来越多的场景下应用,微内核操作系统由于其高可扩展性、高可靠性和稳定性在很多关键领域展现出独一无二的优势。其也渐渐成为了当前研究的热门方向。与此同时,微内核同样面临着很多挑战,文件系统便是其中一个。
[0004]在传统宏内核操作系统中,文件系统实现在内核态。在没有页缓存机制时,文件输入/输出(Input/Output,I/O)操作的瓶颈原本在于设备I/O,传统机械硬盘对于内存的读写速度能差两个数量级。为了提升文件的读写速度,开发人员设计出了页缓存机制。
[0005]当一个用户访问一个文件时,首先会通过系统调用切换特权级到内核态,之后通过一系列内核功能模块间的函数调用请求磁盘操作,最后将读取到的文件内容返回给用户。而页缓存机制则会在内存中没有缓存读取的文件内容时,将文件内容缓存进内存。则在下一次用户读取同一份文件时能够直接读取内存。用户请求写文件时,则会将文件缓存进内存,并直接对内存进行修改。一段时间后(或者用户主动调用相关函数)将修改的内容一次性写入磁盘。通过在内存中合并多次文件写入,从而大幅度增加文件读写速度,这项技术在宏内核操作系统中已经十分成熟。
[0006]然而,在微内核操作系统中需要一套高可扩展性,高效率的页缓存机制来加快微内核操作系统中的文件读写效率。在宏内核场景中,用户请求文件系统只需要通过系统调用,切换到内核态后进行一系列函数调用即可;而在微内核场景下,文件系统(File System,FS)、文件系统管理者(File System Manager,FSM)和用户进程运行在不同的地址空间,他们之间不能直接通过函数调用进行文件操作。因此,直接将宏内核中的页缓存机制应用在微内核上是行不通的。
[0007]本专利技术基于将文件系统运行在用户态,作为一个用户态系统服务进程的微内核操作系统,提出了一套页缓存机制,来解决微内核场景下磁盘I/O速度慢的问题。同时,为了在
有限的页缓存资源的情况下在不同的负载上都有良好的命中率,本专利技术应用了多个页缓存替换策略,将不活跃的页面在页缓存资源较少的情况下写入磁盘,减少开销。
[0008]专利文献CN113326214A公开了一种页缓存管理方法,在计算设备中执行,该方法包括:获取任一业务场景下的页缓存信息和进程信息;定时统计页缓存信息,并根据各文件的各文件块在统计时间段内最后时刻的读命中率和写命中率,确定是否需要对当前页缓存管理策略进行优化;当需要优化时,根据各文件的各文件块在统计时间段内各个时刻的读命中率和写命中率,确定存在问题的文件及出现问题的阶段;根据统计时间段内的进程信息、页缓存信息、存在问题的文件及出现问题的阶段,确定新的页缓存管理策略;将页缓存的配置文件中存储的页缓存管理策略替换为新的页缓存管理策略。但该方法并未涉及将页缓存机制应用在微内核操作系统上的技术问题。

技术实现思路

[0009]针对现有技术中的缺陷,本专利技术的目的是提供一种微内核文件系统可扩展页面缓存系统及方法。
[0010]根据本专利技术提供的一种微内核文件系统可扩展页面缓存系统,包括:
[0011]模块M1:用于为与文件系统管理者服务器和文件系统服务器隔离在不同地址空间的客户端访问文件时,提供页缓存机制;
[0012]模块M2:用于在每个文件系统中单独记录所有的页缓存信息,并启动一个回收线程,来周期性写回页缓存中的脏页;
[0013]模块M3:用于将页缓存管理在文件系统端,多个客户端访问相同文件时,只在内存中存一份页缓存副本;
[0014]模块M4:用于在页缓存资源达到预设阈值后,进行页面替换策略。
[0015]优选地,模块M1,包括:
[0016]模块M101:用于设置文件系统管理者进程管理所有文件系统;
[0017]模块M102:用于在所有的文件系统服务器启动后向文件系统管理者进程注册;
[0018]模块M103:用于实现在文件系统对页缓存机制的封装,每个文件系统依赖文件系统库。
[0019]优选地,模块M103中,一个文件系统启动时,调用文件系统库中的初始化缓存的接口,初始化相关数据结构。
[0020]优选地,模块M3,包括:
[0021]模块M301:用于抽象对应磁盘索引节点对应的内存中的结构虚拟节点,每个索引节点对应的页缓存信息维护在虚拟节点的结构体中;
[0022]模块M302:用于当客户端打开文件时,文件系统打开文件在磁盘中的位置生成对应的虚拟节点,并且与已经存在的虚拟节点进行对照,若索引节点已经打开过,则直接复用存在的虚拟节点,若索引节点没有打开过,则生成索引节点对应的虚拟节点。
[0023]优选地,在文件系统中维护一个项链表,用于客户端通过文件描述符访问到索引节点对应的虚拟节点。
[0024]优选地,每个虚拟节点中维护了一个结构体,维护了文件在内存中对应的页缓存信息。
[0025]优选地,模块M4中包括二套页面替换策略。
[0026]优选地,模块M4,包括:在页缓存数量达到预设阈值时,根据预设规则通过页缓存链表将页缓存置出。
[0027]根据本专利技术提供的一种微内核文件系统可扩展页面缓存方法,采用上述的微内核文件系统可扩展页面缓存系统,包括:
[0028]步骤1:文件系统启动时向文件系统管理者注册,并调用页缓存初始化接口初始化相关数据结构;
[0029]步骤2:文件系统启动一个回收线程,定时检查是否有脏页需要写回磁盘;
[0030]步骤3:客户端打开文件,发送请求到文件系统管理者,文件系统管理者解析路径后查找对应的文件系统,并返回给客户端;
[0031]步骤4:客户端发送消息到文件系统,文件系统打开一个文件后,针对文件的索引节点生成对应的虚拟节点相关结构体;
[0032]步骤5:客户端进行读写操本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微内核文件系统可扩展页面缓存系统,其特征在于,包括:模块M1:用于为与文件系统管理者服务器和文件系统服务器隔离在不同地址空间的客户端访问文件时,提供页缓存机制;模块M2:用于在每个文件系统中单独记录所有的页缓存信息,并启动一个回收线程,来周期性写回页缓存中的脏页;模块M3:用于将页缓存管理在文件系统端,多个客户端访问相同文件时,只在内存中存一份页缓存副本;模块M4:用于在页缓存资源达到预设阈值后,进行页面替换策略。2.根据权利要求1所述的微内核文件系统可扩展页面缓存系统,其特征在于,所述模块M1,包括:模块M101:用于设置文件系统管理者进程管理所有文件系统;模块M102:用于在所有的文件系统服务器启动后向文件系统管理者进程注册;模块M103:用于实现在所述文件系统对页缓存机制的封装,每个文件系统依赖文件系统库。3.根据权利要求2所述的微内核文件系统可扩展页面缓存系统,其特征在于,所述模块M103中,一个文件系统启动时,调用文件系统库中的初始化缓存的接口,初始化相关数据结构。4.根据权利要求1所述的微内核文件系统可扩展页面缓存系统,其特征在于,所述模块M3,包括:模块M301:用于抽象对应磁盘索引节点对应的内存中的结构虚拟节点,每个所述索引节点对应的页缓存信息维护在所述虚拟节点的结构体中;模块M302:用于当客户端打开文件时,文件系统打开文件在磁盘中的位置生成对应的虚拟节点,并且与已经存在的虚拟节点进行对照,若所述索引节点已经打开过,则直接复用存在的虚拟节点,若所述索引节点没有打开过,则生成所述索引节点对应的虚拟节点。5.根据权利要求1或4所述的微内核文件系统可扩展页面缓存系统,其特征在于,在文件系统中维护一个项链表,用于客户端...

【专利技术属性】
技术研发人员:袁澍民古金宇臧斌宇陈海波
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1