BCA / B.Tech 16 min read

Structure of a Concurrent System

Structure of a Concurrent System in Operating System:


A concurrent system is a type of system where multiple tasks or processes are executed at the same time. The main goal of a concurrent system is to use resources efficiently and increase processing speed. It can be organized in the form of multiple processes or threads that work together and use common resources. These systems are designed in such a way that different tasks can be executed at the same time, and work can be completed without waiting for any single resource.

The structure of a concurrent system is complex, but it is an integral part of any modern operating system. This system is capable of executing various tasks simultaneously in the form of processes and threads. Proper communication, coordination, resource sharing, and timely scheduling of processes are important. The correct use of a concurrent system improves processing speed and system efficiency, but appropriate measures are also necessary to avoid problems like deadlock and race conditions.

1. Structure of a Concurrent System:

To understand the structure of a concurrent system, we need to focus on the following important components and design aspects:
  • Processes: A process is an independent unit of execution, which is a part of a program and has its own set of resources (like memory, CPU time). In a concurrent system, multiple processes execute simultaneously and communicate with each other to complete their work. An operating system manages these processes and provides them with resources.
  • Threads: A thread is a small part of a process, also known as a lightweight process. It breaks down the execution of a process into smaller parts, so that parallel work can be done easily. Unlike processes, threads share the same memory space, which helps in communication and synchronization. Using threads makes the system more efficient and makes better use of CPU time.
  • Concurrency: Concurrency means that multiple processes or threads are working at the same time. Even if they are actually running on a single CPU, through the technique of concurrency, it appears that all tasks are happening at once. It depends on the operating system's planning and resource allocation method to decide which process or thread to run on the CPU and when.
  • Resource Sharing: In concurrent systems, multiple processes or threads can use the same resources such as memory, CPU, input/output devices, etc. To share resources, coordination is required between these processes to avoid problems like deadlock or race conditions. For this, synchronization methods like Mutex and Semaphore are used.
  • Communication: Communication is required between processes or threads in concurrent systems so that they can share information about each other's tasks. This communication is done through Inter-Process Communication (IPC), which uses various techniques such as Message Passing, Shared Memory, etc. IPC techniques determine the system structure and the way data is shared between processes.
  • Synchronization: Coordination between multiple processes or threads in a concurrent system is very necessary so that they can be executed in the correct order while working together and there is no conflict over any resource. For this, synchronization techniques like semaphores, mutexes, and monitors are used. These techniques ensure that only one process or thread can use a shared resource at a time.

2. Types of Concurrent Systems:

  • Cooperative Concurrency: In this, processes or threads themselves decide when to leave the CPU and give other threads or processes a chance. This is a voluntary process, where a process uses the CPU until it finishes or has to perform an I/O operation.
  • Preemptive Concurrency: In this, the operating system decides which process gets to use the CPU and when. Whenever the OS feels that a process should be removed from the CPU, it can stop it and give the CPU to another process. This process is called Context Switching.
  • Distributed Concurrency: A distributed concurrent system is one in which parallel processes run on different physical machines or servers and are designed to work together through a network. In this type of system, even though processes are running in different places, it seems to them that they are part of the same system.

3. Problems in Concurrent Systems:

  • Deadlock: Deadlock is a situation when two or more processes wait for each other's resources and ultimately no process can complete its work. This happens when processes get blocked among themselves and no process gets the CPU or other resources.
  • Race Condition: A race condition occurs when more than one process or thread tries to access the same resource at the same time and there is no proper coordination between them. This makes the results of the processes uncertain. To solve this, synchronization techniques like mutex and semaphore are used.
  • Resource Starvation: This problem occurs when a process does not get the necessary resources for a long time because other processes are continuously using those resources. This makes that process inactive and it does not get a chance to acquire the resource.

4. Design Strategies of Concurrent Systems:

  • Multiprocessing: This strategy allows processes to be executed by using multiple processors at the same time. It increases concurrency and executes large tasks faster by dividing them into smaller tasks.
  • Multithreading: Multithreading divides a process into small threads so that multiple threads can be executed at the same time. This leads to efficient use of resources and increases processing speed.
  • Time Sharing: This strategy gives processes CPU time in small chunks, so that all processes get an equal opportunity to use the CPU.

In this Chapter

Structure of a Concurrent System
Distributed System in Operating System
Real-Time System in Operating System
System Calls in Operating System
System Programs in Operating System
Structure of an Operating System
Layered Design of an Operating System Structure
UNIX in Operating System
Virtual Machine in Operating System
Kernel-Based Operating System
Process Concept in Operating System
Interacting Processes in Operating System
Threads in Operating System
Fundamentals of Scheduling in Operating System
Scheduling Criteria in Operating System
Long, Medium, and Short-Term Scheduling
Scheduling Algorithms in Operating System
Critical Region in Operating System
Critical Section in Operating System
Inter-process Communication (IPC) in Operating System
Monitors in Operating System
Semaphores in Operating System
Semaphore Implementation & Uses in Operating System
Logical and Physical Address in Operating System
Swapping in Operating System
Contiguous Allocation in Operating System
Segmentation in Operating System
Paging in Operating System
Virtual Memory using Segmentation in Operating System
Interprocess Communication Protocol in Operating System
Network Operating System
Design Issues in Distributed File System
Network Structure in Operating System
Structure of a Distributed System
File System and Coordination in Operating System
History of Linux in Operating System
Linux Commands
Programmer Interface & File Manipulation in Linux
Process Control in Linux
Kernel & Signals in Linux
File System in Linux
Blocks and Inodes in Linux
System Editors in Linux
Character Transliteration in Linux
The `ed` Line Editor in Linux
The `vi` Editor and Its Commands
Shell Scripting in Linux
Looping & Decision Making in Linux Shell Scripting
Variables & File Name Expansion in Linux
Arrays in Linux Shell Scripting
Subprograms (Functions) in Linux Shell Scripting
C Interface with Linux
Simple Shell Programs in Linux
BCA Part-1 | Operating Systems | Semester-I | MDSU Exam Paper 2023 (Held in 2024)
What is an Operating System (OS)
Operating System (OS) All Important Questions and Answers in English (MDSU)
BCA || Operating System 2025 Paper || MDSU Exam Paper
BCA | OS(Operating System) 2023 Paper | MDSU Exam Paper
Types of Operating Systems
Goals of an Operating System
Operations of an Operating System
Resource Allocation & Functions in an Operating System
Classes of Operating System
Batch Processing in Operating System
Multiprocessing in Operating System
Time-Sharing in Operating System