* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download File-System
Copland (operating system) wikipedia , lookup
Security-focused operating system wikipedia , lookup
Library (computing) wikipedia , lookup
MTS system architecture wikipedia , lookup
Windows NT startup process wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Commodore DOS wikipedia , lookup
Spring (operating system) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Computer file wikipedia , lookup
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 Operating System Principles 10.1 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.2 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.3 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.4 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.5 Silberschatz, Galvin and Gagne ©2005 File Operations File is an abstract data type with the 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 Operating System Principles 10.6 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.7 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.8 Silberschatz, Galvin and Gagne ©2005 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) Operating System Principles 10.9 Silberschatz, Galvin and Gagne ©2005 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(); Operating System Principles 10.10 Silberschatz, Galvin and Gagne ©2005 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(); } } } Operating System Principles 10.11 Silberschatz, Galvin and Gagne ©2005 Common File Types Unix: use magic number to indicate roughly file types Skip: p.428 第 2 段及第 3 段 Skip: 10.1.4 Operating System Principles 10.12 Silberschatz, Galvin and Gagne ©2005 Internal File Structure All disks is performed in units of one block (physical record) Logical records may vary in length Packing a number of logical records into physical blocks is the common solution Example: UNIX defines all files to be streams of bytes. Its logical record size is 1 byte. Packing can be done either by user’s application or by the operating system Internal fragmentation problem Operating System Principles 10.13 Silberschatz, Galvin and Gagne ©2005 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) Operating System Principles 10.14 Silberschatz, Galvin and Gagne ©2005 Some systems support only one of sequential access and direct access for files. Simulation of sequential access on a direct-access file Simulation of direct access on a sequential-access file is inefficient and clumsy Operating System Principles 10.15 Silberschatz, Galvin and Gagne ©2005 Other Access Methods Example of Index and Relative Files Operating System Principles 10.16 Silberschatz, Galvin and Gagne ©2005 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 Directory Files F1 F2 F3 F4 Fn • Both the directory structure and the files reside on disk • Backups of these two structures are kept on tapes Operating System Principles 10.17 Silberschatz, Galvin and Gagne ©2005 A Typical File-system Organization Operating System Principles 10.18 Silberschatz, Galvin and Gagne ©2005 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) Operating System Principles 10.19 Silberschatz, Galvin and Gagne ©2005 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, … Operating System Principles 10.20 Silberschatz, Galvin and Gagne ©2005 Single-Level Directory A single directory for all users Naming problem Grouping problem Operating System Principles 10.21 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.22 Silberschatz, Galvin and Gagne ©2005 Tree-Structured Directories Operating System Principles 10.23 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.24 Silberschatz, Galvin and Gagne ©2005 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” Operating System Principles 10.25 Silberschatz, Galvin and Gagne ©2005 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. Operating System Principles 10.26 Silberschatz, Galvin and Gagne ©2005 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 Operating System Principles 10.27 Silberschatz, Galvin and Gagne ©2005 10.4 File System Mounting A file system must be mounted before it can be accessed A unmounted file system (i.e. Fig. 10-11(b)) is mounted at a mount point existing Operating System Principles unmounted volume 10.28 mount point Silberschatz, Galvin and Gagne ©2005 Mount Point 1. The OS is first given the name of the device and the mount point 2. The OS verifies that the device contains a valid file system Read the device directory and verify the directory format 3. The OS notes in the directory structure that a file system is mounted at the specified mount point 4. If the volume is unmounted, the file system is restored to the situation before mounting OS may impose semantics to clarify functionality May disallow a mount over a directory containing files; or may obscure the directory’s existing files until the file system is unmounted May allow the same file system to be mounted repeatedly, at different mount points; or it may allow only one mount per file system Operating System Principles 10.29 Silberschatz, Galvin and Gagne ©2005 Mount Examples Macintosh searches for a file system on a disk first encountered. If found, the file system is auto-mounted at the root level Windows OS maintains an extended two-level directory structure, with devices and volumes assigned drive letters. Recent Windows allow a file system to be mounted anywhere in the directory tree Windows auto-discover all devices and mount all located file systems at boot time Unix has explicit mount commands Operating System Principles 10.30 Silberschatz, Galvin and Gagne ©2005 10.5 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 Operating System Principles 10.31 Silberschatz, Galvin and Gagne ©2005 File Sharing – Multiple Users File sharing, file naming, and file protection are important in multiple-user systems The system may allow a user to access other user’s files by default or it may require specific access grant Most systems use the concept of file owner and group, as file attributes, to implement file sharing and protection User IDs identify users, allowing permissions and protections to be per-user Group IDs allow users to be in groups, permitting group access rights Operating System Principles 10.32 Silberschatz, Galvin and Gagne ©2005 File Sharing – Remote File Systems Uses networking to allow file system access between systems Manually via programs like FTP Both anonymous and authenticated access Automatically, seamlessly using distributed file systems, in which remote directories are visible from a local machine Semi automatically via the world wide web, where a browser is needed to access remote files, and separate operations (a wrapper for ftp) are used to transfer files Operating System Principles 10.33 Silberschatz, Galvin and Gagne ©2005 The Client-Server Model Client-server model allows clients to mount remote file systems from servers Server can serve multiple clients Client, specified by a network name or IP address, and user-on-client identification is insecure or complicated (by encryption) NFS is standard UNIX client-server file sharing protocol User’s ID on the client and server must match Once the remote file system is mounted, file operation requests are sent on behalf of the user across the network to the server via the DFS protocol Standard operating system file calls are translated into remote calls Operating System Principles 10.34 Silberschatz, Galvin and Gagne ©2005 Distributed Information Systems Also known as distributed naming services LDAP, DNS, NIS (network information service, yellow pages), Active Directory implement unified access to information needed for remote computing In Windows CIFS (common internet file system), network information is used with user authentication to create a network login. A newer version is called active directory. One distributed LDAP (lightweight directory-access protocol) could be used by an organization to store all user and resource information for all organization’s computers. The result is secure single sign-on for users. Skip 10.5.2.3, 10.5.3 Operating System Principles 10.35 Silberschatz, Galvin and Gagne ©2005 10.6 Protection Reliability is to keep the computer system from physical damage. (Chapter 12) Protection is to keep it from improper access. File owner/creator should be able to control: what can be done by whom Basic types of controlled access Read Write Execute Append Delete List Operating System Principles Other high-level functions, like copying and editing files may be implemented by making lower-level system calls 10.36 Silberschatz, Galvin and Gagne ©2005 Access Control Lists Mode of access: read, write, execute Three classes of users a) owner access 7 b) group access 6 c) public access 1 rwx 111 rwx 110 rwx 001 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. owner chmod group public 761 game Attach a group to a file chgrp Operating System Principles G game 10.37 Silberschatz, Galvin and Gagne ©2005 Windows XP Access-control List Management Operating System Principles 10.38 Silberschatz, Galvin and Gagne ©2005 A Sample UNIX Directory Listing Operating System Principles 10.39 Silberschatz, Galvin and Gagne ©2005 Other Protection Approaches Associate a password with each file Disadvantages The number of passwords that a user needs to remember If only one password is used for all the files, then protection is on an all-or-none basis – Some system allow the user to associate a password with a directory Adding protection mechanisms to single-user OS is difficult Directory protection Control the creation and deletion of files in a directory Control whether a user could check the existence of a file in a directory. (Listing the contents of a directory) Operating System Principles 10.40 Silberschatz, Galvin and Gagne ©2005