后向兼容聚合文件系统操作性能改进方法和相应装置制造方法

文档序号:6494526阅读:197来源:国知局
后向兼容聚合文件系统操作性能改进方法和相应装置制造方法
【专利摘要】一种操作文件系统的方法包括以下步骤:设计虚拟文件,以从文件目录提供结果,对于所述结果要求大量系统调用;由唯一名称区分虚拟文件与文件目录中的真实文件;以及通过打开虚拟文件并且读取虚拟文件的内容来从所述文件目录获取所述结果。设计虚拟文件特别用于文件系统操作。
【专利说明】后向兼容聚合文件系统操作性能改进方法和相应装置
【技术领域】
[0001]本发明涉及用于操作包括文件目录的文件系统的方法和装置,尤其涉及使用该方法的家用网关。
【背景技术】
[0002]将终端用户的家用网络连接到因特网的家用网关以在间隔时间内使用的方式被广泛使用。家用网关通常通过数字用户线路(DSL)和被称为POTS (普通老式电话服务)的电话通信提供宽带服务,并且此外包括用于家用网络的有线传输(例如因特网)和无线传输(W1-Fi)。为了提供服务,家用网关包括在类似Unix的操作系统上运行的微处理器系统(CPU)。
[0003]操作系统包括连同主控制程序(内核)一起的应用程序和实用工具。内核提供服务以开始和停止程序,处理文件系统和多数应用程序共享的其他共用的“低级”任务,并且调度访问以避免应用程序之间的冲突。为了中介这种访问,内核具有反映为其用户空间和系统空间之间的虚拟存储器分离的特权。系统空间严格为运行内核、内核扩展和多数设备驱动器而保留。相反,用户空间是其中所有用户模式应用程序工作的存储器区域并且该存储器在必要时可以被换出。
[0004]用于文件系统的关键想法是它们具有固定应用程序编程接口(API),其使得不同种类的文件系统可互操作。对于利用文件系统的应用程序,文件系统的格式(例如,FAT32、NTFS、Ext3...)没有影响,并且应用程序也不应该关心这个。对于类似Unix的操作系统,文件系统的API符合可移植操作系统接口(POSIX)标准,其是IEEE规定的标准族。
[0005]虽然文件系统API使得文件系统之间的可互操作性不重要(这是一个真正的优点),但这也可能是对于某些应用程序的弱点。某些很基本的操作不可能是直接的并且必须利用API的可用功能模拟,这可能在资源方面成本很高。
[0006]文件系统是操作系统的一部分,并且同样地它们在系统空间中运行。另一方面,应用程序运行在更少的特权的用户空间中。为了跨越用户空间和系统空间之间的边界,操作系统提供图1中图示的系统调用接口。系统调用是应用程序如何从操作系统的内核请求服务。一般地,存在使得借助函数如操作系统使用的系统调用可被用户空间访问的中间库,例如标准C库。
[0007]当应用程序直接调用系统调用时或者调用来自将调用系统调用的库中的函数时,要求用户空间和系统空间之间的转换。虽然存在其他实现,一种使得从用户空间转换到系统空间的常用方式是借助软件中断。利用该软件中断实现,系统调用的数量必须被加载到微处理器的寄存器中,并且执行软件中断,以传递控制权(control)到内核。
[0008]由于文件系统驻留在特权系统空间中,它们不能利用任何库。同样,实现文件系统是很复杂的。例如,存储器管理在系统空间中比其在用户空间中难得多。为了克服此限制,也可以在用户空间中实现文件系统。用以允许在用户空间中实现文件系统的实现的一个示例是用户空间中的文件系统(Filesystem in Userspace, FUSE)。FUSE是用于类似Unix的计算机操作系统的可加载内核模块。其如图2所图示包括行为与正常文件系统5类似的FUSE内核驱动器4和用于在用户空间中的文件系统3和FUSE内核驱动器4之间通信的FUSE库6。驻留在用户空间中的文件系统实现负责实现文件系统的接口。FUSE因此允许在用户空间中运行文件系统代码,同时FUSE内核驱动器4提供到操作系统内核的桥梁(bridge)。
[0009]当应用程序与在用户空间中实现的文件系统3交互时,相应的系统调用被发起为如使用驻留在系统空间中的任何文件系统一样。在内核内部,由FUSE内核驱动器4处理系统调用。FUSE内核驱动器4串行化系统调用并且经由FUSE字符设备将其传播回用户空间,在用户空间中,FUSE库6调用由文件系统3在用户空间中实现的对应函数。返回路径以相反的顺序遵循相同路径。
[0010]FUSE仅仅是允许在用户空间中实现文件系统的实现的一个示例,但是应该在这里强调的是,用户空间中所有种类的文件系统要求上下文切换。上下文切换是存储和恢复微处理器的状态以便可以在稍后时刻从相同点继续执行的计算处理。这使得多个处理更够共享单个CPU并且上下文切换是多任务操作系统的必要特征。上下文切换通常是计算密集型并且操作系统的大部分设计用于优化上下文切换的使用。上下文切换可以是寄存器上下文切换、任务上下文切换、线程上下文切换或者进程上下文切换。
[0011]进程上下文切换是将控制权从一个进程转换到另一个。进行这种上下文切换涉及存储第一进程的状态,使得其可以稍后继续,以及发起(initiate)第二进程的状态。对于用户空间中的文件系统3的实现,系统调 用中的每个导致两个上下文切换:进行系统调用的应用程序被暂停,使得实现为另一进程的文件系统可以处理该调用,并且当该调用返回时,调用应用程序继续。
[0012]在实现在用户空间中的文件系统的范围中,最大开销由此通过其要求的大量的上下文切换引入。图2中的大箭头1、2指示必须跨越的边界。垂直箭头I指示用户空间和系统空间之间的边界,无论文件系统在系统空间还是用户空间中实现,对于所有文件系统调用,该边界必须被跨越。水平箭头2图示进程之间的边界,其是当系统文件在用户空间中实现时引入的额外开销。
[0013]现在描述例示文件系统使用的三个示例,其将导致大量系统调用。如果向驻留在用户空间中的文件系统3应用这些示例,则这将导致不可实行数量的上下文切换:
[0014]b.1)计数目录中的元素:
[0015]下面的伪代码例示如何能够计数目录/foo/bar中的元素的数量。调用系统调用
的函数由黑体指示。
[0016]
【权利要求】
1.一种操作包括文件目录的文件系统的方法,所述文件目录具有真实文件,所述方法包括以下步骤: 设计虚拟文件,以从文件目录提供结果,对于所述结果要求大量的系统调用, 由唯一名称区分虚拟文件与文件目录中的真实文件,以及 通过打开虚拟文件并且读取虚拟文件的内容来从所述文件目录获取所述结果。
2.如权利要求1所述的方法,包括以下步骤:设计虚拟文件用于对于其要求大量的系统调用的文件系统操作。
3.如权利要求1或2所述的方法,包括以下步骤,当改变文件目录的内容时,更新虚拟文件的结果。
4.如权利要求1、2或3所述的方法,其中,由唯一文件扩展区分虚拟文件与文件目录中的真实文件。
5.如前述权利要求之一所述的方法,包括以下步骤:将虚拟文件布置在所述文件目录内部。
6.如前述权利要求之一所述的方法,包括以下步骤:设计虚拟文件用于以下文件系统操作:计数所述文件目录中的元素。
7.如前述权利要求之一所述的方法,包括以下步骤:设计虚拟文件用于以下文件系统操作:计数所述文件目录的所有直接子目录的元素。
8.如前述权利要求之一所述的方法,包括以下步骤:设计虚拟文件用于以下文件系统操作:依据偏移量读取所述文件目录的目录元素。
9.如前述权利要求之一所述的方法,包括以下步骤:设计虚拟文件用于以下文件系统操作:读取块中的完整文件目录。
10.一种装置,使用根据前述权利要求之一所述的方法。
11.根据权利要求10所述的装置,其中所述装置包括运行操作系统的微处理器系统,所述操作系统包括处理所述文件系统、应用程序和实用工具的控制程序。
12.如权利要求10或11所述的装置,其中所述装置是家用网关、DSL调制解调器或者机顶盒。
【文档编号】G06F17/30GK103443789SQ201280005843
【公开日】2013年12月11日 申请日期:2012年1月20日 优先权日:2011年1月21日
【发明者】F.范德哈伦, D.钱尼特, G.弗雷德里克斯, K.黑塞特斯 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1