<<

File-System Interface

Electrical and Computer Engineering Stephen Kim ([email protected])

ECE/IUPUI RTOS & APPS 1

Chapter 11: File-System Interface n File Concept n Access Methods n Structure n Mounting n n Protection

ECE/IUPUI RTOS & APPS 2

1 File Concept (1) n Contiguous logical address n Usually nonvolatile such as a hard-disk n Most RTOS’s do not use a hard-disk because of

u its mechanical components that cannot sustain in harsh environments like impact and vibration

u its power consumer (mostly battery-powered RTOS)

u exceptions are some printers, digital recorder, mp3 players, which required huge storage n Recently, non-mechanical storage becomes very popular

u Simulating hard-disk as an interface

u Use FlashRAM technology n In future, file-system in embedded/real-time system will be more popular ECE/IUPUI RTOS & APPS 3

File Concept (2) n File types:

u Data – numeric, character, alphanumeric, binary

u Program n Generally, a file is sequence of bits, bytes, lines, or records

u The meaning is defined by its creator or user

ECE/IUPUI RTOS & APPS 4

2 File Structure n None - sequence of words, bytes n Simple record structure u Lines u Fixed length u Variable length n Complex Structures u Formatted document u Relocatable load file n Can simulate last two with first method by inserting appropriate control characters. n Who decides: u Operating system u Program ECE/IUPUI RTOS & APPS 5

File Attributes n Name – only information kept in human-readable form.

u Unix differentiates upper- and lowercase

u DOS and its predecessors do not distinguish them n Identifier – unique internal to the file system n Type – needed for systems that support different types. n Location – pointer to file location on device. n Size – current . n Protection – controls who can do reading, writing, executing, and so on. n Time , date , and user identification – data for protection, security, and usage monitoring. n Information about files are kept in the , which is maintained on the disk. ECE/IUPUI RTOS & APPS 6

3 File Operations (1)

n OS provides system calls for each operation

u Create – space allocation and a new entry in the directory

u – For a given file name, search the directory. OS keeps a write-pointer to the location where the next write is to take place

u – Search the directory for a given name. OS maintains a read-pointer to the location where the next read is to take place

ECE/IUPUI RTOS & APPS 7

File Operations (2)

u Reposition within file – the current-file-position is set to a given value

u Delete – release all file space

u Truncate – erase the contents of a file, but keep the .

ECE/IUPUI RTOS & APPS 8

4 File and

n Open(Fi) - search the directory structure on disk for entry Fi, and move the content of entry to an open-file table. So, the system does not need to search directory for subsequent read or write n Close (Fi) – remove the entry of Fi from the open-file table and finish the file access. n Implicit open/close

u open a file when the first reference is made

u close a file when the job opened the file terminates n Explicit open/close

u Most systems require the programmer open and close a file explicitly.

u Open system calls returns a pointer to the entry in the open-file table. The pointer, or , is used all subsequent IO operation

ECE/IUPUI RTOS & APPS 9

Open/Close in Multi-process Systems n Multiple users can open a file simultaneously n OS uses two-level of internal tables,

u per-process table – keep info for all files a process has open (current file pointer, access right, accounting info), and pointing to the system-wide table entry

u system-wide table – contains process-independent info (file location, access date, file size)

u Typically, the open-file table has a counter indicating the number of processes opening the file

t increment when a process opens the file

t decrement when a process closes the file

t when the counter is zero, the file is not in-use anymore. remove the file entry from the open-file table.

ECE/IUPUI RTOS & APPS 10

5 File Types n A part of indicates the file type

u For example, In DOS, .com, .exe, .bat indicates an executable file n In some systems, the use of file extension is optional and just hint. n In Apple, each file has a type made by the creator of the file n Unix does not support any file type, even though file extension can be used as a hint n What is the advantage for supporting file types by OS? n What is the disadvantage?

ECE/IUPUI RTOS & APPS 11

File Types – Name, Extension

ECE/IUPUI RTOS & APPS 12

6 Access Methods, Sequential Access n most common access method n based on a tape model of a file, but work well on random-access devices such as hard-disk n read-operation reads the next position of a file n write-operation appends to the end of file and advances to the end of the newly written material n A file may move the CP

u to the beginning of the file

u to n records forward or backward

ECE/IUPUI RTOS & APPS 13

Sequential-access File

ECE/IUPUI RTOS & APPS 14

7 Access Methods, Direct Access n based on a disk model

u block, sector, cylinder n A file is made up of fixed length logical records n A record can be accessed without particular order n Relative block number – index relative to the beginning of the file

