os211

Top 10 list Week 07

  1. Inter Process Communication, Shared IPC
    IPC or inter process communications is a set of mechanisms for interaction between processes. There are several types of IPC and two of them are message-based, and memory based. Shared memory IPC refers to when processes read and write to a shread region of a physical memory. The operating system implements shared memory among the processes by virtual to physical translation. The operating system maps physical pages of the memory to the virtual address spaces of both of the processes. I chose this topic because I wanted to know how shared memory is implemented. I chose this website because it provides diagrams for me to understand.

  2. Deadlock Avoidance
    Deadlock avoidance is a technique used to avoid deadlocks happening in the system. Deadlock avoidance can be achieved via two kinds of algorithms. One is resource allocation graph where it represents all states of the system graphically and has the information on the processes. Second is Banker’s algorithm which simulates the allocation of predetermined maximum number of resources. This is in my top 10 because I wanted to know how to prevent a deadlock. I chose this website because it is easy to understand and uses a simple language with illustrations.

  3. Semaphores
    Semaphores are integer variables used to solve critical section problems using wait and signal for process synchronization. The wait operation decrements the value of its parameter if it is positive. The signal operation increments the value of its parameter. Two types of semaphores are counting and binary. I chose this for my top 10 because I wanted to know what semaphores are and why they are used. I chose this website because it is very straight-forward and easy to understand.

  4. What is Process Synchronization?
    Process Synchronization is used to handle problems that arise when multiple processes are being executed. It coordinates the execution of processes so that each process should have different shared data and resources and no two or more processes would access the same shared resources. It is needed when multiple processes run together. The race condition happens when multiple processes are executing the same code and are accessing the same resources and the outcome depends on the order of access. I chose this topic for my top 10 because I wanted to know when process synchronization would be necessary. I chose this website for my top 10 because it is easy to understand and presents the theories in bullet points.

  5. Resource Allocation Graph
    RAG explains the states of a system with its processes and resources. These include the types of resources, quantity of resources, allocation of resources and the request of processes. An advantage of using RAG is being able to see a deadlock easily and directly by looking at the RAG. Two ways to present the processes are with process vertex and resource vertex. I chose this topic for my top 10 because I wanted to know how to present resource allocation with a graph instead of a table like banker’s algorithm. I chose this website because the language is simple and the way that it is presented makes it easy to understand.

  6. Critical Section Problem
    The critical section problem is a kind of implementation that is used when multiple processes need to cooperate when sharing a common resource. There are three main properties to be considered to avoid inconsistencies. First is mutual exclusion, where only one process can execute the critical section at a time. Second is progress, where blocking another process from entering its critical section is discouraged, and bounded waiting where a process has to wait to enter its critical section. I chose this in my top 10 because I wanted to know more about the critical section problem. I chose this website because I wanted to know how it happens.

  7. Banker’s Algorithm
    Banker’s algorithm is used for deadlock avoidance and detection. It works by analyzing currenty allocated resources and what resources are required later on. It consists of two algorithms, request-resource and safety algorithm. It uses many types of data structures like Max, Allocation, Available. I chose this topic for my top 10 because I wanted to know how Banker’s Algorithm can help deadlock avoidance. I chose this website because it is straight forward and easy to understand.

  8. Readers Writers Problem
    Readers Writers Problem is a type of a synchronization problem. The problem has two processes which are read and write. Any quantity of readers can read from a shared resource at the same time. However, only one writer can write to that shared resource at the same time. The priority is always the reader and therefore the writer needs to wait until no one is reading the resource. Using mutex and semaphore we can use variables to maintain the number of readers. I chose this topic in my top 10 because it is interesting and I have never heard of it before plus it is a great analogy. I chose this website because it explains very clearly and provides an actual code.

  9. Deadlock Recovery
    There are several ways to recover from a deadlock. One is by terminating the process. This could be done by aborting all deadlocked processes or abort a process at a time until deadlock is over with. The other way is by resource preemption, giving resources to other processes. I chose this topic in my top 10 because aside from knowing what deadlock is and when it occurs I wanted to know how to recover from it as well. I chose this website because it is very straight-forward.

  10. Memory Mapping
    File mapping maps the area of the virtual memory of a process to the files. Anonymous mapping is mapping the area of a virtual memory process without being backed by files. Private Mapping modifies contents in a way that is not visible to other processes and won’t be carried to any underlying files. Shared mapping modifies contents in a way that the contents are visible to ther processes and carries them to underlying files. I chose this topic for my top 10 because I wanted to know what memory mapping is and how it works. I chose this website because it is straight forward and provides a code.