发明名称 一种分布式文件系统客户端的文件系统的实现方法
摘要 本发明提供了一种分布式文件系统客户端的文件系统。本发明中,客户端由内核态模块和用户态守护进程两部分组成。这两个模块通过字符设备进行通信,但是和FUSE的不同点在于,内核态在与用户态通信之前,会将需要的内存页面准备好,并映射为用户态可以访问的虚拟地址,将虚拟地址作为通信的一部分,传递给用户态守护进程。这样以来,用户态进程就可以直接操作内核态事先准备好的内存区域,而不需要再进行内存分配,同时避免了用户态和内核态之间的内存拷贝。
申请公布号 CN102541984B 申请公布日期 2013.08.28
申请号 CN201110326447.4 申请日期 2011.10.25
申请人 曙光信息产业(北京)有限公司 发明人 杨浩;马照云;马振杰;张东阳;邵宗有;刘新春;苗艳超;王勇
分类号 G06F17/30(2006.01)I;G06F12/08(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京安博达知识产权代理有限公司 11271 代理人 徐国文
主权项 一种分布式文件系统客户端的文件系统的实现方法,其特征在于:内核态模块注册一个字符设备,用户态守护进程通过系统读写调用来访问该字符设备,来读取请求以及返回请求执行的结果;所述内核态模块采用页面的方式管理文件系统请求,当收到文件系统相关请求时,先将文件系统的请求加入到自定义的请求缓存区;所述用户态的守护进程会有线程采用阻塞时读取的方式,一直尝试读取请求,如果请求缓存区中没有有效的请求,则守护进程的读线程会一直阻塞;当内核态模块接收到文件系统请求后,会将守护进程的读线程唤醒;所述读线程被唤醒后,会在内核态将文件系统请求缓存区的相关页面映射到该进程用户态可以访问的虚拟地址,为该进程用户态分配管理结构,将地址填到该管理结构中,并通过读系统调用传递给用户态守护进程,用户态守护进程读取到管理结构后,会从中取出相应的文件系统请求,进行处理;所述用户态处理完请求后,会将处理结果填充到由内核态模块传递过来的虚拟地址当中,通过字符设备的写系统调用通知内核态目录,内核态模块收到用户态写请求后,会取出管理结构,并从中取出文件系统请求,直接拷贝给应用程序;所述文件系统对于文件的读写,还需要将文件页面缓存中相关的页面映射到进程的虚存空间,并通过请求结构传递给用户态守护 进程,用户态守护进程收到请求后,会直接操作文件的页面缓存,将文件缓存页面直接映射。
地址 100084 北京市海淀区水磨西街64号