// Copyright (c) 2005 DMTF. All rights reserved.
// Unix Process Priority Correction
// Add UmlPackagePath
// qualifier values to CIM Schema.
// ==================================================================
// CIM_Process
// ==================================================================
[Version ( "2.10.0" ),
UMLPackagePath ( "CIM::System::Processing" ),
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, Description (
"The scoping ComputerSystem\'s CreationClassName." ),
MaxLen ( 256 ),
Propagated ( "CIM_OperatingSystem.CSCreationClassName" )]
string CSCreationClassName;
[Key, Description ( "The scoping ComputerSystem\'s Name." ),
MaxLen ( 256 ),
Propagated ( "CIM_OperatingSystem.CSName" )]
string CSName;
[Key, Description (
"The scoping OperatingSystem\'s CreationClassName." ),
MaxLen ( 256 ),
Propagated ( "CIM_OperatingSystem.CreationClassName" )]
string OSCreationClassName;
[Key, Description ( "The scoping OperatingSystem\'s Name." ),
MaxLen ( 256 ),
Propagated ( "CIM_OperatingSystem.Name" )]
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;
};