Chapter 12 File-System Implementation

Similar documents
Chapter 11: Implementing File-Systems

Chapter 11: Implementing File Systems

Chapter 11: File System Implementation

Chapter 11: File System Implementation

Chapter 11: Implementing File Systems

File-System Structure

OPERATING SYSTEM. Chapter 12: File System Implementation

Chapter 11: Implementing File Systems

Chapter 12: File System Implementation

Chapter 10: File System Implementation

Chapter 12: File System Implementation. Operating System Concepts 9 th Edition

OPERATING SYSTEMS II DPL. ING. CIPRIAN PUNGILĂ, PHD.

Chapter 12: File System Implementation

Chapter 11: Implementing File

Da-Wei Chang CSIE.NCKU. Professor Hao-Ren Ke, National Chiao Tung University Professor Hsung-Pin Chang, National Chung Hsing University

Chapter 11: Implementing File Systems. Operating System Concepts 9 9h Edition

CS307: Operating Systems

Week 12: File System Implementation

CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Operating Systems 2010/2011

File-System Interface

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

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

Chapter 11: File System Implementation. Objectives

CS720 - Operating Systems

CS3600 SYSTEMS AND NETWORKS

Chapter 7: File-System

Chapter 11: Implementing File Systems. Operating System Concepts 8 th Edition,

Chapter 11: Implementing File Systems

File System Implementation

File-System Structure. Allocation Methods. Free-Space Management. Directory Implementation. Efficiency and Performance. Recovery

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

CHAPTER 10 AND 11 - FILE SYSTEM & IMPLEMENTING FILE- SYSTEMS

File System: Interface and Implmentation

Chapter 12: File System Implementation

File Systems: Interface and Implementation

Modulo V Sistema de Arquivos

Advanced Operating Systems. File Systems Lecture 9

File System Internals. Jo, Heeseung

Computer Systems Laboratory Sungkyunkwan University

File System Internals. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

FILE SYSTEM IMPLEMENTATION. Sunu Wibirama

Chapter 14: File-System Implementation

Chapter 11: File System Implementation

ICS Principles of Operating Systems

File Management By : Kaushik Vaghani

File System Implementation. Sunu Wibirama

V. File System. SGG9: chapter 11. Files, directories, sharing FS layers, partitions, allocations, free space. TDIU11: Operating Systems

C13: Files and Directories: System s Perspective

File Systems: Interface and Implementation

File Systems: Interface and Implementation

File System Management

File System Internals. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Sharing may be done through a protection scheme. Network File System (NFS) is a common distributed file-sharing method

F 4. Both the directory structure and the files reside on disk Backups of these two structures are kept on tapes

Chapter 12: File System Implementation

CS370 Operating Systems

UNIT V SECONDARY STORAGE MANAGEMENT

Module 17: Distributed-File Systems

File System CS170 Discussion Week 9. *Some slides taken from TextBook Author s Presentation

CS370 Operating Systems

File System & Device Drive Mass Storage. File Attributes (Meta Data) File Operations. Directory Structure. Operations Performed on Directory

Module 17: Distributed-File Systems

CS370 Operating Systems

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches

Operating System Concepts Ch. 11: File System Implementation

File System (FS) Highlights

File Systems. CS170 Fall 2018

Principles of Operating Systems

TDDB68 Concurrent Programming and Operating Systems. Lecture: File systems

Operating Systems. Lecture File system implementation. Master of Computer Science PUF - Hồ Chí Minh 2016/2017

File System. Minsoo Ryu. Real-Time Computing and Communications Lab. Hanyang University.

Chapter 17: Distributed-File Systems. Operating System Concepts 8 th Edition,

CSE325 Principles of Operating Systems. File Systems. David P. Duggan. March 21, 2013

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

e-pg Pathshala Subject: Computer Science Paper: Operating Systems Module 35: File Allocation Methods Module No: CS/OS/35 Quadrant 1 e-text

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission 1

Operating Systems: Lecture 12. File-System Interface and Implementation

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

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

CSE 4/521 Introduction to Operating Systems. Lecture 23 File System Implementation II (Allocation Methods, Free-Space Management) Summer 2018

Operating Systems CMPSC 473 File System Implementation April 10, Lecture 21 Instructor: Trent Jaeger

File System Implementation. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

