Process creation and management Flashcards
There are two basic operations that can be performed on a process:
creation and deletion
A process has several stages that it passes through from beginning to end. There must be a minimum of five states.
Even though during execution, the process could be in one of these states, the names of the states are not standardized. Each process goes through several stages throughout its life cycle.
state of process:
New (create)
In this step, the process is about to be created but not yet created. It is the program that is present in secondary memory that will be picked up by OS to create the process.
state of process:
Ready
New -> Ready to run. After the creation of a process, the process enters the ready state i.e. the process is loaded into the main memory. The process here is ready to run and is waiting to get the CPU time for its execution. Processes that are ready for execution by the CPU are maintained in a queue called ready queue for ready processes.
state of process:
Run
The process is chosen from the ready queue by the CPU for execution and the instructions within the process are executed by any one of the available CPU cores.
state of process:
Blocked or Wait
Whenever the process requests access to I/O or needs input from the user or needs access to a critical region(the lock for which is already acquired) it enters the blocked or waits for the state. The process continues to wait in the main memory and does not require CPU. Once the I/O operation is completed the process goes to the ready state.
state of process:
Terminated or COmpleted
Process is killed as well as PCB is deleted. The resources allocated to the process will be released or deallocated.
state of process:
Suspend Ready
Process that was initially in the ready state but was swapped out of main memory(refer to Virtual Memory topic) and placed onto external storage by the scheduler is said to be in suspend ready state. The process will transition back to a ready state whenever the process is again brought onto the main memory.
state of process:
Suspend wait or suspend blocked
Similar to suspend ready but uses the process which was performing I/O operation and lack of main memory caused them to move to secondary memory. When work is finished it may go to suspend ready.
state of process:
CPU and I/O Bound Processes
If the process is intensive in terms of CPU operations, then it is called CPU bound process. Similarly, If the process is intensive in terms of I/O operations then it is called I/O bound process.
How does a process move between different states in an operating system?
A process can move between different states in an operating system based on its execution status and resource availability.
New to ready
When a process is created, it is in a new state. It moves to the ready state when the operating system has allocated resources to it and it is ready to be executed.
Ready to running
When the CPU becomes available, the operating system selects a process from the ready queue depending on various scheduling algorithms and moves it to the running state.
Running to blocked
When a process needs to wait for an event to occur (I/O operation or system call), it moves to the blocked state. For example, if a process needs to wait for user input, it moves to the blocked state until the user provides the input.
Running to ready
When a running process is preempted by the operating system, it moves to the ready state. For example, if a higher-priority process becomes ready, the operating system may preempt the running process and move it to the ready state.
Blocked to ready
When the event a blocked process was waiting for occurs, the process moves to the ready state. For example, if a process was waiting for user input and the input is provided, it moves to the ready state.
Running to terminated
When a process completes its execution or is terminated by the operating system, it moves to the terminated state.
Scheduler:
long-term- performance
Decides how many processes should be made to stay in the ready state. This decides the degree of multiprogramming. Once a decision is taken it lasts for a long time which also indicates that it runs infrequently. Hence it is called a long-term scheduler.
Scheduler:
short-term- context switching time
Short-term scheduler will decide which process is to be executed next and then it will call the dispatcher. A dispatcher is a software that moves the process from ready to run and vice versa. In other words, it is context switching. It runs frequently. Short-term scheduler is also called CPU scheduler.
Scheduler:
Medium-term- swapping time
Suspension decision is taken by the medium-term scheduler. The medium-term scheduler is used for swapping which is moving the process from main memory to secondary and vice versa. The swapping is done to reduce degree of multiprogramming.
multiprogramming:
Preemption
Process is forcefully removed from CPU. Pre-emotion is also called time sharing or multitasking.
multiprogramming:
Non-preemption
Processes are not removed until they complete the execution. Once control is given to the CPU for a process execution, till the CPU releases the control by itself, control cannot be taken back forcibly from the CPU.
degree of multiprogramming
The number of processes that can reside in the ready state at maximum decides the degree of multiprogramming, e.g., if the degree of programming = 100, this means 100 processes can reside in the ready state at maximum.
Operation on the process:
Creation
The process will be ready once it has been created, enter the ready queue (main memory), and be prepared for execution.
Operation on the process:
Planning
The operating system picks one process to begin executing from among the numerous processes that are currently in the ready queue. Scheduling is the process of choosing the next process to run.
Operation on the process:
Application
The processor begins running the process as soon as it is scheduled to run. During execution, a process may become blocked or wait, at which point the processor switches to executing the other processes.
Operation on the process:
Killing or Deletion
The OS will terminate the process once its purpose has been fulfilled. The process’s context will be over there.
Operation on the process:
Blocking
When a process is waiting for an event or resource, it is blocked. The operating system will place it in a blocked state, and it will not be able to execute until the event or resource becomes available.
Operation on the process:
Resumption
When the event or resource that caused a process to block becomes available, the process is removed from the blocked state and added back to the ready queue.
Operation on the process:
Context Switching
When the operating system switches from executing one process to another, it must save the current process’s context and load the context of the next process to execute. This is known as context switching.
Operation on the process:
Inter-process communication
Processes may need to communicate with each other to share data or coordinate actions. The operating system provides mechanisms for inter-process communication, such as shared memory, message passing, and synchronization primitives.
Operation on the process:
Process Synchronization
Multiple processes may need to access a shared resource or critical section of code simultaneously. The operating system provides synchronization mechanisms to ensure that only one process can access the resource or critical section at a time.
Operation on the process:
Process status
Processes may be in one of several states, including ready, running, waiting, and terminated. The operating system manages the process states and transitions between them.
A process can move from the running state to the ____ ______ if it needs to wait for a resource to become available.
A process can move from the _____ _____ to the ready state when the resource it was waiting for becomes available.
waiting state
A process can move from the ____ ____ to the running state when it is selected by the operating system for execution.
The scheduling algorithm used by the operating system determines which process is selected to execute from the ____ _____
ready state
The operating system may also move a process from the ____ _____ to the ready state to allow other processes to execute.
A process can move from the ____ _____ to the terminated state when it completes its execution.
running state
A process can move from the waiting state directly to the terminated state if it is aborted or killed by the operating system or another process.
A process can go through ready, running and waiting state any number of times in its lifecycle but new and terminated happens only once.
The process state includes information about the program counter, CPU registers, memory allocation, and other resources used by the process.
The operating system maintains a process control block (PCB) for each process, which contains information about the process state, priority, scheduling information, and other process-related data.
The process state diagram is used to represent the transitions between different states of a process and is an essential concept in process management in operating systems.
While creating a process the operating system performs several operations. To identify the processes, it assigns a process identification number (PID) to each process. As the operating system supports multi-programming, it needs to keep track of all the processes.
For this task, the process control block (PCB) is used to track the process’s execution status. Each block of memory contains information about the process state, program counter, stack pointer, status of opened files, scheduling algorithms, etc. All this information is required and must be saved when the process is switched from one state to another. When the process makes a transition from one state to another, the operating system must update information in the process’s PCB. A process control block (PCB) contains information about the process, i.e. registers, quantum, priority, etc. The process table is an array of PCBs, that means logically contains a PCB for all of the current processes in the system.
Process Control Block:
Pointer
Process State
Process number
Program counter
Registers
Memory Limits
Open File Lists
Misc. Accounting and status data
Pointer – It is a stack pointer which is required to be saved when the process is switched from one state to another to retain the current position of the process.
Process state – It stores the respective state of the process.
Process number – Every process is assigned with a unique id known as process ID or PID which stores the process identifier.
Program counter – It stores the counter which contains the address of the next instruction that is to be executed for the process.
Register – These are the CPU registers which includes: accumulator, base, registers and general purpose registers.
Memory limits – This field contains the information about memory management system used by operating system. This may include the page tables, segment tables etc.
Open files list – This information includes the list of files opened for a process.
Interrupt handling
The PCB also contains information about the interrupts that a process may have generated and how they were handled by the operating system.
context switching
The process of switching from one process to another is called context switching. The PCB plays a crucial role in context switching by saving the state of the current process and restoring the state of the next process.
Real-time systems
Real-time operating systems may require additional information in the PCB, such as deadlines and priorities, to ensure that time-critical processes are executed in a timely manner.
Virtual memory management
The PCB may contain information about a process’s virtual memory management, such as page tables and page fault handling.
Inter-process communication
The PCB can be used to facilitate inter-process communication by storing information about shared resources and communication channels between processes.