Download presentation
Presentation is loading. Please wait.
Published byAmos West Modified over 9 years ago
1
CS 346 – Chapter 11 File system –Files –Access –Directories –Mounting –Sharing –Protection
2
Files What is a file? Attributes –Name, internal ID, type, location on device, size, permissions, modification/creation time Operations –Create, read, write, reposition file pointer (seek), delete, truncate (i.e. to zero) –Less essential: append, rename, copy –The first time we refer to a file, need to search for it: “open” Active file tables. What is stored in each? –Table per process –System-wide table The “open count” for a file
3
Type and structure Policy question – should OS be aware of file types? How file type determined –filename extension –Keep track of which application created file –Magic number File type determines its structure –At a minimum: bits and bytes –e.g. OS expects executable file to have certain format –Text file: recognize meaning of certain ASCII codes Files stored in “blocks” on a device –Each I/O operation can grab one block (~ 1KB <= page size) –Can start a new file on a new block, or do some “packing”
4
Accessing data Sequential access –Read, write, rewind operations –We almost always utilize files this way Direct access –More complex system calls: Allow arbitrary access to any byte in file on demand –What kind of application needs this functionality? –Read/write operations may specify a relative or absolute block number Indexed access –Another file stores pointers to appropriate blocks in some large file
5
Directories File system resides on some “volume” –A volume may be a device, part of a device, multiple devices: –So, can have multiple file systems on the same device (partition) –A file system can use multiple devices, but this adds complexity Can have specialized “file systems” to allow certain devices to be treated as files, with file I/O commands Volume must keep around info about all files –Confusingly called a directory Directory operations on files: –Search, create, delete, list, rename, traverse
6
File organization How are files logically organized in the directory? Single-level directory: one flat list –File names must be unique –Excellent if everyone is sharing files Two-level directory –Each user has a separate directory: Figure 11.9 –System maintains a master file directory: pointers to each user’s file directory –Allows user’s work to be isolated –Can specify file by absolute or relative path name –Special “system user” for system files. Why necessary? –Search path: sequence of directories to use when searching for a file. Look here, look in system folder, etc.
7
File org (2) Tree-based directory: Files can be arbitrarily deep Allows user to impose local structure on files Each process has a current working directory –To access file, need to specify path name or change the current directory Policy on deleting an entire directory Acyclic directory: support links to existing files –In effect, the same file has multiple path names –Same file exists in multiple directories –But there is just 1 file, not a copy –When traversing, need to ignore the links –What happens when we delete file? Links now point to … –Can count the # of references to file (like garbage collection)
8
Mounting Mount = make volume/device available to file system. Assign a name to its root so that all files will have a specific path name. Mount point = position in existing file system in which we insert the new volume. –Think of inserting a subtree at a new child of an existing node. –E.g. You plug in a USB drive, and immediately it acquires the name E: so you can access its files –In UNIX, a new “volume” may appear under / Unused volumes may be temporarily unmounted if file system desires
9
File sharing In multi-user system, desirable to have some files accessible by multiple users! File system must have more info –Owner of each file –Assign unique ID numbers for users and groups of users –When you access file, we check your IDs first Remote file system access –Manually transfer files via FTP –Distributed file system: see a file system on another computer on the network –Anonymous browsing on the Web
10
Remote file system We’d like to mount a remote file system on our machine. –In other words, be able to give (path) names to remote files to manipulate them. Client-server relationship: a file server accepts requests for remote machines to mount –E.g. You are logged into ultrax2, but ultrax1 is the file server. –NFS is a standard UNIX file sharing protocol –OS file system calls are translated into remote calls One challenge – to authenticate the client. –Typically the client & server share same set of user IDs. When you get a computer account, your user ID is good everywhere. –Or, provide your password the first time you access server. What is role of distributed naming service, e.g. DNS ?
11
Consistency Policy decisions concerning how we handle multiple users accessing the same file –Reminiscent of synchronization When do changes made by one user become observable to others? –Immediately, or not until you reopen the file? Should we allow 2 users to read/write concurrently? –As in a database access System may define immutable shared file –Like a CD-R –Cannot be modified, name cannot be resused. –No constraints on reading
12
Protection Owner/creator of file should set capabilities for –What can by done –By whom Types of access –Read –Write –Execute Could also distinguish other access capabilities: –Delete –List
13
Specifying permissions Establish classes of users, each with a possibly distinct set of permissions –Classes can be: owner, group, rest of world For each level of users: –‘r’ = Can I read the file? –‘w’ = Can I write to (or delete) the file? –‘x’ = Can I execute the file? Examples –rw-rw-r-- (664) –rwxr-xr-- (754) –rw-r----- (640) If no groups, can set group permission = rest of world. Use chmod command
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.