6. File System - René Doursat

Nov 29, 2005 - Memory Management. 4. ... The file system is the most visible aspect of an O/S .... simplest form of logical organization: one global or root.
348KB taille 2 téléchargements 50 vues
Principles of Operating Systems CS 446/646

6. File System

René Doursat Department of Computer Science & Engineering University of Nevada, Reno Fall 2005

Principles of Operating Systems CS 446/646 0. Course Presentation 1. Introduction to Operating Systems 2. Processes 3. Memory Management 4. CPU Scheduling 5. Input/Output 6. File System 7. Case Studies

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

2

Principles of Operating Systems CS 446/646 6. File System a. Overview of the File System b. User Interface: Files c. User Interface: Directories d. File System Implementation

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

3

Principles of Operating Systems CS 446/646 6. File System a. Overview of the File System b. User Interface: Files c. User Interface: Directories d. File System Implementation

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

4

6.a Overview of the File System ¾ The need for long-term storage 9 it must be possible to store a very large amount of information ƒ memory is too small to hold large databases of records, for example airline reservations, bank accounts, etc. 9 the information must survive the termination of the processes using it ƒ it must also not go away if the computer crashes 9 multiple processes must be able to access the information concurrently ƒ for example, a phone directory should not be only stored inside the address space of a single process → store information on disk, and group it in units called files 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

5

6.a Overview of the File System ¾ Chart of Operating System Responsibilities §E – The O/S is responsible for providing a uniform logical view of information storage 9 the O/S defines a logical unit of storage, the “file”, and groups files in a hierarchy of “directories” 9 the O/S supports primitives for manipulating files and directories (create, delete, rename, read, write, etc.) 9 the O/S ensures data confidentiality and integrity 9 the O/S implements files on stable (nonvolatile) storage media 9 the O/S keeps a mapping of the logical files onto the physical secondary storage 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

6

6.a Overview of the File System ¾ The file system is the most visible aspect of an O/S 9 files are managed by the O/S 9 how files are ƒ structured ƒ named ƒ accessed ƒ used ƒ protected ƒ implemented are major topics in operating system design 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

7

6.a Overview of the File System ¾ Users’ standpoint vs. designers’ standpoint 9 for the O/S users ƒ the most important aspect is how files appear to them ƒ how files are named and protected ƒ what operations are allowed, etc. 9 for the O/S designers ƒ must decide whether to implement files with linked lists, tables, etc. ƒ how to map file blocks to disk sectors ƒ how to keep track of free storage, etc.

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

8

Principles of Operating Systems CS 446/646 6. File System a. Overview of the File System b. User Interface: Files c. User Interface: Directories d. File System Implementation

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

9

6.b User Interface: Files ¾ Files are an abstraction mechanism 9 the concept of “file” is the central element of the file system 9 a file is a complete collection of data (as text or a program) treated by a computer as a unit especially for purposes of input and output 9 files provide a convenient way to store information on the disk and read it back later 9 they shield the user from the details of where the information is stored and how the disk works

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

10

6.b User Interface: Files File naming

¾ Naming is the most important aspect of abstraction 9 when a process creates a file, it gives it a name; when it terminates, the file continues to exist 9 naming rules vary from system to system ƒ allowed name length can go from 8 to 255 characters ƒ UNIX systems distinguish between uppercase and lowercase, MS-DOS and Windows do not ƒ many systems support two-part, period-separated naming: the second part is called the extension ƒ in UNIX, the extension is a user convention; not enforced ƒ Windows is extension-aware and associates files with specific applications 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

11

6.b User Interface: Files File naming

Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition).

Common file types & extensions 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

12

6.b User Interface: Files File structure

¾ A file can be internally structured in several ways a) pure byte sequence — O/S doesn’t care about the contents; all meaning imposed by user application; generic O/S (UNIX, Win) closer to database system techniques

b) record sequence — fixed or variable-length records with internal structure; historical 80-column punch card systems c) tree — key-accessible records; mainframes commercial data processing

Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition).

11/29/2005

Three kinds of files CS 446/646 - Principles of Operating Systems - 6. File System

13

6.b User Interface: Files File types

¾ An O/S supports different types of files

Windows

UNIX

