300 likes | 455 Views
Chapter 11 File-System Interface. Outline. File Concept Access Methods Directory Structure File System Mounting File Sharing Protection. File Concept. Contiguous logical address space Types: Data numeric character binary Program. File Structure. None - sequence of words, bytes
E N D
Outline • File Concept • Access Methods • Directory Structure • File System Mounting • File Sharing • Protection os11
File Concept • Contiguous logical address space • Types: • Data • numeric • character • binary • Program os11
File Structure • None - sequence of words, bytes • Simple record structure • Lines • Fixed length • Variable length • Complex Structures • Formatted document • Relocatable load file • Can simulate last two with first method by inserting appropriate control characters. • Who decides: • Operating system • Program os11
File Attributes • Name– only information kept in human-readable form. • Type– needed for systems that support different types. • Location– pointer to file location on device. • Size– current file size. • Protection– controls who can do reading, writing, executing. • Time, date, and user identification– data for protection, security, and usage monitoring. • Information about files are kept in the directory structure, which is maintained on the disk. os11
File Operations • Create • Write • Read • Reposition within file – file seek • Delete • Truncate • Open(Fi) – search the directory structure on disk for entry Fi, and move the content of entry to memory. • Close (Fi) – move the content of entry Fi in memory to directory structure on disk. os11
Open a File • A file is openwhen it is first used. No search on directory is required for later usage. • Two levels of tables • A table for each process (information dependent on the process) • index to system table • current position pointer • A system open-file table (information independent from a process) • open count (for shared files) • disk location • access date • file size os11
OS and Disk I/O • Advantages for OS to know the file type • avoid some mistakes (e.g., print a binary-object) • TOPS-20: if source program has been modified, running an old .obj file causes re-compiling automatically • Windows: doubling clicking a .doc file invokes MS Words • Disk I/O performs in units of one block • logical records packing a physical block • all file systems have internal fragmentation • larger block larger internal fragmentation os11
Access Methods • Sequential access: records are processed in order, e.g., tapes • read/write (next) • reset to beginning, skip forward/backword • Direct access (disks) • position (seek) to the n-th record • read/write • Other (direct access+index) • an index table (can be put into memory); the index, like an index in the back of a book, contains pointers to the various blocks. • file in disk J: reduce I/O for searching on a large file os11
Sequential-access current position end beginning read/write rewind Index and relative files adams smith, john id age address arthur asher smith index file relative file os11
Directory Structure (1) • A collection of nodes containing information about all files. Directory Files F 1 F 2 F 3 F 4 F n Both the directory structure and the files reside on disk. Backups of these two structures are kept on tapes. os11
directory directory partition A partition C directory partition B disk 1 disk 2 Directory Structure (2) • Typical file-system organization • disk partitions (IBM: minidisk, PC: volume) files (including directories) os11
Directory Structure (3) flexible complicated • Directory structures • Single-level directory • Two-level directory • Tree-structured directory (more common) • Acyclic-graph directory (cycle-detection is expensive) • General graph directory (garbage collection is expensive) os11
Operations Performed on Directory • Search for a file • Create a file • Delete a file • List a directory • Rename a file • Traverse the file system os11
Organize the Directory (Logically) to Obtain • Efficiency– locating a file quickly. • Naming– convenient to users. • Two users can have same name for different files. • The same file can have several different names. • Grouping– logical grouping of files by properties, (e.g., all Java programs, all games, …) os11
Single-Level Directory • A single directory for all users. Naming problem L:1. difficult to remember all names 2. not easy to give a new name 3. confusion between different users Grouping problem os11
Two-Level Directory • Separate directory for each user. • Path name: user name + file name • Can have the same file name for different user • Efficient searching • No grouping capability os11
Tree-structured directory • each user has a current directory • absolute path name vs. relative path name • search path root spell obj program current directory stat mail dist test pe2 cc pas a mail\jaja, or \spell\mail\jaja cat bo a test jaja ab os11
Acyclic-graph directory J: 1.share subdirectory (file): the same file or directory may be in two different directories. 2. relative simplicity of the algorithms to traverse the graph and to determine when there are no more reference to a file. L: • Search/traverse the file system should be careful • Deletion is complicated: • Dangling pointers to a deleted file. • Solution: Keep a count of the number of references • Detection of cycles is expensive os11
Acyclic-graph directory root spell obj program cat mail dist pe2 pe2 cc pasc a cat bo a test os11
General graph directory L: How do we guarantee no cycle? • Searching/traversing is difficult • search a directory twice limit # of directories that can be accessed • infinite loop • Deletion is more complicated • Self-reference: a set of files with nonzero reference-count that are impossible to refer, the possibility of self-referencing (a cycle) in the directory structure. • Solution: garbage collection (very expensive) os11
General graph directory root spell obj program cat mail dist pe2 pe2 cc pasc a root bo a test os11
File System Mounting • A file system must be mounted before it can be accessed. • A unmounted file system (I.e. Fig. 11-11(b)) is mounted at a mount point. os11
Mount Point os11
File Sharing • Sharing of files on multi-user systems is desirable. • Sharing may be done through a protection scheme. • On distributed systems, files may be shared across a network. • Network File System (NFS) is a common distributed file-sharing method. os11
Protection • File owner/creator should be able to control: • what can be done • by whom • Types of access • Read • Write • Execute • Append • Delete • List os11
owner group public chmod 761 game Access Lists and Groups • Mode of access: read, write, execute • Three classes of users RWX a) owner access 7 1 1 1 RWX b) group access 6 1 1 0 RWX c) public access 1 0 0 1 • Ask manager to create a group (unique name), say G, and add some users to the group. • For a particular file (say game) or subdirectory, define an appropriate access. os11