Chapter 11: File-System Interface

31
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 11: File-System Interface

Transcript of Chapter 11: File-System Interface

Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Chapter 11: File-System Interface

11.2 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Chapter 11: File-System Interface

● File Concept

● Access Methods

● Disk and Directory Structure

● File-System Mounting

● File Sharing

● Protection

11.3 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

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 explore file-system protection

11.4 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

File Concept

● Contiguous logical address space

● Types:

● Data

4 numeric

4 character

4 binary

● Program

● Contents defined by file’s creator

● Many types

4 Consider text file, source file, executable file

11.5 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

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 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

11.6 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

File info Window on Mac OS X

11.7 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

File Operations

● File is an abstract data type

● Create

● Write – at write pointer location

● Read – at read pointer location

● Reposition within 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

11.8 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

File Types – Name, Extension

11.9 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

File Structure

● None - sequence of words, bytes● Simple record structure

● Lines ● Fixed length● Variable length

● Complex Structures● Formatted document● Relocatable load file

11.10 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Sequential-access File

11.11 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Other Access Methods

● Can be built on top of base methods● General involve creation of an index for the file● Keep index in memory for fast determination of location of

data to be operated on (consider UPC code plus record of data about that item)

● If too large, index (in memory) of the index (on disk)● IBM indexed sequential-access method (ISAM)

● Small master index, points to disk blocks of secondary index

● File kept sorted on a defined key● All done by the OS

● VMS operating system provides index and relative files as another example (see next slide)

11.12 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Example of Index and Relative Files

11.13 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Directory Structure

● A collection of nodes containing information about all files

F 1

F 2 F

3

F 4

F n

Directory

Files

Both the directory structure and the files reside on disk

11.14 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Disk Structure

● Disk can be subdivided into partitions

● Disk or partition can be used raw – without a file system, or formatted with a file system

● Partitions also known as minidisks, slices

● Entity containing file system known as a volume

● Each volume containing file system also tracks that file system’s info in device directory or volume table of contents

11.15 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

A Typical File-system Organization

11.16 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Operations Performed on Directory

● Search for a file

● Create a file

● Delete a file

● List a directory

● Rename a file

11.17 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Directory Organization

● 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, …)

The directory is organized logically to obtain

11.18 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Single-Level Directory● A single directory for all users

● Naming problem

● Grouping problem

11.19 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Two-Level Directory

● Separate directory for each user

● Path name

● Can have the same file name for different user

● Efficient searching

● No grouping capability

11.20 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Tree-Structured Directories

11.21 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Tree-Structured Directories (Cont.)● Efficient searching

● Grouping Capability

● Current directory (working directory)

● cd /spell/mail/prog

● type list

11.22 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Tree-Structured Directories (Cont)

● Absolute or relative path name● Creating a new file is done in current directory● Delete a file

rm <file-name>● Creating a new subdirectory is done in current directory

mkdir <dir-name>Example: if in current directory /mail

mkdir count

Deleting “mail” ⇒ deleting the entire subtree rooted by “mail”

11.23 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Acyclic-Graph Directories

● Have shared subdirectories and files

11.24 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

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

11.25 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Mount Point

11.26 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

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

● If multi-user system

● User IDs identify users, allowing permissions and protections to be per-userGroup IDs allow users to be in groups, permitting group access rights

● Owner of a file / directory

● Group of a file / directory

11.27 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

File Sharing – Remote File Systems● Uses networking to allow file system access between systems

● Manually via programs like FTP

● Automatically, seamlessly using distributed file systems

● Semi automatically via the world wide web

● Client-server model allows clients to mount remote file systems from servers

● Server can serve multiple clients

● Client and user-on-client identification is insecure or complicated

● NFS is standard UNIX client-server file sharing protocol

● Standard operating system file calls are translated into remote calls

11.28 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Protection

● File owner/creator should be able to control:

● what can be done

● by whom

● Types of access

● Read

● Write

● Execute

● Append

● Delete

● List

11.29 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

Access Lists and Groups

● Mode of access: read, write, execute● Three classes of users on Unix / Linux

RWXa) owner access 7 ⇒ 1 1 1

RWXb) group access 6 ⇒ 1 1 0

RWXc) 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.

Attach a group to a file chgrp G game

11.30 Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

A Sample UNIX Directory Listing

Silberschatz, Galvin and Gagne ©2013Operating System Concepts – 9th Edition

End of Chapter 11