Whats different about multiprocessor software?
Quality-of-service (QoS) for processes means that a process will be reliably scheduled periodically with a given amount of computation time. Scheduling techniques, such as rate monotonic scheduling (RMS), inherently provide process-level QoS; if we use some other scheduling methods or mix scheduling policies, we must ensure that the processes that need quality-of-service obtain the level of service they need. Quality-of-service can be modeled using three basic concepts. First, a contract specifies the resources that will be provided. The client may propose a set of terms, such as the amount of bandwidth and rate of missed packets, but the server may counterpropose a different set of terms based on its available resources. A protocol manages the establishment of the contract and its implementation. Third, a scheduler implements the terms of the contract, setting the sizes of buffers, managing bandwidth, and so on. Assuming that we run a QoS-friendly scheduling policy, such as RMS, we mu