Operating systems (OS) provide the interface for programs to access privileged hardware and decide which programs can access system resources, when they can access them and for how long. Within the OS kernel, these decisions are made during scheduling, workload placement and mapping, resource accounting and various kinds of application and VM introspection.