File System Implementation

Operating Systems. Operating Systems Professor Sina Meraji U of T

File Systems Management and Examples

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

What is a file system

Lecture 19: File System Implementation. Mythili Vutukuru IIT Bombay

File Systems. ECE 650 Systems Programming & Engineering Duke University, Spring 2018

File System Implementation

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

File System Case Studies. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

UNIT IV: FILE SYSTEMS PART A

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

Filesystem. Disclaimer: some slides are adopted from book authors slides with permission

Disk divided into one or more partitions

File Directories Associated with any file management system and collection of files is a file directories The directory contains information about

UNIX File Systems. How UNIX Organizes and Accesses Files on Disk

File System (Internals) Dave Eckhardt

Transcription:

Chapter 12 File-System Implementation 1

Outline File-System Structure File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency and Performance Recovery Log-Structured File System NFS 2

12.1 File-System Structure 3

Introduction File structure Logical storage unit Collection of related information File system resides on secondary storage (disks) File system organized into layers File control block storage structure consisting of information about a file Ownership, permissions, and location of the file content I/O transfers between memory and disk are performed in units of blocks (one more more sectors) 4

Layered File System 5

Layered File System (Cont.) I/O control device drivers and interrupt handlers Transfer information between main memory and disk system Retrieve block 123 HW-specific instructions Basic file system Issue generic commands to device driver to read and write physical blocks on the disk Physical block: drive 1, cylinder 73, track 2, sector 10 6

Layered File System (Cont.) File-organization module Know about files, their logical blocks, and physical blocks Translate logical blocks to physical blocks (similar to VM) Logical blocks: 0 N Free-space manager Blocks allocation Logical file system manage metadata information Metadata: file-system structure, excluding the actual file contents Manage the directory structure via file control blocks (FCB) 7

Layered File System (Cont.) Why Layered file system? All the advantages of the layered approach File system standard: UFS, FAT FAT32, NTFS Duplication of code is minimized for different file system standard Usually I/O control and the basic file system code can be used by multiple file system formats. 8

A Typical FCB 9

12.2 File System Implementation 10

On-Disk Structures Boot control block: information needed by the system to boot an OS from that partition UFS: boot block; NTFS: partition boot sector Partition control block: partition details No. of blocks, size of the blocks, free-block count and free-block pointers, free FCB count and FCB pointers UFS: superblock; NTFS: Master File Table A directory structure is used to organize the files File control block: many of the file s details File permissions, ownership, size, location of the data blocks UFS: inode; NTFS: within the Master File Table 11

In-Memory Structures An in-memory partition table containing information about each mounted partition An in-memory directory structure that holds the directory information of recently accessed directories The system-wide open-file table (Chapter 11) The per-process open-file table (Chapter 11) Caching information so that no need to retrieve the information every time from the disk 12

In-Memory File-System Structures File Open 13 File Read

Virtual File Systems Virtual File Systems (VFS) provide an object-oriented way of implementing file systems VFS separates file-system-generic operations from their implementation by defining a clean VFS interface VFS allows the same system call interface (the API) to be used for different types of file systems VFS is based on a file-representation structure, called a vnode, that contains a numerical designator for a networkwide unique file The API is to the VFS interface, rather than any specific type of file system 14

Schematic View of Virtual File System Open, read, write 15

12.3 Directory Implementation Linear list of file names with pointer to the data blocks Simple to program Time-consuming to execute linear search to find a particular entry Cache and sorted list may help Hash Table linear list with hash data structure Decreases directory search time Collisions situations where two file names hash to the same location Fixed size and the dependence of the hash function on that size 16

12.4 Allocation Methods How to allocate space to files so that disk space is utilized effectively and files can be accessed quickly 17