9 regular files ƒ the files that contain user information, ASCII or binary 9 directories (directory files) ƒ system files that contain information about the file system organization 9 character special files ƒ used to model serial (character-mode) I/O devices: terminals, network 9 block special files ƒ used to model parallel (block-mode) I/O devices: disks

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

14

6.b User Interface: Files File types

Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition).

(a) An executable file and (b) an archive of unlinked compiled modules 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

15

6.b User Interface: Files File attributes

¾ The O/S associates management information with files 9 in addition to its name and data, a file also has file attributes 9 the list of attributes varies considerably from system to system, but typically: ƒ file’s owner and protection ƒ various bit flags: hidden, read/write, etc. ƒ record length, key, etc. for record-structured files ƒ timestamps: created, accessed, modified, etc. ƒ size values 9 just as process control blocks (PCBs), the O/S maintains file control blocks (FCBs) → see file system implementation 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

16

6.b User Interface: Files File attributes

Some possible file attributes 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition).

17

6.b User Interface: Files File operations

¾ Most common system calls related to files 9 create/delete ƒ creates a file with no data, initializes file attributes 9 open/close ƒ loads file attributes and disk addresses in memory 9 read/write, append ƒ transfers data from/to a buffer starting at a current position 9 seek ƒ in random access files: repositions file pointer for read/write 9 get/set attributes, rename ƒ some attributes are user-settable (name, protection flags) 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

18

6.b User Interface: Files File operations

Tanenbaum, A. S. (2001) Modern Operating Systems (2nd Edition).

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

19

Principles of Operating Systems CS 446/646 6. File System a. Overview of the File System b. User Interface: Files c. User Interface: Directories d. File System Implementation

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

20

6.c User Interface: Directories ¾ Directories are special files that keep track of other files 9 the collection of files is systematically organized 9 first, disks are split into partitions that create logical volumes (can be thought of as “virtual disks”) 9 second, each partition contains information about the files within 9 this information is kept in entries in a device directory (or volume table of contents) 9 the directory is a symbol table that translates file names into their entries in the directory ƒ it has a logical structure ƒ it has an implementation structure (linked list, table, etc.) 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

21

6.c User Interface: Directories ¾ Single-level directory structure 9 simplest form of logical organization: one global or root directory containing all the files 9 problems ƒ global namespace: unpractical in multiuser systems ƒ no systematic organization, no groups or logical categories of files that belong together

Single-level directory 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition).

22

6.c User Interface: Directories ¾ Two-level directory structure 9 in multiuser systems, the next step is to give each user their own private directory 9 avoids filename confusion 9 however, still no grouping: not satisfactory for users with many files

Two-level directory 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition).

23

6.c User Interface: Directories ¾ Tree-structured directory structure

Tree-structured directory 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition).

24

6.c User Interface: Directories ¾ Tree-structured directory structure 9 natural extension of the two-level scheme 9 provides a general hierarchy, in which files can be grouped in natural ways 9 good match with human cognitive organization: propensity to categorize objects in embedded sets and subsets 9 navigation through the tree relies on pathnames ƒ absolute pathnames start from the root, example: /doursat/academic/teaching/cs446/assignment4/grades ƒ relative pathnames start at from a current working directory, example: assignment4/grades ƒ the current and parent directory are referred to as . and .. 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

25

6.c User Interface: Directories

Stallings, W. (2004) Operating Systems: Internals and Design Principles (5th Edition).

11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

26

6.c User Interface: Directories ¾ Common system calls related to directory operations 9 create/delete ƒ creates or deletes an empty directory (except for . and ..) 9 opendir/closedir ƒ loads directory attributes in memory 9 readdir ƒ reads the entries in a directory (more abstract than read) 9 rename ƒ renames a directory like a file 9 link/unlink ƒ shares files by making them appear in more than one dir 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

27

6.c User Interface: Directories ¾ Acyclic-graph (shared file) directory structure 9 allows for different users to work on the same files while keeping their own view of the files (implemented with links)

Acyclic-graph directory 11/29/2005

CS 446/646 - Principles of Operating Systems - 6. File System

Silberschatz, A., Galvin, P. B. and Gagne. G. (2003) Operating Systems Concepts with Java (6th Edition).

28