Performance Isolation: Sharing and Isolation in Shared-Memory Multiprocessors Ben Verhese et al Goal: Provide resource fairness to different tasks without sacrificing throughput Main points: * The resource principal is a software performance unit--conceptually similar to a resource container. * Each SPU maintains three resource levels for each SPU: entitled (fair share allocation), allowed (entitled + idle resources), used (resources in use). * A key factor in sharing policy is the revocation cost: how much it costs to transfer resources between SPUs. * Processor allocation: high priority processes are loaned idle CPUs - assume that there are fewer active SPUs than CPUs (?), so time-sharing is not a big issue. * Disk bandwidth is approximated by counting the sectors transfered in an interval, and decaying this count periodically. - Only modify C-SCAN if an SPU exceeds its fair share by some threshold. * Synchronization points can lead to priority inversion (inode lock, page table lock). Comments: * Shared resources and kernel resources are difficult to account for. This work creates two special SPUs: shared and kernel. Malicious/buggy processes could take advantage of this. * What prevents a malicious process from increasing its priority to gain CPUs (this probably isn't in their threat model). * No description of how the system finds idle pages. Thrashing is not considered here... This implies that each process's working set fits inside its fair share allocation.