Week 12 - Thursday CS222.

Slides:



Advertisements
Similar presentations
Concepts about the file system 2. The disk structure 3. Files in disk – The ext2 FS 4. The Virtual File System (c) 2013, Prof. Jordi Garcia.
Advertisements

© Original by Donald Acton; Changes by George Tsiknis Unix I/O Related Text Sections: 2nd Ed: and st Ed: and
File Systems Examples.
System-Level I/O Topics Unix I/O Robust reading and writing Reading file metadata Sharing files I/O redirection Standard I/O.
1 File Management in Representative Operating Systems.
I/O April 16, 2002 Topics Files Unix I/O Standard I/O Reading: (Beta) or (New) Problems: 12.9 (Beta) or 12.4 (New) class24.ppt
CS 311 – Lecture 12 Outline File management system calls Stat() Directory Information  Opendir()  Readdir()  Closedir() Truncate() and remove() Lecture.
MODERN OPERATING SYSTEMS Third Edition ANDREW S
Chapter 8 File Management
Chapter 39 Virtsualization of Storage: File and Directory Chien-Chung Shen CIS, UD
1Fall 2008, Chapter 11 Disk Hardware Arm can move in and out Read / write head can access a ring of data as the disk rotates Disk consists of one or more.
Input and Output Topics I/O hardware Unix file abstraction Robust I/O File sharing io.ppt CS 105 “Tour of the Black Holes of Computing”
1 System-Level I/O Andrew Case Slides adapted from Jinyang Li, Randy Bryant and Dave O’Hallaron.
Week 12 - Friday.  What did we talk about last time?  Exam 2 post mortem  Low level file I/O.
Component 4: Introduction to Information and Computer Science Unit 4: Application and System Software Lecture 3 This material was developed by Oregon Health.
File System Implementation Chapter 12. File system Organization Application programs Application programs Logical file system Logical file system manages.
1 Interface Two most common types of interfaces –SCSI: Small Computer Systems Interface (servers and high-performance desktops) –IDE/ATA: Integrated Drive.
File System Review bottomupcs.com J. Kubiatowicz, UC Berkeley.
Chapter 5 File Management File System Implementation.
Files and Directories File types stat functions for file information
Today’s topic Access and manipulate meta data for files –File type, ownership, access permissions, access time, etc How to determine if a file is not there?
UNIX File System (UFS) Chapter Five.
Lecture 10 Page 1 CS 111 Summer 2013 File Systems Control Structures A file is a named collection of information Primary roles of file system: – To store.
File Systems cs550 Operating Systems David Monismith.
Laface 2007 File system 2.1 Operating System Design Filesystem system calls buffer allocation algorithms getblk brelse bread breada bwrite iget iput bmap.
CS 105 “Tour of the Black Holes of Computing”
NCHU System & Network Lab Lab 14 File and Directory.
THE FILE SYSTEM Files long-term storage RAM short-term storage Programs, data, and text are all stored in files, which is stored on.
Chapter 6 File Systems. Essential requirements 1. Store very large amount of information 2. Must survive the termination of processes persistent 3. Concurrent.
CSE333 SECTION 3. Important Dates Jan 27 th – Homework 1 Due Feb 6 th – Midterm.
NTFS Filing System CHAPTER 9. New Technology File System (NTFS) Started with Window NT in 1993, Windows XP, 2000, Server 2003, 2008, and Window 7 also.
Review CS File Systems - Partitions What is a hard disk partition?
CSCI 330 UNIX and Network Programming Unit VIII: I/O Management II.
File Subsystem in Linux by Dr P.Padmanabham Professor (CSE)&Director Bharat Institute of Engineering &Technology Hyderabad Mobile
Files Oct. 28, 2008 Topics Mapping file offsets to disk blocks File system buffering and you The directory hierarchy lecture-18.ppt “The course.
CSCE Systems Programming Lecture 07 – Make, Stdio, I/O Buffering CSCE 510 Jan 23, 2013.
File System Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki CS 314.
Week 12 - Friday.  What did we talk about last time?  Exam 2 post mortem.
File-System Management
CS/COE 0449 (term 2174) Jarrett Billingsley
Today topics: File System Implementation
Chapter 11: File System Implementation
Chapter 12: File System Implementation
Week 12 - Wednesday CS222.
Day 27 File System.
File System Structure How do I organize a disk into a file system?
OPERATING SYSTEMS CS 3502 Fall 2017
Operating Systems (CS 340 D)
Filesystems.
Journaling File Systems
Chapter 12: File System Implementation
File Structure 2018, Spring Pusan National University Joon-Seok Kim
Operating System Module 1: Linux Installation
Operating System Hebrew University Spring 2004
Chapter 3: Windows7 Part 3.
“The course that gives CMU its Zip!”
File Structure Related system calls
“The course that gives CMU its Zip!”
Project 3: An Introduction to File Systems
File I/O (1) Prof. Ikjun Yeom TA – Hoyoun
Modern PC operating systems
Chien-Chung Shen CIS, UD
CS 105 “Tour of the Black Holes of Computing”
Department of Computer Science
CS 105 “Tour of the Black Holes of Computing”
Chapter 14: File System Implementation
Chapter 12: File-System Implementation CSS503 Systems Programming
Week 12 - Wednesday CS222.
Chapter 5 File Systems -Compiled for MCA, PU
Professor Jodi Neely-Ritz University of Florida
Presentation transcript:

