Introduction to File Systems

Similar documents
CS333 Intro to Operating Systems. Jonathan Walpole

Chapter 11: File-System Interface

Long-term Information Storage Must store large amounts of data Information stored must survive the termination of the process using it Multiple proces

Chapter 10: File System. Operating System Concepts 9 th Edition

Implementation should be efficient. Provide an abstraction to the user. Abstraction should be useful. Ownership and permissions.

File Systems Ch 4. 1 CS 422 T W Bennet Mississippi College

Chapter 11: File System Implementation. Objectives

File System Interface. ICS332 Operating Systems

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

Motivation: I/O is Important. CS 537 Lecture 12 File System Interface. File systems

Chapter 11: File-System Interface. Operating System Concepts 9 th Edition

File Systems. What do we need to know?

OPERATING SYSTEMS CS136

Lecture 10 File Systems - Interface (chapter 10)

Chapter 10: File-System Interface. Operating System Concepts with Java 8 th Edition

File Management. COMP3231 Operating Systems. Kevin Elphinstone. Tanenbaum, Chapter 4

File Systems: Interface and Implementation

File Systems: Interface and Implementation

Chapter 10: File-System Interface

Typical File Extensions File Structure

Chapter 10: File-System Interface

Chapter 11: File-System Interface. Long-term Information Storage. File Structure. File Structure. File Concept. File Attributes

FILE SYSTEMS. CS124 Operating Systems Winter , Lecture 23

Chapter 4. File Systems. Part 1

CS3600 SYSTEMS AND NETWORKS

Principles of Operating Systems

Chapter 11: File-System Interface

Chapter 6: File Systems

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

Introduction to Concurrency (Processes, Threads, Interrupts, etc.)

Chapter 7: File-System

Chapter 11: File-System Interface. File Concept. File Structure

File-System Interface. File Structure. File Concept. File Concept Access Methods Directory Structure File-System Mounting File Sharing Protection

Lecture 2 Operating System Structures (chapter 2)

File Systems. File system interface (logical view) File system implementation (physical view)

ICS Principles of Operating Systems

File Management. COMP3231 Operating Systems

CS4500/5500 Operating Systems File Systems and Implementations

Chapter 11: File-System Interface. File Concept. File Structure

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 18: Naming, Directories, and File Caching

File System Interface: Overview. Objective. File Concept UNIT-IV FILE SYSTEMS

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 18: Naming, Directories, and File Caching

File Systems: Interface and Implementation

Threads. CS-3013 Operating Systems Hugh C. Lauer. CS-3013, C-Term 2012 Threads 1

Chapter 6 Storage Management File-System Interface 11.1

File System: Interface and Implmentation

Chapter 11: File-System Interface

Part Four - Storage Management. Chapter 10: File-System Interface

CS720 - Operating Systems

Chapter 10: File-System Interface

File Concept Access Methods Directory and Disk Structure File-System Mounting File Sharing Protection

CS370 Operating Systems

UNIX Files. How UNIX Sees and Uses Files

Motivation. Operating Systems. File Systems. Outline. Files: The User s Point of View. File System Concepts. Solution? Files!

Chapter 11: File-System Interface

File Management. COMP3231 Operating Systems

Virtual File System. Don Porter CSE 506

UNIT V SECONDARY STORAGE MANAGEMENT

File Systems. CS170 Fall 2018

Chapter 6. File Systems

Frequently asked questions from the previous class survey

Chapter 11: File-System Interface

Chapter 10: File-System Interface. Operating System Concepts 8 th Edition

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

There is a general need for long-term and shared data storage: Files meet these requirements The file manager or file system within the OS

File Systems. Todays Plan

A file system is a clearly-defined method that the computer's operating system uses to store, catalog, and retrieve files.

CS370 Operating Systems

Virtual Memory Management

Fall 2017 :: CSE 306. File Systems Basics. Nima Honarmand

Virtual File System. Don Porter CSE 306

