Traditional Operating System design has been primarily motivated by the need of optimizing system-wide efficiency factors defined in terms of average throughput or utilization. However, with the increase in processor speed and other resources, it is possible to provide better guaranty and predictability in the performance of individual applications, as perceived at the user level, without incurring significant loss in system-wide efficiency.
A QoS-sensitive application (e.g., a multimedia application such as video conferencing) requires guaranteed resource access to meet its timeliness. Therefore, a QoS-aware operating system must be equipped with a resource management framework that provides timely, guaranteed and enforced access to system resources. On the other hand, most applications do not necessarily require hard guarantees. They have large range of requirements along with their tolerable variations. In other words, they may have different quality levels (such as higher or lower quality of a video) across multiple factors or dimensions (such as frame rate, resolution), with a higher quality level requiring larger amount of resources and vice versa. Satisfaction of the end-user depends on the particular quality level the application operates at. Hence, along with a QoS-aware Operating system, we must also have a middleware that determines the resource allocations of these applications to satisfy the end-user in the “best” possible way.
In this talk, I first describe “Resource Kernel” (RK), a QoS-aware real-time Operating system infrastructure implemented on Linux. Next, I discuss a distributed middleware prototype based on a conceptual framework called “QoS-based Resource Allocation Model” (Q-RAM).