u the first relative block is the index 0 n Given a logical record length L and a request for record N

u IO request must be made starting at location N´ L n Simulation of sequential access using direct access reset Þ cp=0; read next Þ read cp; cp++; write next Þ write cp; cp++;

ECE/IUPUI RTOS & APPS 15

Access Methods, Index Access n a file containing the record pointers, to access the file record directly, with little IO

ECE/IUPUI RTOS & APPS 16

8 Directory Structure (1)

n A disk can be divided into one or more partitioned n MS-DOS/Windows – each partition is treated as a separate storage. ie. only dividing n In Unix, several partitions can be organized into one logical structure n Each partition contains a device directory, or volume table of contents (VTOC) u to keep information about file within it t name, location, size, type, and so forth

ECE/IUPUI RTOS & APPS 17

Directory Structure (2) n A collection of nodes containing information about all files.

Directory

Files F1 F2 F4 F3 Fn

Both the directory structure and the files reside on disk.

ECE/IUPUI RTOS & APPS 18

9 Typical File-system Organization

ECE/IUPUI RTOS & APPS 19

Information in a Device Directory n Name n Type n Address n Current length n Date created n Date last accessed n Date last updated n Owner ID n Protection information

ECE/IUPUI RTOS & APPS 20

10 Operations Performed on Directory n Search for a file

u simple search or complicate pattern matching n Create a file

u When a new file is created, add the info to the directory n Delete a file n List a directory n Rename a file n Traverse the file system

u access every directory and every file within a directory structure

ECE/IUPUI RTOS & APPS 21

Organize the Directory (Logically) to Obtain n Efficiency – locating a file quickly. n Naming – convenient to users.

u Two users can have same name for different files.

u The same file can have several different names. n Grouping – logical grouping of files by properties, (e.g., all Java programs, all games, … )

ECE/IUPUI RTOS & APPS 22

11 Single-Level Directory

n A single directory for all users.

Naming problem

Grouping problem

ECE/IUPUI RTOS & APPS 23

Two-Level Directory

n Separate directory for each user.

name •Can have the same file name for different user •Efficient searching •No grouping capability

ECE/IUPUI RTOS & APPS 24

12 Tree-Structured Directories (1)

ECE/IUPUI RTOS & APPS 25

Tree-Structured Directories (2) n Efficient searching n Grouping Capability n Current directory ()

u cd /spell/mail/prog

u type list

ECE/IUPUI RTOS & APPS 26

13 Tree-Structured Directories (3) n Absolute or relative path name n Creating a new file is done in current directory. n Delete a file rm n Creating a new subdirectory is done in current directory. mkdir Example: if in current directory /mail mkdircount mail

prog prt count Deleting “mail”Þ deleting the entire subtree rooted by “mail”.

ECE/IUPUI RTOS & APPS 27

Acyclic-Graph Directories (1)

n Have shared subdirectories and files.

ECE/IUPUI RTOS & APPS 28

14 Acyclic-Graph Directories (2) n Two different names (aliasing) n If /dict/count is deleted, /spell/count is a dangling pointer. Solutions:

u Backpointers, so we can delete all pointers. Variable size records a problem.

u Backpointers using a daisy chain organization.

u Entry-hold-count solution.

ECE/IUPUI RTOS & APPS 29

General Graph Directory (1)

ECE/IUPUI RTOS & APPS 30

15 General Graph Directory (2) n Search a file when there is cycle, it might search forever n How do we guarantee no cycles?

u Allow only links to file not subdirectories.

u Garbage collection.

t traverse an entire file system

t time-consuming task - inadequate

u Every time a new link is added, use a cycle detection algorithm to determine whether it is OK.

ECE/IUPUI RTOS & APPS 31

File System Mounting n A file system must be mounted before it can be accessed.

u For a given name of device, attach the device to a file system n Implementations u MS Windows – a device (, or partition) can be mounted by assigning a driver letter

u Unix – a device can be mounted any directory, or subdirectory

ECE/IUPUI RTOS & APPS 32

16 (a) Existing. (b) Unmounted Partition

ECE/IUPUI RTOS & APPS 33

File Sharing

n Sharing of files on multi-user systems is desirable. n Sharing may be done through a protection scheme. n On distributed systems, files may be shared across a network. n Network File System (NFS) is a common distributed file-sharing method.

ECE/IUPUI RTOS & APPS 34

17 Protection n File owner/creator should be able to control: u what can be done u by whom n Types of access u Read u Write u Execute u Append u Delete u List

ECE/IUPUI RTOS & APPS 35

ECE/IUPUI RTOS & APPS 36

18