1 / 29

Naming and Directories

Learn about file header storage, separate allocations, naming conventions, and various directory structures in operating systems like UNIX. Discover flat, hierarchical, relational, and contextual name spaces with examples and performance optimizations.

ursulap
Download Presentation

Naming and Directories

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Naming and Directories Sarah Diesburg Operating Systems CS 3430

  2. Recall from the last time… • A file header associates the file with its data blocks

  3. File Header Storage • Under UNIX, a file header is stored in a data structure called i-node • For early UNIX systems • I-nodes are stored in a special array • Fixed number of array entries • Maximum number of files fixed • Not stored near data blocks on disk • Reading a small file involves • One disk seek to get the i-node • Other disk seek(s) to get file blocks

  4. Reasons for Separate Allocations • Reliability • Data corruptions are unlikely to affect i-nodes • Reduced fragmentation • File headers are smaller than a whole block • By packing them in an array, multiple headers can be fetched from disk • File headers are accessed more often • e.g., ls • Grouping file headers improves disk efficiency

  5. More recently • Portions of file header array stored on each cylinder • For small directories • All file headers and data stored in the same cylinder • Reduce seek time

  6. Naming • Remember that odd moment when your computer asks you to name the first file? • Naming: allows users to issue file names instead of i-node numbers - Users tend to come up with poor names • e.g., test - Many file are difficult to name…

  7. How do you name these photos?

  8. Directories • A table of file names and their i-node numbers • Under many file systems • Directories are implemented as normal files • Containing file names and i_node numbers • Only the OS is permitted to modify directories

  9. Name Space • Flat name space • Hierarchical naming • Relational name space • Contextual naming • Content-based naming

  10. Flat Name Space • All files are stored in a single directory + Easy to implement - Not scalable for large directories • Name collisions: multiple files with the same names

  11. Hierarchical Naming • Uses multiple levels of directories • Most popular name space organization + Conceptual model maps well into the human model of organizing things • A file cabinet contains many files + Scalable • The probability of name collisions decreases + Spatial locality • Store all files under a directory within a cylinder to avoid disk seeks

  12. More on Hierarchical Naming • Absolute path name: consisting the path from the root directory ‘/’ to the file • e.g., /pets/cat.jpg root directory sub directory file name

  13. pets cute ? ? Drawbacks of Hierarchical Naming - Not all files can fit into the hierarchical model - Accessing a file may involve many levels of directory lookups, or a path resolution before getting to the file content

  14. An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os

  15. / An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 1. Read in the file header for the root directory ‘/’ • Stored at a fixed location on disk

  16. / An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 2. Read the first data block for the root directory • Lookup the directory entry for pets pets

  17. / An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 3. Read the file header for pets pets pets

  18. / An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 4. Read the first data block for the pet directory • Lookup the directory entry for cat.jpg pets pets cat

  19. / An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 5. Read the file header for cat.jpg pets cat pets cat

  20. / An Example of Path Resolution • To access the data content of /pets/cat.jpg • The system needs to perform the following disk I/Os 6. Read the data block for cat.jpg pets cat pets cat

  21. Some Performance Optimizations… • Top-level directories are usually cached • A user inside a directory (e.g., /pets) • Can issue relative path names (e.g., cat.jpg) to refer files within the current directory

  22. Relational Name Space • Hierarchical naming model is largely a tree • One step beyond is the relational naming model, which allows the construction of general graphs • A file can belong to multiple folders • According to its attributes • Files can be accessed in a manner similar to relational databases • e.g., keywords: cats and binder

  23. Pros and Cons of Relational Name Space + More flexible than hierarchical naming - May require a long list of attributes to name a single piece of data • e.g., this lecture • Keywords: operating systems, file systems, naming, too many cat pics, etc • - Who will create those attributes?

  24. Contextual Naming • Takes advantage of the observation that certain attributes can be added automatically • e.g., when you try to open a file by Word, a system will search only the file types supported by Word (.doc, .txt, .html) + Avoids a long list of attributes - A user may not remember the file name

  25. Content-Based Naming • Searches a file by its content instead of names • File contents are extracted automatically • e.g., I want a photo of a cat taken five years ago • The system returns all files satisfying the criteria

  26. Content-Based Naming - Requires advanced information processing techniques • e.g., image recognition • Many existing systems use manual indexing • Automated content-based naming is still an active area of research • Google is starting to do this • Good idea? Bad idea?

  27. Example: The “Internet File System” • Can be viewed as a worldwide file system • What is the naming scheme for the Internet file system?

  28. The “Internet File System” • Contains shades of various naming schemes • Flat name space: • Each URL provides a unique name • Hierarchical name space: • Within individual websites • Relational name space • Can search the Internet via search engines • Contextual name space: • Page ranked according to relevance • Content-based name space: • You can find your information without knowing the exact file names

  29. Example: Plan 9 • Modern UNIX has a deep-rooted influence from the Plan 9 OS • Developed by Bell lab • Major design philosophy: everything is a file • A single hierarchical name space for • Processes (e.g., /proc) • Files • IPC (e.g., pipe) • Devices (e.g., /dev/fd0) • Use open/close/read/write for everything • e.g., /dev/mem

More Related