CCSM OverviewΒΆ

  • We use the word computation to refer to an activity that is meaningful to a human being which is performed by a computer and it is expected that the execution of computations is efficiently supported by computer systems.
  • In general people write programs to implement computations but in virtually all modern operating systems, the program written, while the most visible, is not a full implementation of the computation.
  • A system which attempts to maintain a computation oriented view of its activities must thus use an explicit representation of the set of computation components comprising that computation.
  • Computation components can be divided into active and passive types.
    • An active component in Linux is represented by a task structure at the kernel level. This component can be a kernel thread, a user level thread, or a user level process.
      • Some independently executing components are necessary for application program execution. At the kernel level, these include: hardIRQ’s, softIRQ’s, tasklets, and work queues. At the user level these include: X-server, DBUS system and per-session server for DBUS, inetd, sshd, named, etc.
    • A passive component can be any of a wide range of system level resources, including: sockets, pipes, named pipes, shared memory segments, etc.
  • A computation is thus represented by the set of all active and passive components used in the course of executing the program implementing computation.
  • Under the current KUSP framework we have two primary motivations for keeping track of sets of computation components, control and measurement of computations. Control of computations is accomplished under the Groups Scheduling framework, in which a computation is represented by one or more groups of components with associated Scheduling Decision Functions. Measurement is accomplished under the Datastreams framework, in which instrumentation points produce event records as threads within the system execute specific pieces of code. The set of event records can then be analyzed either online or offline to construct a view of computation behavior.
  • System level views of computational activity and control of sets of computations can be accomplished by composing computational level set representations into higher level sets.
  • CCSM exists to support basic set management of computation components and includes the vital capability of associating a name with each set. This naming support then makes various aspects of Group Scheduling and Datastream use much more effective and efficient.
  • The rest of this document first describes the CCSM API and then illustrates its use to accomplish various goals within the KUSP framework.

Previous topic

CCSM User Manual

Next topic

CCSM API

This Page