程序代写代做代考 file system Java Hive Operating Systems Lecture 9a

Operating Systems Lecture 9a
Dr Ronald Grau School of Engineering and Informatics Spring term 2020

Previously 1 Memory management
 Virtual memory
 Addressing and address spaces  Partitioning and segmentation  Paging & Page replacement

Recap: Questions 2 Recap questions
1. How can we avoid page faults when a process starts?
2. How can thrashing be controlled?
3. What is a working set?
4. What is the significance of the reference bit in the page table?
5. What is the main problem of the FIFO page replacement policy?
6. What information is required to operate the LRU policy?

Today 3 Files
 Persistent storage
 Formats, access, operations  Attributes & permissions
 Implementation

File abstraction 4 Files
 Persistent storage of data  Named
 Byte-wise access
 Access protection
 Consistency guarantees Operating system duties:
 Manage efficient access (e.g. caching)
 Protect storage device from being damaged/corrupted  Provide uniform interface for heterogeneous devices

File abstraction 5 Basic terminology
 Bit: 0, 1
 Byte: typically 8 bits
 Word: the number of bits a processor can operate on at once
 Character: maps one or more bytes to letters, digits, etc
 Character set: defines the mapping system (e.g. ASCII, Unicode)  Field: a group of characters
 Record: a group of fields
 File: a group of related records
 Volume: a unit of data storage holding multiple files
 File system: the way the OS organises files and manages access

File names 6
 Human-readable name to identify a file
 Maps to an internal identifier in the file system
 Length of the file name
 MS-DOS: 8 characters + extension  Modern OS: 255 characters
 Relevance of upper/lower case, allowed characters
 Unix distinguishes between upper/lower case, unlike Windows
 File name extensions
 MS-DOS: separate from the le name
 Modern OS: convention, multiple extensions possible

File types 7
 Regular files
 Text files: interpretation as characters
 Binary files: interpretation application-specific e.g. executables, pictures
 Directories: hierarchy of files  Special files for I/O devices

File formats 8 Define how the data is organised within a file
 Fixed-length records
 Variable-length records  Indexed records
 Trees: XML, JSON

File formats 9 Example: ZIP format

File formats 10 Example: ZIP format

File formats 11 Example: GIF format

File formats 12 Example: GIF format

File access 13

File access 14 Sequential access:
Random access:

File operations 15 Typical operations:
 Create, Delete, Rename
 Open, Close
 Read, Write, Append, Truncate  Seek
 Get Attributes, Set Attributes
 Lock, Unlock

File operations 16 Example: POSIX System calls
int open(const char *filename, int flags, mode t mode);
// example:
int fd = open(“myfile.txt”, O WRONLY | O CREAT, 0644); if (fd < 0) switch(errno) { ... } File operations 17 Example: POSIX System calls ssize_t read(int fd, void *buf, size_t count); // example: char buffer[BUF SIZE]; ssize_t bytes read = read(fd, buffer, BUF_SIZE); File operations 18 Example: POSIX System calls ssize_t write(int fd, void *buf, size_t count); // example: char buffer[BUF_SIZE]; ssize_t_bytes_written = write(fd, buffer, BUF_SIZE); File operations 19 Example: POSIX System calls ssize_t lseek(int fd, off t_offset, int whence); // example: off_t pos = lseek(fd, 0, SEEK_CUR); File operations 20 Example: POSIX System calls int close(int fd); int unlink(const char *pathname); int fcntl(int fd, int cmd, ... /* args */ ); File operations 21 Example: POSIX System calls int stat(const char *filename, struct stat *buf); File attributes 22 Typical metadata:  Creator, Owner, Owner Group, Protection, Password  Read-only flag, Write flag, Executable flag, Hidden flag, System flag, Archive flag, ASCII/binary flag, Random access flag, Temporary flag, Lock flags  Creation time, Time of last access, Time of last change  Record length, Key position, Key length  Current size, Maximum size File attributes 23 Example: UNIX file attributes File attributes 24 Example: UNIX file permissions File attributes 25 Example: UNIX file permissions File implementation 26 Example: java.io.File File(String pathname) boolean exists() boolean createNewFile() boolean renameTo(File dest) boolean delete() long length() long lastModified() boolean canRead() ) boolean canWrite() boolean canExecute() boolean setReadable(boolean readable, boolean ownerOnly) boolean setWritable(boolean writable, boolean ownerOnly) boolean setExecutable(boolean executable, boolean ownerOnly) .. . File implementation 27 Example: java.io.RandomAccessFile RandomAccessFile(String name, String mode) throws FileNotFoundException void close() int read(byte[] b) int write(byte[] b) void seek(long pos) long getFilePointer() void setLength(long newLength) String readLine() double readDouble() .. . throw IOException, EOFException, SecurityException, .. . File implementation 28 Example: java.io Streams and Readers/Writers FileInputStream(File file) FileOutputStream(File file) FileReader(File file) FileWriter(File file) int read(byte[] buf) void close() int write(byte[] buf) void close() int read(char[] cbuf) void close() int write(char[] cbuf) void close() Other aspects 29  How files are stored  How storage space is managed  Performance  Reliability Summary 30 Files  Naming: human-readable identification  Attributes: permissions, ownership, dates, . . .  Access: open - read / write - close  Unified interface for access to a variety of devices  Examples: POSIX, Java Read 31  Tanenbaum & Bos., Modern Operating Systems  Chapter 4  Silberschatz et al., Operating System Concepts  Chapters 10 & 11 Next Lecture 32  Introduction  Operating System Architectures  Processes  Threads - Programming  Process Scheduling - Evaluation  Process Synchronisation  Deadlocks  Memory Management  File Systems (continued)  Input / Output  Security