Page 299 - DCAP404 _Object Oriented Programming
P. 299

Object-oriented Programming




                    Notes          2.  Flash file systems: A flash file system is a file system designed for storing files on flash
                                       memory devices. These are becoming more prevalent as the number of mobile devices is
                                       increasing, and the capacity of flash memories catches up with hard drives.
                                       While a block device layer can emulate a disk drive so that a disk file system can be used
                                       on a flash device, this is suboptimal for several reasons:

                                       (a)  Erasing blocks: Flash memory blocks have to be explicitly erased before they can be
                                            written to. The time taken to erase blocks can be significant, thus it is beneficial to
                                            erase unused blocks while the device is idle.
                                       (b)  Random access: Disk file systems are optimized to avoid disk seeks whenever possible,
                                            due to the high cost of seeking. Flash memory devices impose no seek latency.

                                       (c)  Wear leveling:  Flash  memory  devices  tend to wear  out  when  a  single  block  is
                                            repeatedly overwritten; flash file systems are designed to spread out writes evenly.
                                       Log-structured file systems have all the desirable properties for a flash file system. Such
                                       file systems include JFFS2 and YAFFS.
                                   3.  Database file systems: A new concept for file management is the concept of a database-
                                       based file system. Instead of, or in addition to, hierarchical structured management, files
                                       are identified by their characteristics, like type of file, topic, author, or similar metadata.
                                       Example: dbfs.
                                   4.  Transactional file systems:  Each disk operation may involve changes to a number of
                                       different files and disk structures. In many cases, these changes are related, meaning that
                                       it is important that they all be executed at the same time. Take for example a bank sending
                                       another bank some money electronically. The bank’s computer will “send” the transfer
                                       instruction to the other bank and also update its own records to indicate the transfer has
                                       occurred. If for some reason the computer crashes before it has had a chance to update its
                                       own records, then on reset, there will be no record of the transfer but the bank will be
                                       missing some money.

                                       Transaction processing introduces the guarantee that at any point while it is running, a
                                       transaction can either be finished completely or reverted completely (though not necessarily
                                       both at any given point). This means that if there is a crash or power failure, after recovery,
                                       the stored state will be consistent. (Either the money will be transferred or it will not be
                                       transferred, but it won’t ever go missing “in transit”.)
                                       This type of file system is designed to be fault tolerant, but may incur additional overhead
                                       to do so.

                                       Journaling file systems are one technique used to introduce transaction-level consistency
                                       to file system structures.
                                   5.  Network file  systems: A network file system is a file system that acts  as a client for a
                                       remote file access protocol, providing access to files on a server. Examples of network file
                                       systems include clients for the NFS, SMB protocols, and file-system-like clients for FTP
                                       and WebDAV.
                                   6.  Special purpose file systems: A special purpose file system is basically any file system that
                                       is not a disk file system or network file system. This includes systems where the files are
                                       arranged dynamically by software, intended for such purposes as communication between
                                       computer processes or temporary file space.
                                       Special purpose file systems are most commonly used by file-centric operating systems
                                       such as Unix. Examples include the procfs (/proc) file system used by some Unix variants,
                                       which grants access to information about processes and other operating system features.



          292                               LOVELY PROFESSIONAL UNIVERSITY
   294   295   296   297   298   299   300   301   302   303   304