1 / 26

Chapter 10: File-System

Chapter 10: File-System. 10.1 File Concept 10.2 Access Methods 10.3 Directory Structure 10.4 File-System Mounting 10.5 File Sharing 10.6 Protection. Objectives. To explain the function of file systems To describe the interfaces to file systems

bianca
Télécharger la présentation

Chapter 10: File-System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 10: File-System • 10.1 File Concept • 10.2 Access Methods • 10.3 Directory Structure • 10.4 File-System Mounting • 10.5 File Sharing • 10.6 Protection

  2. Objectives • To explain the function of file systems • To describe the interfaces to file systems • To discuss file-system design tradeoffs, including access methods, file sharing, file locking, and directory structures • To discuss the semantics of sharing files among multiple processes, users, and computers • To explore file-system protection

  3. 10.1 File Concept • The operating system abstracts from the physical properties of its storage to define a logical storage unit, the file. • Files are mapped by the OS onto physical, usually nonvolatile, devices. • Use Ultra-Editor to examine contents of a file • File types: • Data, free form or formatted • numeric • character • binary • Program • source • object

  4. File Structure • None - sequence of words, bytes • Simple record structure • Lines and Pages • Fixed length • Variable length • Complex Structures • Formatted document • Relocatable load file • Executable • Who decides: • Operating system • Program

  5. File Attributes • Name – only information kept in human-readable form • Identifier – unique tag (number) identifies file within file system • Type – needed for systems that support different file types • Location – pointer to the 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 secondary storage, like a disk

  6. File Operations • File is an abstract data type withthe following basic operations • create • write • The system must keep a writer pointer. File info in the directory also updated • read • The system must keep a read pointer. • reposition within file (known as file seek) • delete • truncate • Other operations • append, rename, copy, get/set file attributes

  7. Open and Close Files • Most file operations involve searching the directory for a file • 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 • The OS normally maintains two-level open-file tables, per-process and system-wide

  8. Open and Close Files • Several pieces of data are needed to manage open files: • File pointer: pointer to last read/write location, per process that has the file open • File-open count: counter of number of times a file is open – to allow removal of data from open-file table when last processes closes it • Disk location of the file: cache of data access information • Access rights: per-process access mode information

  9. Open File Locking • Provided by some operating systems and file systems • Mediates access to a file, like process synchronization • shared lock and exclusive lock • Mandatory or advisory: • Mandatory – access is denied depending on locks held and requested (Windows) • Advisory – processes can find status of locks and decide what to do (Unix)

  10. File Locking Example – Java API import java.io.*; import java.nio.channels.*; public class LockingExample { public static final boolean EXCLUSIVE = false; public static final boolean SHARED = true; public static void main(String arsg[]) throws IOException { FileLock sharedLock = null; FileLock exclusiveLock = null; try { RandomAccessFile raf = new RandomAccessFile("file.txt", "rw"); // get the channel for the file FileChannel ch = raf.getChannel(); // this locks the first half of the file - exclusive exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE); /** Now modify the data . . . */ // release the lock exclusiveLock.release();

  11. File Locking Example – Java API (cont) // this locks the second half of the file - shared sharedLock = ch.lock(raf.length()/2+1, raf.length(), SHARED); /** Now read the data . . . */ // release the lock sharedLock.release(); }catch (java.io.IOException ioe) { System.err.println(ioe); }finally { if (exclusiveLock != null) exclusiveLock.release(); if (sharedLock != null) sharedLock.release(); } } }

  12. Common File Types Unix: use magic number to indicate roughly file types Skip: p.365 第 2 段及第 3 段Skip: 10.1.4, 10.1.5

  13. 10.2 Access Methods • Sequential Access (based on tape model) read next write next reset to the beginning no read after last write • Direct Access (or relative access) read n write n position to n read next write next rewrite n (n = relative block number)

  14. Simulation of sequential access on a direct-access file Some systems support only one of sequential access and direct access for files. Simulation of direct access on a sequential-access fileis inefficient and clumsy

  15. Example of Index and Relative Files Other Access Methods

  16. Directory Files F 1 F 2 F 3 F 4 F n 10.3 Directory Structure • A disk may have several partitions. A partition may be with a file system. Several partitions, maybe from many disks, could form a volume that holds a file system. • A collection of nodes containing information about all files • Both the directory structure and the files reside on disk • Backups of these two structures are kept on tapes

  17. A Typical File-system Organization

  18. Operations Performed on Directory • Search for a file • Create a file • Delete a file • List a directory • Rename a file • Traverse the file system • for backup (to tape)

  19. 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, …

  20. Single-Level Directory • A single directory for all users Naming problem Grouping problem

  21. Two-Level Directory • Separate directory for each user • Can have the same file name for different user • Isolation or Allow access to other’s files? • If allowed, then use path name • Efficient searching • Use environment variable: search path • No grouping capability

  22. Tree-Structured Directories

  23. Tree-Structured Directories • Efficient searching • Grouping Capability • Current directory (working directory) • cd /spell/mail/prog • type list • Absolute or relative path name • Creating a new file is done in current directory • Delete a file rm <file-name> • Delete a directory • MS-DOS will not delete a directory unless it is empty • Unix provides an option to delete all files and sub-directories under a directory

  24. Tree-Structured Directories • Creating a new subdirectory is done in current directory mkdir <dir-name> Example: if current directory is /mail mkdir count mail prog copy prt exp count In Unix “rm –f mail”  deleting the entire subtree rooted by “mail”

  25. Acyclic-Graph Directories • Use link to have shared subdirectories and files • Another approach: duplicate all information about subdirectories and files in both sharing directories. But it is hard to maintain consistency when a shared file is modified.

  26. Acyclic-Graph Directories • New directory entry type • Link – another name (pointer) to an existing file • Resolve the link – follow pointer to locate the file • Two different names (aliasing) • A file could have multiple absolute path names. • Traverse problem. • If dict deletes all dangling pointer. Solutions: • Just wait for users to find out. It is used with symbolic links: • Preserve the file until all references to it are deleted. Unix uses this approach for hard links by keeping a reference count in the file information block. • Acyclic-graph could be maintained by prohibiting multiple references to directories SKIP: 10.3.7

More Related