Retrofitting quality of service into a time-sharing operating system
John L. Bruno, José Carlos Brustoloni, Eran Gabber, Banu Özden, Abraham Silberschatz · 1999
Abstract Theoretical aspects of proportional share schedulers have received considerable attention recently. We contribute practical considerations on how to retrofit such schedulers into mainstream time-sharing systems. In particular, we propose /reserv, a uniform API for hierarchical proportional resource sharing. The central idea in /reserv is associating resource reservations with references to shared objects (and not with the objects themselves). We discuss in detail the implementation of /reserv and several proportional share schedulers on FreeBSD; the modified system is called Eclipse/BSD. Our experiments demonstrate that the proposed modifications allow selected applications to isolate their (or their clients') performance from CPU, disk, or network overloads caused by other applications. This capability is increasingly important for soft real-time, multimedia, Web, and distributed client-server applications. 1 Introduction On a typical system, multiple applications may contend for the same physical resources, such as CPU, memory, and disk or network bandwidth. An important goal for an operating system is therefore to schedule requests from different applications so that each application and the system as a whole perform well.