Operating Systems. Steven Hand. Michaelmas / Lent Term 2008/ lectures for CST IA. Handout 4. Operating Systems

Accessing Files in C. Professor Hugh C. Lauer CS-2303, System Programming Concepts

Secondary Storage (Chp. 5.4 disk hardware, Chp. 6 File Systems, Tanenbaum)

TDDB68 Concurrent Programming and Operating Systems. Lecture: File systems

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

CS370 Operating Systems

JOURNALING FILE SYSTEMS. CS124 Operating Systems Winter , Lecture 26

File Systems. Todays Plan. Vera Goebel Thomas Plagemann. Department of Informatics University of Oslo

Files and the Filesystems. Linux Files

CS 3500 Final Exam Sample Questions

Files and File Systems

UNIX File System. UNIX File System. The UNIX file system has a hierarchical tree structure with the top in root.

Introduction to OS. File Management. MOS Ch. 4. Mahmoud El-Gayyar. Mahmoud El-Gayyar / Introduction to OS 1

Outlook. File-System Interface Allocation-Methods Free Space Management

Project 0: Linux & Virtual Machine Dabbling

File systems. Chapter 6: File Systems. Naming files. Long-term information storage. Typical file extensions. File structures

Chapter 4 File Systems

Chapter 10: File System

Chapter 4 - File Systems

Design Choices 2 / 29

Operating systems. Lecture 7 File Systems. Narcis ILISEI, oct 2014

INTERNAL REPRESENTATION OF FILES:

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Segmentation with Paging. Review. Segmentation with Page (MULTICS) Segmentation with Page (MULTICS) Segmentation with Page (MULTICS)

Chapter 5 Input/Output

File. File System Implementation. File Metadata. File System Implementation. Direct Memory Access Cont. Hardware background: Direct Memory Access

The UNIX File System

CS 4284 Systems Capstone

Files and File Systems

Transcription:

Introduction to File Systems CS-3013 Operating Systems Hugh C. Lauer (Slides include materials from Slides include materials from Modern Operating Systems, 3 rd ed., by Andrew Tanenbaum and from Operating System Concepts, 7 th ed., by Silbershatz, Galvin, & Gagne) Introduction to File Systems 1

Discussion (laptops closed, please) What is a file? Introduction to File Systems 2

Reading Assignment Tanenbaum, 4.1 4.2 Note: there is a lot more in this chapter than can be covered in these lecture topics! Mostly deferred to CS-4513 Introduction to File Systems 3

File (an abstraction) A (potentially) large amount of information or data that lives a (potentially) very long time Often much larger than the memory of the computer Often much longer than any computation Sometimes longer than life of machine itself (Usually) organized as a linear array of bytes or blocks Internal structure is imposed by application (Occasionally) blocks may be variable length (Often) requiring concurrent access by multiple processes Even by processes on different machines! Introduction to File Systems 4

Review Four Fundamental Abstractions Processes & threads This course (Tanenbaum, Chapter 2) Virtual memory This course (Tanenbaum, Chapter 3) Files & persistent storage CS-4513 with intro in this course (Tanenbaum, Chapter 4) Sockets & connections CS-3516 or CS-513 (Computer Networks) Introduction to File Systems 5

Review Four Fundamental Abstractions Processes & threads This course (Tanenbaum, Chapter 2) Virtual memory This course (Tanenbaum, Chapter 3) Files & persistent storage CS-4513 with intro in this course (Tanenbaum, Chapter 4) Sockets & connections CS-3516 or CS-513 (Computer Networks) Introduction to File Systems 6

File The third major abstraction of almost all operating systems An organizing abstraction The way information is organized, stored, kept for a long time, and updated Introduction to File Systems 7

File Systems and Disks User view File is a named, persistent collection of data OS & file system view File is collection of disk blocks i.e., a container File System maps file names and offsets to disk blocks Introduction to File Systems 8

