View on GitHub

os202

HOME


Top 10 List of Week 03

  1. File
    A file is a collection of related information that is recorded on secondary storage. Or file is a collection of logically related entities. From user’s perspective a file is the smallest allotment of logical secondary storage.

    Data is a set of facts and statistics that can be operated, referred or analyzed. It can simply be a piece of information, a list of grocery items, or observations, a story or a description of a certain scenario.
    Metadata is a data about data. Metadata shows basic information about data, which can make finding and working with specific instances of data easier. Metadata provides the information regarding organization of raw data. It may be created manually or by automatic information processing. Manual processed metadata is more accurate than automatic information processed one because automatic information processed metadata only contains file name, size, extension, time of creation and information about who created the file.
    Buffering is an act of storing data temporarily in the buffer. It helps in matching the speed of the data stream between the sender and the receiver. If the speed of the sender’s transmission is slower than the receiver, then a buffer is created in the main memory of the receiver, and it accumulates the bytes received from the sender and vice versa.

  2. File Directory
    File directory is collection of files. The directory contains information about the files, including attributes, location and ownership. Much of this information, especially that is concerned with storage, is managed by the operating system. The directory is itself a file, accessible by various file management routines. Information contained in a directory are name, type, address, current length, maximum length, date last accessed, date last updated, owner id, protection information.

  3. Access Methods
    The information in the file can be accessed in several ways:

    Sequential Access : Information in the file is processed in order, one record after the other. This mode of access is by far the most common; for example, editors and compilers usually access files in this fashion.
    Direct Access : the file is viewed as a numbered sequence of blocks or records. Thus, we may read block 14, then read block 53, and then write block 7. There are no restrictions on the order of reading or writing for a direct-access file. Direct-access files are of great use for immediate access to large amounts of information. Databases are often of this type.

  4. A Virtual File System (VFS)
    A virtual file system (VFS) is programming that forms an interface between an operating system’s Kernel and a more concrete file system. It manages the data storage and retrieval between the operating system and the storage sub-system. It gives applications access to different types of file systems and local and network storage devices. It separates file system generic operations from their implementation by defining a clean VFS interface. It is also based on a file-representation structure known as vnode, which contains a numerical designator needed to support network file systems.

  5. Memory Mapped
    As a CPU needs to communicate with the various memory and input-output devices (I/O) as we know data between the processor and these devices flow with the help of the system bus. In memory mapped every bus in common due to which the same set of instructions work for memory and I/O. Hence we manipulate I/O same as memory and both have same address space, due to which addressing capability of memory become less because some part is occupied by the I/O.

  6. File Allocation Methods
    The allocation methods define how the files are stored in the disk blocks. There are three main disk space or file allocation methods:

    Contiguous Allocation : each file occupies a contiguous set of blocks on the disk.
    Linked List Allocation : each file is a linked list of disk blocks which need not be contiguous. The disk blocks can be scattered anywhere on the disk.
    Indexed Allocation : a special block known as the Index block contains the pointers to all the blocks occupied by a file. Each file has its own index block. The ith entry in the index block contains the disk address of the i-th file block.

  7. Free Space Management
    To reuse the space released from deleting the files, free space management becomes crucial. The system maintains a free space list which keeps track of the disk blocks that are not allocated to some file or directory. The free space list can be implemented mainly as:

    Bitmap or Bit vector : series or collection of bits where each bit corresponds to a disk block. The bit can take two values: 0 and 1: 0 indicates that the block is allocated and 1 indicates a free block.
    Linked List : the free disk blocks are linked together i.e. a free block contains a pointer to the next free block. The block number of the very first disk block is stored at a separate location on disk and is also cached in memory.
    Grouping : stores the address of the free blocks in the first free block. The first free block stores the address of some, say n free blocks. Out of these n blocks, the first n-1 blocks are actually free and the last block contains the address of next free n blocks.
    Counting : stores the address of the first free disk block and a number n of free contiguous disk blocks that follow the first block.

  8. TRIM
    TRIM is a command with the help of which the operating system can tell the solid state drive (SSD) which data blocks are no longer needed and can be deleted, or are marked as free for rewriting. In other words, TRIM is a command that helps the operating system know precisely where the data that you want to move or delete is stored. That way, the solid state drive can access only the blocks holding the data. Furthermore, whenever a delete command is issued by the user or the operating system, the TRIM command immediately wipes the pages or blocks where the files are stored. This means that the next time the operating system tries to write new data in that area, it does not have to wait first to delete it.

  9. Remote File System (RFS)
    RFS allows a computer to support one or more file systems from one or more remote machines. In this case, the machine containing the files is server and the machine wanting access to the files is the client. The server specifies which file can be accessed by a particular client(s). Files are usually specified on a partition level.

  10. Network File System (NFS)
    This systems involved multiple client machines and one or a few servers. The server stores data on its disks and the clients may request data through some protocol messages. The architecture consists of a client-side file system and a server-side file system. A client application issues a system call (e.g. read(), write(), open(), close() etc.) to access files on the client-side file system, which in turn retrieves files from the server. It is interesting to note that to a client application, the process seems no different than requesting data from a physical disk, since there is no special API required to do so. This phenomenon is known as transparency in terms of file access. It is the client-side file system that executes commands to service these system calls.