// Copyright (c) 2005 DMTF. All rights reserved.
// Unix Process Priority
// Correction
// Add UmlPackagePath
// qualifier values to CIM Schema.
// ==================================================================
// CIM_Process
// ==================================================================
[UMLPackagePath ( "CIM::System::Processing" ), Version ( "2.10.0" ),
Description (
"Each instance of the CIM_Process class represents a single "
"instance of a running program. A user of the OperatingSystem "
"will typically see a Process as an application or task. Within "
"an OperatingSystem, a Process is defined by a workspace of "
"memory resources and environmental settings that are allocated "
"to it. On a multitasking System, this workspace prevents "
"intrusion of resources by other Processes. Additionally, a "
"Process can execute as multiple Threads, all which run within "
"the same workspace.")]
class CIM_Process : CIM_EnabledLogicalElement {
[Key, Propagated ( "CIM_OperatingSystem.CSCreationClassName" ),
Description (
"The scoping ComputerSystem's CreationClassName."),
MaxLen ( 256 )]
string CSCreationClassName;
[Key, Propagated ( "CIM_OperatingSystem.CSName" ), Description (
"The scoping ComputerSystem's Name."),
MaxLen ( 256 )]
string CSName;
[Key, Propagated ( "CIM_OperatingSystem.CreationClassName" ),
Description (
"The scoping OperatingSystem's CreationClassName."),
MaxLen ( 256 )]
string OSCreationClassName;
[Key, Propagated ( "CIM_OperatingSystem.Name" ), Description (
"The scoping OperatingSystem's Name."),
MaxLen ( 256 )]
string OSName;
[Key, Description (
"CreationClassName indicates the name of the class or the "
"subclass used in the creation of an instance. When used "
"with the other key properties of this class, this property "
"allows all instances of this class and its subclasses to be "
"uniquely identified."),
MaxLen ( 256 )]
string CreationClassName;
[Key, Description (
"A string used to identify the Process. A Process ID is a "
"kind of Process Handle."),
MaxLen ( 256 ),
MappingStrings { "MIF.DMTF|Process Information|001.1" }]
string Handle;
[Override ( "Name" ), Description (
"The name of the process."),
MappingStrings { "MIF.DMTF|Process Information|001.6" }]
string Name;
[Description (
"Priority indicates the urgency or importance of execution "
"of a Process. Lower values reflect more favorable process "
"scheduling. If a priority is not defined for a Process, a "
"value of 0 should be used."),
MappingStrings { "MIF.DMTF|Process Information|001.10" }]
uint32 Priority;
[Description (
"Indicates the current operating condition of the Process. "
"Values include ready (2), running (3), and blocked (4), "
"among others. The majority of the enumerated values are "
"obvious. However, a few require additional explanation: \n"
"7 (Terminated) describes that a process has naturally "
"completed \n"
"8 (Stopped) describes that a process has been prematurely "
"'stopped' by a user or other request \n"
"10 (Ready but Relinquished Processor) describes that a "
"process is in the Ready state, but has voluntarily "
"relinquished execution time to other processes. For "
"example, this state may indicate a problem when the "
"relinquishing process is not handling items on its queues. "
"If these semantics cannot be detected, the process should "
"report its state as 2 (\"Ready\"). \n"
"11 (Hung) indicates that a process is not responding and "
"should therefore not be given further execution time."),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11" },
Values { "Unknown", "Other", "Ready", "Running", "Blocked",
"Suspended Blocked", "Suspended Ready", "Terminated",
"Stopped", "Growing", "Ready But Relinquished Processor",
"Hung" },
MappingStrings { "MIF.DMTF|Process Information|001.9",
"MIF.UNIX|Process Information|13.9" }]
uint16 ExecutionState;
[Description (
"A string describing the state - used when the instance's "
"ExecutionState property is set to 1 (\"Other\"). Other "
"ExecutionDescription should be set to NULL when the "
"Execution State property is any value other than 1.")]
string OtherExecutionDescription;
[Description (
"Time that the Process began executing.")]
datetime CreationDate;
[Description (
"Time that the Process was stopped or terminated.")]
datetime TerminationDate;
[Description (
"Time in kernel mode, in milliseconds. If this information "
"is not available, or if the operating system does not "
"distinguish between time in kernel and in user mode, a "
"value of 0 should be used."),
Units ( "MilliSeconds" ),
MappingStrings { "MIF.DMTF|Process Information|001.13" }]
uint64 KernelModeTime;
[Description (
"Time in user mode, in milliseconds. If this information is "
"not available, a value of 0 should be used. If the "
"operating system does not distinguish between time in "
"kernel mode and user mode, the time should be returned in "
"this property."),
Units ( "MilliSeconds" ),
MappingStrings { "MIF.DMTF|Process Information|001.14" }]
uint64 UserModeTime;
[Description (
"The amount of memory in bytes that a Process needs to "
"execute efficiently, for an OperatingSystem that uses "
"page-based memory management. If an insufficient amount of "
"memory is available (< working set size), thrashing will "
"occur. If this information is not known, NULL or 0 should "
"be entered. If this data is provided, it could be monitored "
"to understand a Process' changing memory requirements as "
"execution proceeds."),
Units ( "Bytes" ), Gauge]
uint64 WorkingSetSize;
};