错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Optimizing Round-Robin Scheduling Algorithm Performance in Real-Time Systems

  • Tarek Helmy

摘要

Process scheduling is one of the most important tasks that a successful operating system must perform. Over decades operating system designers have come up with multiple ways of achieving this task where each is tackling different perspectives to gain a fast response to processes, be fair to processes, minimize the average waiting and turnaround times and hence improve the system productivity. Round Robin (RR) is the widely used scheduling algorithm in resource allocation in a real-time environment. However, its performance degrades concerning context switching and waiting time. To enhance the performance, the context switching, waiting time and turnaround time need to be reduced which depends on the choice of an optimal time quantum. The objective of this paper is to optimize the RR scheduling algorithm to be fair to processes that are interrupted during their quantum time in the CPU, especially I/O bound processes. A variation of the RR scheduling algorithm is implemented such that a sort first will be executed based on the total used quantum time whereas processes with the lowest total used quantum time will be first. This was implemented using C# on three processors each running a variation of the RR algorithm which generated data to validate the proposed implementation's benefits. The implemented algorithm showed a slight improvement in milliseconds and was even smaller than this scale but in the CPU scale, it is considered significant especially when we have huge clusters. This improvement was attributed to most individual processes including I/O bound processes that are naturally not favored with the RR scheduling algorithm. Overall, the overhead of sorting a limited number of processes was comparable to RR scheduling with two queues. However, when it comes to individual processes the proposed implementation in this paper shows better fairness to processes than the pure RR scheduling with one queue and the RR scheduling with two queues.