Chapter 10 File-System Interface
OS provides uniform logical view of storage
File as logical storage unit
File attributes -- name, identifier, type, location, size, protection, time/date/user
File operations -- create, write, read, reposition in file, delete, truncate, (open)
System data -- file pointer, file-open count, disk location, access rights
File locking -- shared lock vs. exclusive lock & mandatory vs. advisory
File typing
File structure -- e.g., Mac -- data vs. resource fork
Access methods -- sequential, direct, indexed, indexed sequential
Directory structure -- multiple file systems, partitions (slices, minidisks), volumes, directories
Directory operations -- search, create, delete, list, rename, traverse, (move)
Single-level directories
Two-level directories
Tree-structured directories
Acyclic-graph directories -- symbolic links, hard links
File system mounting -- Unix mount, umount
File sharing -- file naming, sharing, protection
Owner, group, world
Distributed file systems (DFS)
Client-server
Distributed naming services -- domain name service (DNS), network information service (NIS), lightweight directory-access protocol (LDAP)
Single secure sign-on
Consistency semantics
Immutable-shared files
Protection -- controlled access, access control lists (ACL)
Unix approach
Homework: Simulator for Page Replacement
Create a simulator for the evaluation of page-replacement algorithms assuming pure demand paging.
You should include a routine or program to generate a random set of two-digit numbers to be used as a reference-string.
As input, you should be able to specify the file for the reference string, the number of free frames, the algorithm you are using, and any appropriate algorithm parameters.
At a minimum you should support FIFO, Optimal (for comparison), and LRU.
Ideally, you will also include Second-chance.
Output should include all appropriate run parameters and the number of page faults.
Design is due on next Tuesday (Oct 23). Final code is tentatively set for next Thursday (Oct 25). The class decision was to work independently on this. You may program in Python, C, C++, or Mathematica.
Due date extended to Tuesday, October 30.