Week 12 - Thursday CS222

Last time What did we talk about last time? Low level file I/O

Questions?

Project 5

Quotes Programs must be written for people to read and only incidentally for machines to execute. Harold Abelson and Gerald Jay Sussman Authors of The Structure and Interpretation of Computer Programs

Duplicating descriptors on the command line stderr usually prints to the screen, even if stdout is being redirected to a file What if you want stderr to get printed to that file as well? You can also redirect only stderr to a file ./program > output.txt ./program > output.txt 2>&1 ./program 2> errors.log

dup() and dup2() If you want a new file descriptor number that refers to an open file descriptor, you can use the dup() function It's often more useful to change an existing file descriptor to refer to another stream, which you can do with dup2() Now all writes to stderr will go to stdout int fd = dup(1); //makes a copy of stdout dup2(1, 2); //makes 2 (stderr) a copy of 1 (stdout)

I/O buffering in files Reading from and writing to files on a hard drive is expensive These operations are buffered so that one big read or write happens instead of lots of little ones If another program is reading from a file you've written to, it reads from the buffer, not the old file Even so, it is more efficient for your code to write larger amounts of data in one pass Each system call has overhead

Buffering in stdio To avoid having too many system calls, stdio uses this second kind of buffering This is an advantage of stdio functions rather than using low-level read() and write() directly The default buffer size is 8192 bytes The setvbuf(), setbuf(), and setbuffer() functions let you specify your own buffer

Flushing a buffer Stdio output buffers are generally flushed (sent to the system) when they hit a newline ('\n') or get full When debugging code that can crash, make sure you put a newline in your printf(), otherwise you might not see the output before the crash There is an fflush() function that can flush stdio buffers fflush(stdout); //flushes stdout //could be any FILE* fflush(NULL); //flushes all buffers

Disks and partitions Until SSDs take over, physical hard drives are mostly electronically controlled spinning platters with magnetic coatings Disks have circular tracks divided into sectors which contain blocks A block is the smallest amount of information a disk can read or write at a time Physical disks are partitioned into logical disks Each partition is treated like a separate device in Linux And a separate drive (C:, D:, E:, etc.) in Windows Each partition can have its own file system

Popular file systems Linux supports a lot of file systems ext2, the traditional Linux file system Unix ones like the Minix, System V, and BSD file systems Microsoft’s FAT, FAT32, and NTFS file systems The ISO 9660 CD-ROM file system Apple's HFS Network file systems, including Sun’s widely used NFS A range of journaling file systems, including ext3, ext4, Reiserfs, JFS, XFS, and Btrfs And more!

Partition layout Virtually all file systems have each partition laid out something like this The boot block is the first block and has information needed to boot the OS The superblock has information about the size of the i-node table and logical blocks The i-node table has entries for every file in the system Data blocks are the actual data in the files and take up almost all the space Boot block Superblock i-node Table Data blocks

i-nodes Every file has an i-node in the i-node table Each i-node has information about the file like type (directory or not), owner, group, permissions, and size More importantly, each i-node has pointers to the data blocks of the file on disk In ext2, i-nodes have 15 pointers The first 12 point to blocks of data The next points to a block of pointers to blocks of data The next points to a block of pointers to pointers to blocks of data The last points to a block of pointers to pointers to pointers to blocks of data

Journaling file systems If a regular file system (like ext2) crashes, it might be in an inconsistent state It has to look through all its i-nodes to try to repair inconsistent data A journaling file system (like ext3, ext4, and Reiserfs) keeps metadata about the operations it's trying to perform These operations are called transactions After a crash, the file system only needs to repair those transactions that weren't completed

File attributes Files have many attributes, most of which are stored in their i-node These attributes include: Device (disk) the file is on i-node number File type and permissions Owner and group Size Times of last access, modification, and change There are functions that will let us retrieve this information in a C program stat(), lstat(), and fstat()

stat structure Attributes can be stored in a stat structure struct stat { dev_t st_dev; /* IDs of device on which file resides */ ino_t st_ino; /* I-node number of file */ mode_t st_mode; /* File type and permissions */ nlink_t st_nlink; /* Number of (hard) links to file */ uid_t st_uid; /* User ID of file owner */ gid_t st_gid; /* Group ID of file owner */ dev_t st_rdev; /* IDs for device special files */ off_t st_size; /* Total file size (bytes) */ blksize_t st_blksize; /* Optimal block size for I/O (bytes)*/ blkcnt_t st_blocks; /* Number of (512B) blocks allocated */ time_t st_atime; /* Time of last file access */ time_t st_mtime; /* Time of last file modification */ time_t st_ctime; /* Time of last status change */ };

utime() and utimes() I really shouldn't tell you about these But there are functions that can change the timestamp of a file utime() lets you change the access and modification times for a file, with units in seconds utimes() lets you do the same thing, but with accuracy in microseconds

Lab 12

Upcoming

Next time… Networking overview Sockets

Reminders Finish Project 5 Read LPI Chapters 56, 57, 58, and 59 Due tonight by midnight Read LPI Chapters 56, 57, 58, and 59 No class on Monday!