My name is Taufik Algi Fahri

OS202

View on GitHub

HOME


Top 10 List of Week 03

  1. Linux File System
    Linux File System or any file system generally is a layer that is under the operating system that handles the positioning of your data on the storage; without it, the system cannot knows which file starts from where and ends where.

  2. Linux File Hierarchy Structure
    The Linux File Hierarchy Structure or the Filesystem Hierarchy Standard (FHS) defines the directory structure and directory contents in Unix-like operating systems.It is maintained by the Linux Foundation. In the FHS, all files and directories appear under the root directory /, even if they are stored on different physical or virtual devices. Some of these directories only exist on a particular system if certain subsystems, such as the X Window System, are installed. Most of these directories exist in all UNIX operating systems and are generally used in much the same way; however, the descriptions here are those used specifically for the FHS, and are not considered authoritative for platforms other than Linux.

  3. FUSE
    FUSE is a userspace filesystem framework. It consists of a kernel module (fuse.ko), a userspace library (libfuse.*) and a mount utility (fusermount). One of the most important features of FUSE is allowing secure, non-privileged mounts. This opens up new possibilities for the use of filesystems. A good example is sshfs: a secure network filesystem using the sftp protocol. Userspace filesystem: A filesystem in which data and metadata are provided by an ordinary userspace process. The filesystem can be accessed normally through the kernel interface.

  4. 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, Linked Allocation, Indexed Allocation. The main idea behind these methods is to provide: Efficient disk space utilization, Fast access to the file blocks.

  5. Directory Implementation
    The selection of directory-allocation and directory-management algorithms significantly affects the efficiency, performance, and reliability of the file system. Directory implementation algorithms are classified according to the data structure used. There are two algorithms that are commonly used: Linear List and Hash Table.

  6. Linear List
    The simplest method of implementing a directory is to use a linear list of file names with pointers to the data blocks. This method is simple to program but time-consuming to execute. To create a new file., we must first search the directory to be sure that no existing file has the same name. Then, we add a new entry at the end of the directory. To delete a file, we search the directory for the named file, then release the space allocated to it.

  7. Hash Table
    Another data structure used for a file directory is a hash table. With this method, a linear list stores the directory entries, but a hash data structure is also used. The hash table takes a value computed from the file name and returns a pointer to the file name in the linear list. Therefore, it can greatly decrease the directory search time. Insertion and deletion are also fairly straightforward, although some provision must be made for collisions—situations in which two file names hash to the same location.

  8. System Protection in Operating System
    Protection refers to a mechanism which controls the access of programs, processes, or users to the resources defined by a computer system. We can take protection as a helper to multi programming operating system, so that many users might safely share a common logical name space such as directory or files. Need of Protection: To prevent the access of unauthorized users and to ensure that each active programs or processes in the system uses resources only as the stated policy, To improve reliability by detecting latent errors.

  9. Multithreading in Operating System
    A thread is a path which is followed during a program’s execution. Majority of programs written now a days run as a single thread.Lets say, for example a program is not capable of reading keystrokes while making drawings. These tasks cannot be executed by the program at the same time. This problem can be solved through multitasking so that two or more tasks can be executed simultaneously. Multitasking is of two types: Processor based and thread based. Processor based multitasking is totally managed by the OS, however multitasking through multithreading can be controlled by the programmer to some extent. The concept of multi-threading needs proper understanding of these two terms – a process and a thread. A process is a program being executed. A process can be further divided into independent units known as threads. A thread is like a small light-weight process within a process. Or we can say a collection of threads is what is known as a process.

  10. Hyper-Threading
    Hyper-Threading is Intel’s term for simultaneous multithreading (SMT). This is a process where a CPU splits each of its physical cores into virtual cores, which are known as threads. For example, most of Intel’s CPUs with two cores use hyper-threading to provide four threads, and Intel CPUs with four cores use hyper-threading to provide eight threads. Hyper-Threading allows each core to do two things simultaneously. It increases CPU performance by improving the processor’s efficiency, thereby allowing you to run multiple demanding apps at the same time or use heavily-threaded apps without the PC lagging. Hyper-threading is currently available on Intel Core, Core vPro, Core M and Xeon processors. To use Hyper-Threading, you’ll also need an operating system (OS) and BIOS that supports Intel’s hyper-threading technology.