Fundamental Ambiguity Is the file the container of the information or the information itself? Almost all systems confuse the two. Almost all people confuse the two. Introduction to File Systems 9

Example Suppose that you e-mail me a document Later, how do either of us know that we are using the same version of the document? Windows/Outlook/Exchange/MacOS: Time-stamp is a pretty good indication that they are Time-stamps preserved on copy, drag and drop, transmission via e-mail, etc. Unix/Linux By default, time-stamps not preserved on copy, ftp, e-mail, etc. Time-stamp associated with container, not with information Introduction to File Systems 10

Rule of Thumb Almost always, people and applications think in terms of the information Many systems think in terms of containers Professional Guidance: Be aware of the distinction, even when the system is not Introduction to File Systems 11

Attributes of Files Name: Although the name is not always what you think it is! Type: May be encoded in the name (e.g.,.cpp,.txt) Dates: Creation, updated, last accessed, etc. (Usually) associated with container Better if associated with content Size: Length in number of bytes; occasionally rounded up Protection: Owner, group, etc. Authority to read, update, extend, etc. Locks: For managing concurrent access Introduction to File Systems 12

Definition File Metadata Information about a file Maintained by the file system Separate from file itself Usually attached or connected to the file E.g., in block # 1 Some information visible to user/application Dates, permissions, type, name, etc. Some information primarily for OS Location on disk, locks, cached attributes Introduction to File Systems 13

Observation some attributes are not visible to user or program E.g., location Location is stored in metadata Location can change, even if file does not Location is not visible to user or program Introduction to File Systems 14

Question Is Location a File Attribute? Example 1: mv ~lauer/project4.doc ~cs3013/public_html/e11 Does location of file on disk change? Example 2: System moves file from disk block 10,000 to disk block 20,000 (e.g., during defragmentation) System restores a file from backup May or may not be reflected in metadata Introduction to File Systems 15

Question Is Location a File Attribute? Answer: It is an attribute of the container Not an attribute of the information! Introduction to File Systems 16

File Name Attribute Not attached to file in most modern systems Stored in directory (see below) Unix/Linux file may have multiple names I.e., hard links Windows file normally has only one name Still stored in directory May be changed without touching the file! Introduction to File Systems 17

File type may be tattooed on file as an attribute File Types Or it may be embedded in file name by convention Introduction to File Systems 18

Questions? Introduction to File Systems 19

Traditional Operations on Files Open, Close Gain or relinquish access to a file OS returns a file handle an internal data structure letting it cache internal information needed for efficient file access Read, Write, Truncate Read: return a sequence of n bytes from file Write: replace n bytes in file, and/or append to end Truncate: throw away all but the first n bytes of file Seek, Tell Seek: reposition file pointer for subsequent reads and writes Tell: get current file pointer Create, Delete: Conjure up a new file; or blow away an existing one Introduction to File Systems 20

File a very powerful abstraction Documents, code Databases Very large, possibly spanning multiple disks Streams Input, output, keyboard, display Pipes, network connections, Virtual memory backing store Temporary repositories of OS information Any time you need to remember something beyond the life of a particular process/computation Introduction to File Systems 21

Methods for Accessing Files Sequential access Random access Keyed (or indexed) access Introduction to File Systems 22

Sequential Access Method Read all bytes or records in order from the beginning Writing implicitly truncates Cannot jump around Could possibly rewind or back up for some media Appropriate for certain media or systems Magnetic tape or punched cards Video tape (VHS, etc.) Unix-Linux-Windows pipes Network streams Introduction to File Systems 23

Random Access Method Bytes/records can be read in any order Writing can Replace existing bytes or records Append to end of file Cannot insert data between existing bytes! Seek operation moves current file pointer Maintained as part of open file information Discarded on close Typical of most modern information storage Data base systems Randomly accessible multi-media (CD, DVD, etc) Introduction to File Systems 24