Contiguous Allocation A file occupies a set of contiguous blocks on disk Only starting block (block #) and length (number of blocks) are required in the directory entry (FCB) Fast -- Minimal seek time and head movement Random access any block within the file Similar to dynamic storage-allocation problem External fragmentation may need compaction Files are difficult to grow Find a larger hole and copy the file to the new space 18

Contiguous Allocation (Cont.) 19

Extent-Based Systems Many newer file systems (I.e. Veritas File System) use a modified contiguous allocation scheme Extent-based file systems allocate disk blocks in extents An extent is a contiguous block of disks. Extents are allocated for file allocation. A file consists of one or more extents. Integrate contiguous allocation and linked allocation (see later) 20

Linked Allocation Each file is a linked list of disk blocks Blocks may be scattered anywhere on the disk Directory contains a pointer to the first and last blocks Each block contains a pointer to the next block Advantages No external fragmentation Easy to grow Any free block is OK Disadvantages Effectively for only sequential-access file Space required for the pointers Reliability What if the pointers are lost 21

Linked Allocation (Cont.) block = pointer 22 data

Linked Allocation (Cont.) Solution for spaces for pointers Collect blocks into clusters, and allocate the clusters than blocks ( 每次 Allocate 一個 Cluster, 而非一個 Block) Fewer disk head seeks and decreases the space needed for block allocation and free-list management Internal fragmentation Solution for reliability Double linked list or store the filename and relative block number in each block More overhead for each file 23

Linked Allocation (Cont.) FAT (File Allocation Table) OS/2, MS-DOS The table has one entry for each disk block and is indexed by block number Similar to the linked list Contain the block number of the next block in the file Significant number of disk head seeks One for FAT, one for data Improved by caching FAT Random access time is improved 把 Pointer 集中放置於 FAT, 而不是跟 Data Block 放一起 24

Indexed Allocation Bring all pointers together into the index block An array of disk-block addresses The ith entry points to the ith block of the file The directory contains the address of the index block Similar to the paging scheme for memory management 25

Example of Indexed Allocation 26

Indexed Allocation (Cont.) Advantage Support random access Dynamic access without external fragmentation No size-declaration problem But have overhead of index block. Need index table Disadvantage Wasted space: Worse than the linked allocation for small files How large the index block should be Large index block: waste space for small files Small index block: how to handle large files 27

Indexed Allocation (Cont.) Mechanism for handling the index block Linked scheme: Link together several index blocks Multilevel index: like multi-level paging With 4096-byte blocks, we could store 1024 4-byte pointers in an index block. Two levels of indexes allows 1,048,576 data blocks, which allow a file of up to 4 gigabytes Combined scheme: For example BSD UNIX System 28

Indexed Allocation Multilevel Index (Cont.) 29

Combined Scheme: UNIX (4K bytes per block) The UNIX inode How large can a file be, if each pointer in the index blocks is 4- bytes? 30

12.5 Free Space Management 31

Bit Vector Simple and efficient to find the first free block, or consecutive free blocks By bit-manipulation Requires extra space block size = 2 12 bytes disk size = 2 30 bytes n = 2 30 /2 12 = 2 18 bits (or 32K bytes) Efficient only when the entire vector is kept in main memory Write back to the disk occasionally for recovery needs 0 1 2 n-1 bit[i] = 678 0 block[i] free 1 block[i] occupied 001111001111100011000011100 Question: What s the block # of the fist free block? 32

Linked List Link together all free blocks Keep a pointer to the first free block in a special location on the disk and caching it in memory Cannot get contiguous space easily No waste of space Not efficient: have to traverse the disk for free spaces Usually, OS needs one free block at a time FAT incorporate the linked list mechanism 33

Grouping And Counting Grouping: store the address of n free blocks in the first free block. The first n-1 are actually free. The final block contains the addresses of another n free blocks Counting: Each entry has a disk address and a count Several contiguous blocks may be allocated or freed simultaneously 34

Example Of Free-Space Management Bit Vector 11000011000000111001111110001111 Grouping Block 2 3, 4, 5 Block 5 8, 9, 10 Block 10 11, 12, 13 Block 13 17, 28, 25 Block 25 26, 27 Counting 2 4 8 6 17 2 25 3 35

12.6 Efficiency and Performance 36

Efficiency and Performance Efficiency dependent on Disk allocation and directory algorithms Types of data kept in file s directory entry Performance On-board cache local memory in disk controller to store entire tracks at a time Disk cache separate section of main memory for frequently used blocks (LRU is a reasonable algorithm for block replacement) Free-behind and read-ahead techniques to optimize sequential access (optimize the disk cache s block replacement algorithm) Improve PC performance by dedicating section of memory as virtual disk, or RAM disk. 37

Various Disk-Caching Locations 38

Page Cache Non-unified buffer cache A page cache caches pages rather than disk blocks using virtual memory techniques Memory-mapped I/O uses a page cache Routine I/O through the file system uses the buffer (disk) cache Unified Buffer Cache A unified buffer cache uses the same buffer cache to cache both memory-mapped pages and ordinary file system I/O 39

I/O Without/With A Unified Buffer Cache 40

12.7 Recovery Consistency checker compares data in directory structure with data blocks on disk, and tries to fix inconsistencies Use system programs to back up data from disk to another storage device (floppy disk, magnetic tape) Recover lost file or disk by restoring data from backup 41

Log Structured File Systems Log structured (or journaling) file systems record each update to the file system as a transaction All transactions are written to a log. A transaction is considered committed once it is written to the log However, the file system may not yet be updated The transactions in the log are asynchronously written to the file system. When the file system is modified, the transaction is removed from the log If the file system crashes, all remaining transactions in the log must still be performed 42

12.9 NFS 43

The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs (or WANs) The implementation is part of the Solaris and SunOS operating systems running on Sun workstations using an unreliable datagram protocol (UDP/IP protocol) and Ethernet Interconnected workstations viewed as a set of independent machines with independent file systems, which allows sharing among these file systems in a transparent manner 44

NFS (Cont.) A remote directory is mounted over a local file system directory. The mounted directory looks like an integral subtree of the local file system, replacing the subtree descending from the local directory Specification of the remote directory for the mount operation is nontransparent; the host name of the remote directory has to be provided. Files in the remote directory can then be accessed in a transparent manner Subject to access-rights accreditation, potentially any file system (or directory within a file system), can be mounted remotely on top of any local directory 45

NFS (Cont.) NFS is designed to operate in a heterogeneous environment of different machines, operating systems, and network architectures; the NFS specifications independent of these media. This independence is achieved through the use of RPC primitives built on top of an External Data Representation (XDR) protocol used between two implementation independent interfaces. The NFS specification distinguishes between the services provided by a mount mechanism and the actual remote fileaccess services. 46

Three Independent FS 47

Mounting in NFS mount S2:/usr/dir2 /usr/local/dir1 mount S1:/usr/shared/dir1 /usr/local 48

NFS Mount Protocol Establishes initial logical connection between server and client Mount operation includes name of remote directory to be mounted and name of server machine storing it. Mount request is mapped to corresponding RPC and forwarded to mount server running on server machine Export list specifies local file systems that server exports for mounting, along with names of machines that are permitted to mount them. Following a mount request that conforms to its export list, the server returns a file handle a key for further accesses. File handle a file-system identifier, and an inode number to identify the mounted directory within the exported file system. The mount operation changes only the user s view and does not affect the server side. 49

NFS Protocol Provides a set of remote procedure calls for remote file operations. The procedures support the following operations: Searching for a file within a directory Reading a set of directory entries Manipulating links and directories Accessing file attributes Reading and writing files NFS servers are stateless; each request has to provide a full set of arguments Modified data must be committed to the server s disk before results are returned to the client (lose advantages of caching) The NFS protocol does not provide concurrency-control mechanisms 50

Three Major Layers of NFS Architecture UNIX file-system interface (based on the open, read, write, and close calls, and file descriptors) Virtual File System (VFS) layer distinguishes local files from remote ones, and local files are further distinguished according to their file-system types The VFS activates file-system-specific operations to handle local requests according to their file-system types Calls the NFS protocol procedures for remote requests NFS service layer bottom layer of the architecture; implements the NFS protocol. 51

Schematic View of NFS Architecture 52

NFS Path-Name Translation Performed by breaking the path into component names and performing a separate NFS lookup call for every pair of component name and directory vnode. To make lookup faster, a directory name lookup cache on the client s side holds the vnodes for remote directory names. 53

NFS Remote Operations Nearly one-to-one correspondence between regular UNIX system calls and the NFS protocol RPCs (except opening and closing files) NFS adheres to the remote-service paradigm, but employs buffering and caching techniques for the sake of performance File-blocks cache when a file is opened, the kernel checks with the remote server whether to fetch or revalidate the cached attributes. Cached file blocks are used only if the corresponding cached attributes are up to date. File-attribute cache the attribute cache is updated whenever new attributes arrive from the server. Clients do not free delayed-write blocks until the server confirms that the data have been written to disk. 54