## 1. Overview

In the dynamic realm of operating systems, efficient CPU scheduling is paramount for optimizing system performance. At the heart of evaluating scheduling effectiveness lies the concept of turnaround time—a critical metric that measures the total time taken for a process to complete, from its arrival in the ready queue to its termination. Understanding and effectively computing turnaround time is central to designing and implementing CPU scheduling algorithms that enhance overall system efficiency.

**In this tutorial, we’ll discuss how to calculate the turnaround time**, exploring its definition, significance, calculation methods, and factors that impact turnaround time.

## 2. Turnaround Time (TAT)

Turnaround time is a fundamental metric for evaluating scheduling algorithms. **It is the measure of the elapsed time between the submission of a process to the system and the completion of its execution.** Hence, TAT covers the time a process spends waiting in the ready queue, its actual execution time by the CPU, and any additional time spent in the I/O operations. In essence, turnaround time encapsulates the entire life cycle of a process within the system.

The turnaround time is an important factor in the design of the scheduling algorithm of an operating system, reflecting the total duration a process takes from arrival to completion. One of the goals in OS design is to minimize turnaround. It holds paramount importance for the user experience, directly impacting system responsiveness.

**A shorter TAT indicates faster responsiveness, shorter waiting periods, and overall, a more agile system.** It is especially important in time-sharing and interactive systems, where users demand activities be completed quickly. Hence, understanding turnaround time is crucial for customising scheduling techniques to specific performance targets.

## 3. Key Concepts for Computing TAT

To accurately calculate turnaround time in CPU scheduling, it’s essential to grasp several key concepts:

- Arrival Time: This is the time at which a process enters the system and is assigned a position in the ready queue. One of the most important factors in deciding the scheduling order of processes is arrival time
- Process Burst Time: It is the amount of time required for the process to finish its execution on the CPU. It includes both the CPU time and the time for I/O operations
- Completion Time: This is the point in time when the process completes its execution and exits the system. It is useful for the computation of the turnaround time
- Wait Time: The total time a process spends waiting in the ready queue before it gets CPU time for execution. It is the difference between the turnaround time and the burst time

## 4. Calculating Turnaround Time

The fundamental formula for calculating turnaround time (TAT) is:

`TAT = CompletionTime - ArrivalTime`

Turnaround time is often confused with completion time. Turnaround time is simply the total time a process spends in the system, whereas completion time is the point in time when the process terminates and exits the system.

### 4.1. Illustrative Example

Consider a simple scenario with three processes arriving in the following order in a first-come, first-served algorithm:

Process |
Arrival Time |
Burst Time |

P1 | 0 | 6 |

P2 | 2 | 4 |

P3 | 4 | 8 |

Let’s use a simple Gantt chart to aid our calculation:

From the Gantt chart:

- completes at = 6
- completes at = 10
- completes at = 18

Hence, we can compute the turnaround time:

```
TAT_P1 = 6 - 0 = 6
TAT_P2 = 10 - 2 = 8
TAT_P3 = 18 - 4 = 14
Average_TAT = (6 + 8 + 14)/3 = 28/3 = 9.3
```

Alternatively, the turnaround time can be calculated using the formula:

`TAT = BurstTime + WaitTime`

As shown in the Gantt chart:

- arrives at = 0 and starts executing immediately. Hence, = 0
- arrives at = 2 and waits until =6 elapses to start executing. Hence, = 6 – 2 = 4
- arrives at = 4 and waits until =10 elapses. Hence = 10 – 4 = 6

Therefore, we can calculate the turnaround time using the alternative formula:

```
TAT_P1 = 6 + 0 = 6
TAT_P2 = 4 + 4 = 8
TAT_P3 = 8 + 6 = 14
Average_TAT = (6 + 8 + 14)/3 = 28/3 = 9.3
```

## 5. Factors Affecting Turnaround Time

Several factors could affect the turnaround time of a process. Some factors that directly impact turnaround time include burst time, arrival time, and the scheduling algorithm.

### 5.1. CPU Burst Time

One of the most important factors that directly influences turnaround time is the CPU burst time of a process. Processes with shorter CPU burst times typically result in quicker turnaround times, as they spend less time in the execution phase.

Designing efficient scheduling algorithms requires an understanding of CPU burst times. This is an essential factor for the deliberate placement of processes in the ready queue in some scheduling algorithms, such as the shortest job first which prioritizes processes with a shorter burst time.

### 5.2. Arrival Time of Processes

The timing of process arrivals plays a crucial role in determining their position in the ready queue, and subsequently impacts turnaround time. Processes arriving earlier may enjoy priority, while those arriving later may experience prolonged waiting periods.

The connection between arrival times and turnaround times emphasizes how important it is for scheduling algorithms to strike a balance between efficiency and fairness in order to handle both new and ongoing processes optimally.

### 5.3. Scheduling Algorithms

Turnaround time is greatly impacted by the scheduling algorithm chosen. Various algorithms employ different ways to select processes from the ready queue, including Round Robin, Shortest Job Next (SJN), and First-Come-First-Serve (FCFS). For example, SJN prioritises the shortest jobs first, while FCFS processes tasks in the order that they arrive. FCFS, for instance, processes tasks in the order of their arrival, while SJN prioritizes the shortest jobs first.

Every algorithm presents different trade-offs and factors that influence the scheduling of processes. Consequently, they influence the system’s overall turnaround time performance. In essence, the efficiency of the chosen algorithm is pivotal in determining how quickly processes can progress through the system.

## 6. Conclusion

In this article, we discussed how to compute turnaround time. Furthermore, we highlighted factors affecting the turnaround time of a process. Understanding turnaround time calculation is essential for the evaluation of CPU scheduling algorithm performance. It aids in the design of algorithms for optimizing resource utilization and ensuring fairness among competing processes.