Keyed (or indexed) Access Methods Access items in file based on the contents of (part of) an item in the file Provided in older commercial operating systems IBM ISAM (Usually) handled separately by modern database systems Introduction to File Systems 25

Questions? Introduction to File Systems 26

Directory A Special Kind of File A tool for users & applications to organize and find files User-friendly names Names that are meaningful over long periods of time The data structure for OS to locate files (i.e., containers) on disk Introduction to File Systems 27

Directory structures Single level One directory per system, one entry pointing to each file Small, single-user or single-use systems PDA, cell phone, etc. Two-level Single master directory per system Each entry points to one single-level directory per user Uncommon in modern operating systems Hierarchical Any directory entry may point to Individual file Another directory Common in most modern operating systems Introduction to File Systems 28

Directory Considerations Efficiency locate a file quickly Naming convenient to users Separate users can use same name for separate files The same file can have different names for different users Names need only be unique within a directory Preferably in user s own language! Grouping logical grouping of files by properties e.g., all Java programs, all games, Introduction to File Systems 29

Directory Organization Hierarchical Most systems support idea of current (working) directory Absolute names fully qualified from root of file system /usr/group/foo.c, ~/kernelsrc/config.h Relative names specified with respect to working directory foo.c, bar/bar2.h A special name the working directory itself. Modified Hierarchical Acyclic Graph (no loops) and General Graph Allow directories and files to have multiple names Links are file names (directory entries) that point to existing (source) files Introduction to File Systems 30

Links Symbolic (soft) links: uni-directional relationship between a file name and the file Directory entry contains text describing absolute or relative path name of original file If the source file is deleted, the link exists but points to nowhere! Hard links: bi-directional relationship between file names and file A hard link is directory entry that points to a source file s metadata Metadata maintains reference count of the number of hard links pointing to it link reference count Link reference count is decremented when a hard link is deleted File data is deleted and space freed when the link reference count goes to zero Introduction to File Systems 31

Unix-Linux Hard Links File may have more than one name or path rm, mv directory operations, not file operations! The real name of a Unix file is internal name of its metadata Known only to OS! Hard links are not used very often in modern Unix practice Exception: Linked copies of large directory trees! When building your Linux kernel in OS course (Usually) safe to regard last element of path as name of file Introduction to File Systems 32

Path Name Translation Assume that I want to open /home/lauer/foo.c fd = open("/home/lauer/foo.c", O_RDWR); File System does the following Opens directory "/" the root directory is in a known place on disk Search root directory for the directory home and get its location Open home and search for the directory lauer and get its location Open lauer and search for the file foo.c and get its location Open the file foo.c Note that the process needs the appropriate permissions at every step Introduction to File Systems 33

Path Name Translation (continued) File Systems spend a lot of time walking down directory paths This is why open calls are separate from other file operations File System attempts to cache prefix lookups to speed up common searches ~ for user s home directory. for current working directory Once open, file system caches the metadata of the file Introduction to File Systems 34

See Tanenbaum 4.2.4 Directory Operations Create: Make a new directory Add, Delete entry: Invoked by file create & destroy, directory create & destroy Find, List: Search or enumerate directory entries Rename: Change name of an entry without changing anything else about it Link, Unlink: Add or remove entry pointing to another entry elsewhere Introduces possibility of loops in directory graph Destroy: Removes directory; must be empty Introduction to File Systems 35

Directories (continued) Orphan: a file not named in any directory Cannot be opened by any application (or even OS) May not even have name! Tools FSCK check & repair file system, find orphans Delete_on_close attribute (in metadata) Special directory entry:.. parent in hierarchy Essential for maintaining integrity of directory system Useful for relative naming Introduction to File Systems 36

Directories Summary Fundamental mechanism for interpreting file names in an operating system Widely used by system, applications, and users Introduction to File Systems 37

Reading Assignment Tanenbaum, 4.1 4.2 Introduction to File Systems 38

Questions? Introduction to File Systems 39