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