CITS2002 Systems Programming  
prev
next CITS2002 CITS2002 schedule  

The File Management System

The increased simplicity of the file systems provided by modern operating systems has enabled a concentration on efficiency, security and constrained access, and robustness.

Operating systems provide a layer of system-level software, using system-calls, to provide services relating to the provision of files.

The consistent use of system-calls for this task, obviates the need for each application program to manage its own disk (space) allocation and access.

Moreover, using system-calls to enter the kernel permits the OS to use file-system access as an opportunity to schedule processes. As a kernel-level responsibility, the file management system again provides a central role in resource (buffer) allocation and process scheduling.

Ken Thompson, one of the original creators of Unix, was once asked what he'd do if he had it to do over again.
He said, "I'd spell creat with an 'e'."

File-based activity System-calls
File creation, deletion open(), creat(), close(), truncate(), unlink()
Accessing a file's contents read(), write(), lseek()
Accessing a file's attributes chmod(), chown(), stat()
(Some) directory operations mkdir(), rmdir()

From the "viewpoint" of the operating system kernel itself, the file management system has a number of goals:

  • to support the storage, searching, and modification of user data,
  • to guarantee the correctness and integrity of the data,
  • to optimise both the overall throughput (from the operating system's global view) and response time (from the user's view).
  • to provide "transparent" access to many different device types such as hard disks, CD-ROMs, and portable devices (accessed by their file-system),
  • to provide a standardised set of I/O interface routines, perhaps ameliorating the concepts of file, device and network access.

 


CITS2002 Systems Programming, Lecture 15, p3, 18th September 2023.