Abstract

Traditionally, scheduling algorithms have been implemented as open-loop control systems. This allows the operating system to make quick decisions on the order in which tasks should be scheduled without requiring complex calculations. It is very common for a task to be assigned a priority based on its anticipated performance, or based on general process characteristics (i.e., I/O bound versus CPU bound). The problem with this type of scheduling, and this type of control system in general, is that it is rigid and lacks the ability to adjust based on the actual performance of the system and its processes. This work is an examination of a simple closed-loop scheduling algorithm that dynamically adjusts the way tasks are scheduled based on the actual system and process performance. It is believed that by making this change to the scheduling algorithm, several important aspects of system performance will be affected. The system resources can be more efficiently utilized because scheduling parameters are dynamically adjusted to compensate for the current system load. The apparent responsiveness of the system, from the point of view of the applications, will increase because processes will be treated more fairly. Also, the overall system throughput will improve, because the closed-loop control system allows the scheduler to make better decisions on the order in which tasks should be run. The implementation of a closed-loop scheduler will result in an increase in the overhead of the scheduling algorithm; however, it is believed that this increase in overhead will be minimal. Extensive testing of the algorithm using a wide variety of applications will be used to demonstrate that the increase is indeed acceptable, given the other benefits of the algorithm. Due to the fact that the proposed scheduling algorithm is statistical in nature, it does not apply to hard real-time operating systems, but could be used to improve soft real-time operating systems, which have less stringent deadline requirements, and in general purpose time-sharing operating systems. Although this algorithm could have been implemented in any operating system, Linux was chosen as the base platform for this work due to its open source nature. Linux has the additional benefit of providing a well-known environment, and utilities that facilitate the measurements necessary to evaluate the performance of the algorithm. This work demonstrates that increased overhead required for a closed-loop system is reasonable, and that closed-loop scheduling can provide certain benefits over traditional open-loop schedulers. When compared to the original Linux kernel, the throughput performance degraded typically between 1.5% and 2% depending on the process mix; however, some of the changes to the base kernel can be used to explain this performance degradation. The system clock rate was increased from 100 Hz to 1000 Hz to obtain the timer granularity necessary for the closed-loop control system. Previous work measured a 3.1% increase in overhead when using a 1000 Hz system clock. Measurements were taken on a custom version of the original kernel that was built with a 1000 Hz system clock, which support that claim. When compared to the base kernel with a 1000 Hz system clock, the closed-loop scheduler produces better performance. This work also demonstrates the disadvantage of an open-loop scheduler. An application was developed with fixed length CPU bursts and periodic I/O requests to show that blindly giving the CPU to I/O bound processes and using epochs to age processes results in a significant number of unnecessary process switches that inevitably degrades the performance of the machine. The closed-loop scheduling algorithm balances the load across the processes more evenly, resulting in better performance under a high system load.

Library of Congress Subject Headings

Computer algorithms; Computer capacity--Planning

Publication Date

2004

Document Type

Thesis

Student Type

Graduate

Degree Name

Computer Engineering (MS)

Department, Program, or Center

Computer Engineering (KGCOE)

Advisor

Greg Semeraro

Advisor/Committee Member

Roy Czernikowski

Advisor/Committee Member

Juan Cockburn

Comments

Physical copy available from RIT's Wallace Library at QA76.9.A43 .R46 2004

Campus

RIT – Main Campus

Share

COinS