Progress of a process Last Updated : 21 May, 2024 Comments Improve Suggest changes Like Article Like Report During the execution of a number of processes simultaneously, it might so happen that the order of execution of the statements in the critical section affects the final state of the values in the critical section. This is nothing but a race condition and gives rise to inconsistencies in the code. These are removed with the help of mutual exclusion, but there might still be a chance of starvation of other processes because of it. When this starvation extends to infinity, it leads to a deadlock. Hence, mutual exclusion alone cannot guarantee the simultaneous execution of processes without any problems - a second condition known as progress is required to ensure no deadlock occurs during such execution. A formal definition of progress is stated by Galvin as: "If no process is executing in its critical section and some processes wish to enter their critical sections, then only those processes that are not executing in their remainder section can participate in deciding which will enter its critical section next, and this selection cannot be postponed indefinitely." This is a lot of stuff to take in at once, so let's use an example to see how valid our statement is. Suppose in the clothes section of a departmental store, a boy A and a girl B want to use the changing room. Boy A decides to use the changing room first, but cannot come to the decision as to how many clothes to take inside with him. As a result, even though the changing room is empty, girl B (who has made up her decision as to how many clothes to try out) cannot enter the changing room as she is obstructed by boy A. In other words, boy A prevents girl B from using the changing room even though he doesn't need to use it. This is what the concept of progress was made to prevent. According to the main definition of progress, the only processes that can participate in the decision-making as to who can enter the critical section are those that are about to enter the critical section or are executing some code before entering the critical section. Processes that are in their reminder section, which is the section succeeding the critical section, are not allowed to participate in this decision-making process. The main job of progress is to ensure one process is executing in the critical section at any point in time (so that some work is always being done by the processor). This decision cannot be "postponed indefinitely" - in other words, it should take a limited amount of time to select which process should be allowed to enter the critical section. If this decision cannot be taken in a finite time, it leads to a deadlock. Comment More infoAdvertise with us Next Article Progress of a process A ArkadyutiBanerjee Follow Improve Article Tags : Operating Systems GATE CS Similar Reads Operations on Processes Process operations refer to the actions or activities performed on processes in an operating system. These operations include creating, terminating, suspending, resuming, and communicating between processes. Operations on processes are crucial for managing and controlling the execution of programs i 5 min read Process Scheduler: Job and Process States A process scheduler is a part of operating system that decides which process runs next on the CPU. It manages how all the processes get CPU time, especially when multiple processes are waiting to run. Since the CPU can only work on one process at a time (or a few if there are multiple cores), the sc 4 min read Difference between Program and Process In Computer Science, there are two fundamental terms in operating system: Program and Process. Program is a set of instructions written to perform a task, stored in memory. A process is the active execution of a program, using system resources like CPU and memory. In other words, a program is static 4 min read Different types of Processes in Process Table The process table is a data structure used by the operating system to keep track of all processes. It is the collection of Program control Blocks (PCBs) which contains information about each process, such as its ID (PID), current state (e.g., running, ready, waiting), CPU usage, memory allocation, a 4 min read Process in Operating System A process is a program in execution. For example, when we write a program in C or C++ and compile it, the compiler creates binary code. The original code and binary code are both programs. When we actually run the binary code, it becomes a process. A process is an 'active' entity instead of a progra 3 min read States of a Process in Operating Systems In an operating system, a process is a program that is being executed. During its execution, a process goes through different states. Understanding these states helps us see how the operating system manages processes, ensuring that the computer runs efficiently. Please refer Process in Operating Sys 11 min read Process Control Block in OS A Process Control Block (PCB) is used by the operating system to manage information about a process. The process control keeps track of crucial data needed to manage processes efficiently. A process control block (PCB) contains information about the process, i.e. registers, quantum, priority, etc. T 7 min read Difference between Process and Thread Process and threads are the basic components in OS. Process is a program under execution whereas a thread is part of process. Threads allows a program to perform multiple tasks simultaneously, like downloading a file while you browse a website or running animations while processing user input. A pro 7 min read Process Schedulers in Operating System A process is the instance of a computer program in execution. Scheduling is important in operating systems with multiprogramming as multiple processes might be eligible for running at a time.One of the key responsibilities of an Operating System (OS) is to decide which programs will execute on the C 7 min read Like