Home » Cooperating Process in Operating System

Cooperating Process in Operating System

by Online Tutorials Library

Cooperating Process in Operating System

In this article, you will learn about the cooperating process in the operating system and its various methods.

What is Cooperating Process?

There are various processes in a computer system, which can be either independent or cooperating processes that operate in the operating system. It is considered independent when any other processes operating on the system may not impact a process. Process-independent processes don’t share any data with other processes. On the other way, a collaborating process may be affected by any other process executing on the system. A cooperating process shares data with another.

Advantages of Cooperating Process in Operating System

There are various advantages of cooperating process in the operating system. Some advantages of the cooperating system are as follows:

1. Information Sharing

Cooperating processes can be used to share information between various processes. It could involve having access to the same files. A technique is necessary so that the processes may access the files concurrently.

2. Modularity

Modularity refers to the division of complex tasks into smaller subtasks. Different cooperating processes can complete these smaller subtasks. As a result, the required tasks are completed more quickly and efficiently.

3. Computation Speedup

Cooperating processes can be used to accomplish subtasks of a single task simultaneously. It improves computation speed by allowing the task to be accomplished faster. Although, it is only possible if the system contains several processing elements.

4. Convenience

There are multiple tasks that a user requires to perform, such as printing, compiling, editing, etc. It is more convenient if these activities may be managed through cooperating processes.

Concurrent execution of cooperating processes needs systems that enable processes to communicate and synchronize their actions.

Methods of Cooperating Process

Cooperating processes may coordinate with each other by sharing data or messages. The methods are given below:

1. Cooperation by sharing

The processes may cooperate by sharing data, including variables, memory, databases, etc. The critical section provides data integrity, and writing is mutually exclusive to avoid inconsistent data.

Cooperating Process in Operating System

Here, you see a diagram that shows cooperation by sharing. In this diagram, Process P1 and P2 may cooperate by using shared data like files, databases, variables, memory, etc.

2. Cooperation by Communication

The cooperating processes may cooperate by using messages. If every process waits for a message from another process to execute a task, it may cause a deadlock. If a process does not receive any messages, it may cause starvation.

Cooperating Process in Operating System

Here, you have seen a diagram that shows cooperation by communication. In this diagram, Process P1 and P2 may cooperate by using messages to communicate.

Example: Producer-Consumer Problem

Let’s take an example of two cooperating processes. It is referred to as the Producer-Consumer Problem, and it involves two processes: the producer and the consumer.

Producer Process

It generates information that the consumer would consume.

Consumer Process

It consumes the information that the producer produces.

Both processes run simultaneously. The customer waits if there is nothing to consume.

There is a producer and a consumer; the producer creates the item and stores it in a buffer while the consumer consumes it. For example, print software generates characters that the printer driver consumes. A compiler can generate assembly code, which an assembler can use. In addition, the assembler may produce object modules that are used by the loader.

Producer Process

Consumer Process

Where,

  • The producer uses the in variable to determine the next empty slot in the buffer.
  • The out variable is used by the consumer to determine where the item is located.
  • The counter is used by producers and consumers to determine the number of filled slots in the buffer.

Shared Resources

There are two shared resources:

  1. Buffer
  2. Counter

Inconsistency occurs when the producer and consumer are not executed on time. If both the producer and the consumer execute concurrently without any control, the value of a counter used by both will be incorrect. These processes share the following variables:

The variables in and out are both set to 0 by default. The shared buffer contains two logical pointers, in and out, which are implemented as a circular array. The In variables point to the buffer’s next free position, while the Out variables point to the buffer’s first full position. The buffer is empty when in = out, and it is filled when in+1 mod n = out.


You may also like