os211

Kaysa’s Operation System 2021

Log GitHub Rank Key

Top 10 List of Week 07

1. Inter Process Communication (IPC)

From the website, I found the definition of Inter-Process Communication (aka. IPC) refers to a set of OS-supported mechanisms used for interaction (e.g. coordination or communication) among processes. This website tells you a lot about IPC, such as : Types of IPC (Message-based and Memory-based) along with the examples of those two, Explain the definition of Message-Passing IPC, Message Queue, Socket, Shared-Memory IPC, and also tells you a lot about the functions that can be used in IPC along with their function and what they do. I like this website because the explanation is easy to understand and there are illustrations that completes the explanation.

2. Shared Memory System in IPC

In this website they tell you about shared memory system in IPC, as we know that shared memory is an example of IPC types Memory-based. Shared memory system is one of the fundamental models of interprocess communication. In the shared memory system, the cooperating processes communicate with each other by establishing the shared memory region, in its address space. Shared memory model allows the fastest interprocess communication. This website also provide the explanation of how shared memory system work, the cooperating and interprocess communication, example of shared memory, and the advantages of shared memory. I like this websita because the explanation comes with the illustrations so, it’s easier to understand the explanation.

3. Process Synchronization: Critical Section Problem in OS

In the critical section, only a single process can be executed. Other processes, waiting to execute their critical section, need to wait until the current process completes its execution. Then there is the critical section problem refers to the problem of how to ensure that at most one process is executing its critical section at a given time. I like this website because it explains all about critical section, such as its rules, its program sections, and it explains the solution on how to solve the critical section problem with widely used methods, such as Peterson Solution, Synchronization Hardware, Mutex Locks, and Semaphore Solution. This website also tells you the code example of those solution.

4. Classical problems of Synchronization with Semaphore Solution

Classical problems are used to test newly-proposed synchronization schemes. These problems ara Bounded-buffer problem, Dining-Philosophers Problem, Readers and Writers Problem, and Sleeping Barber Problem. I like this website

5. Message Passing

Message passing model allows multiple processes to read and write data to the message queue without being connected to each other. This website also gives you the explanation of the advantages and disadvantages of message passing. I like this website because they give illustration along with the explanation.

6. Deadlocks

Deadlock is a situation that occurs in OS when any process enters a waiting state because another waiting process is holding the demanded resource. To prevent deadlock, the system checks each transaction before it is executed to make sure it does not lead to deadlock. There are conditions that can trigger deadlock so a deadlock occurs if the four Coffman conditions hold true. The four Coffman conditions are Mutual Exclusion, Hold and Wait, No Preemption, and Circular Wait. This website also tells you how to detect deadlock, prevent deadlock, and avoid deadlock. I like this website because it gives the explanation along with the illustration process, so it makes the explanation easier to understand.

7. Difference Between Deadlock and Starvation in OS

I found on the internet that sometimes it’s hard to differentiate deadlock and starvation.Deadlock and Starvation both are the conditions where the processes requesting for a resource has been delayed for a long. This website gives comparison chart between deadlock and starvation base on the basic definition, arising condition, resources, and prevention. It also gives you the summary explanation of deadlock and starvation. I like this websita because it gives you the comparison chart so it’s easier to compare and spot the differences between deadlock and starvation.

8. Deadlock Avoidance

Deadlock avoidance technique (method) helps to avoid deadlock to occur in the system.Deadlock Avoidance can be solved by two different algorithms, such as One instance of a resources type (To use a Resource Allocation Graph) and Several instance of a resources type (To use Banker’s Algorithm). I like this website because they gives short explanation with the process illustration that makes it easier to understand.

9. Semaphores

The semaphore is a variable that can hold only a non-negative Integer value, shared between all the threads, with operations wait and signal. Semaphores are mainly of two types in Operating system : Binary Semaphores and Counting Semaphores. In this website, it gives you the definition of wait and signal also the code example on how it works. There also the explanation of advantages and disadvantages of semaphores. I like this website because it gives you the code example along with the explanation about how the code works.

10. Mutex vs Semaphore

Semaphore is simply a variable that is non-negative and shared between threads. Meanwhile, mutex is a special type of binary semaphore which used for controlling access to the shared resource. This website gives comparison chart between semaphore and mutex base on the parameters, such as its mechanism, data type, modification, resource management, thread, ownership, types, operation, and resources occupancy. I like this website because it state the differences with the comparison table/chart so its easier to spot the differences. There also explanation about the advantages and disadvantages of mutex and semaphore.