Abstract
Modern operating systems incorporate an abstract layer called Virtual File System (VFS), which is positioned between user applications and real file systems to hide the differences of various file systems and to expose generic application interfaces for requesting file system services. However, VFS sometimes does not give applications an opportunity to pass information to file systems to help them make correct optimization decisions. In this paper, we review the Linux VFS, discuss its deficiencies and propose several extensions to allow applications to cooperate with the file systems more efficiently. We introduce simple prefetching interfaces and advisory flags to allow applications to communicate application-related semantics to VFS and/or the underlying file systems. These suggestions, which neither affect the semantics of applications nor modify their programming models, not only lead to simple VFS/file systems but also guide them to make correct performance-related decisions, if required. We demonstrate that these interfaces and flags are also easy to implement and can boost application performance by up to 4.29X.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.