1 tony 1.1 // ===================================================================
2 // Title: System Processing 2.8
3 // Filename: System28_Processing.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
7 // ===================================================================
8 // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description: The System Model defines system related management
45 // concepts. This file defines the specific concepts to
46 // manage processes, threads, and jobs.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 Preliminary
53 // CR1204 - Removal of Experimental Qualifier for System.
54 //
55 // Change Log for v2.8 Preliminary
56 // CR933 - ExecutionState additions
57 // CR989 - Remove the Abstract qualifier from ScheduledJob,
58 // clarify the class and several property Descriptions,
59 // and fix the class and a property name
60 // CR1016 - Job Updates
61 // CR1048 - Add JobQueue & QueueStatisticalData
62 // CR1081 - Move CIM_Job & Concrete to Core
63 // CR1128 - Addition of HostedDependency
64 tony 1.1 // CR1135 - Job Recovery Properties and the RecoveryJob association
65 // CR1137 - Change NumberOnQueue property (to two new properties)
66 // in QueueStatisticalData and add MaxJobCPUTime to
67 // JobQueue
68 //
69 // Change Log for v2.7 Final
70 // CR988 - Update description and change subclassing of JobDestination
71 // CR994 - Update the description of InstanceID
72 // CR989 - Updates to the description and name of ScheduledJob
73 // CR969 - Remove the experimental qualifier
74 // - Remove JobScheduleSettingData so it can remain experimental
75 // in 2.8.
76 //
77 // Change Log for v2.7
78 // CR757 - Change the subclassing of Process, Thread and Job from
79 // LogicalElement to EnabledLogicalElement
80 // CR767 - Add the Compostion qualifer to OSProcess and ProcessThread
81 // CR768 - Add ScheduledJob
82 // - Update class description and all property descriptions of
83 // Job, and Add a new property ScheduledStartTime to Job
84 // - Add OwningJobElement
85 tony 1.1 // - Add AffectedJobElement
86 // - Add ConcreteJob
87 // - Add ProcessOfJob
88 // CR875 - Clarify description of Process .KernelModeTime and
89 // .UserModeTime
90 // ==================================================================
91
92 #pragma locale ("en_US")
93
94
95 // ===================================================================
96 // Process
97 // ===================================================================
98 [Version ( "2.7.0" ), Description (
99 "Each instance of the CIM_Process class represents a single "
100 "instance of a running program. A user of the OperatingSystem "
101 "will typically see a Process as an application or task. Within "
102 "an OperatingSystem, a Process is defined by a workspace of "
103 "memory resources and environmental settings that are allocated "
104 "to it. On a multitasking System, this workspace prevents "
105 "intrusion of resources by other Processes. Additionally, a "
106 tony 1.1 "Process can execute as multiple Threads, all which run within "
107 "the same workspace.")]
108 class CIM_Process : CIM_EnabledLogicalElement {
109
110 [Key, Propagated ( "CIM_OperatingSystem.CSCreationClassName" ),
111 Description (
112 "The scoping ComputerSystem's CreationClassName."),
113 MaxLen ( 256 )]
114 string CSCreationClassName;
115
116 [Key, Propagated ( "CIM_OperatingSystem.CSName" ), Description (
117 "The scoping ComputerSystem's Name."),
118 MaxLen ( 256 )]
119 string CSName;
120
121 [Key, Propagated ( "CIM_OperatingSystem.CreationClassName" ),
122 Description (
123 "The scoping OperatingSystem's CreationClassName."),
124 MaxLen ( 256 )]
125 string OSCreationClassName;
126
127 tony 1.1 [Key, Propagated ( "CIM_OperatingSystem.Name" ), Description (
128 "The scoping OperatingSystem's Name."),
129 MaxLen ( 256 )]
130 string OSName;
131
132 [Key, Description (
133 "CreationClassName indicates the name of the class or the "
134 "subclass used in the creation of an instance. When used "
135 "with the other key properties of this class, this property "
136 "allows all instances of this class and its subclasses to be "
137 "uniquely identified."),
138 MaxLen ( 256 )]
139 string CreationClassName;
140
141 [Key, Description (
142 "A string used to identify the Process. A Process ID is a "
143 "kind of Process Handle."),
144 MaxLen ( 256 ),
145 MappingStrings { "MIF.DMTF|Process Information|001.1" }]
146 string Handle;
147
148 tony 1.1 [Override ( "Name" ), Description (
149 "The name of the process."),
150 MappingStrings { "MIF.DMTF|Process Information|001.6" }]
151 string Name;
152
153 [Description (
154 "Priority indicates the urgency or importance of execution "
155 "of a Process. If a priority is not defined for a Process, a "
156 "value of 0 should be used."),
157 MappingStrings { "MIF.DMTF|Process Information|001.10" }]
158 uint32 Priority;
159
160 [Description (
161 "Indicates the current operating condition of the Process. "
162 "Values include ready (2), running (3), and blocked (4), "
163 "among others. The majority of the enumerated values are "
164 "obvious. However, a few require additional explanation: \n"
165 "7 (Terminated) describes that a process has naturally "
166 "completed \n"
167 "8 (Stopped) describes that a process has been prematurely "
168 "'stopped' by a user or other request \n"
169 tony 1.1 "10 (Ready but Relinquished Processor) describes that a "
170 "process is in the Ready state, but has voluntarily "
171 "relinquished execution time to other processes. For "
172 "example, this state may indicate a problem when the "
173 "relinquishing process is not handling items on its queues. "
174 "If these semantics cannot be detected, the process should "
175 "report its state as 2 (\"Ready\"). \n"
176 "11 (Hung) indicates that a process is not responding and "
177 "should therefore not be given further execution time."),
178 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
179 "10", "11" },
180 Values { "Unknown", "Other", "Ready", "Running", "Blocked",
181 "Suspended Blocked", "Suspended Ready", "Terminated",
182 "Stopped", "Growing", "Ready But Relinquished Processor",
183 "Hung" },
184 MappingStrings { "MIF.DMTF|Process Information|001.9",
185 "MIF.UNIX|Process Information|13.9" }]
186 uint16 ExecutionState;
187
188 [Description (
189 "A string describing the state - used when the instance's "
190 tony 1.1 "ExecutionState property is set to 1 (\"Other\"). Other "
191 "ExecutionDescription should be set to NULL when the "
192 "Execution State property is any value other than 1.")]
193 string OtherExecutionDescription;
194
195 [Description (
196 "Time that the Process began executing.")]
197 datetime CreationDate;
198
199 [Description (
200 "Time that the Process was stopped or terminated.")]
201 datetime TerminationDate;
202
203 [Description (
204 "Time in kernel mode, in milliseconds. If this information "
205 "is not available, or if the operating system does not "
206 "distinguish between time in kernel and in user mode, a "
207 "value of 0 should be used."),
208 Units ( "MilliSeconds" ),
209 MappingStrings { "MIF.DMTF|Process Information|001.13" }]
210 uint64 KernelModeTime;
211 tony 1.1
212 [Description (
213 "Time in user mode, in milliseconds. If this information is "
214 "not available, a value of 0 should be used. If the "
215 "operating system does not distinguish between time in "
216 "kernel mode and user mode, the time should be returned in "
217 "this property."),
218 Units ( "MilliSeconds" ),
219 MappingStrings { "MIF.DMTF|Process Information|001.14" }]
220 uint64 UserModeTime;
221
222 [Description (
223 "The amount of memory in bytes that a Process needs to "
224 "execute efficiently, for an OperatingSystem that uses "
225 "page-based memory management. If an insufficient amount of "
226 "memory is available (< working set size), thrashing will "
227 "occur. If this information is not known, NULL or 0 should "
228 "be entered. If this data is provided, it could be monitored "
229 "to understand a Process' changing memory requirements as "
230 "execution proceeds."),
231 Units ( "Bytes" ), Gauge]
232 tony 1.1 uint64 WorkingSetSize;
233 };
234
235
236 // ===================================================================
237 // OSProcess
238 // ===================================================================
239 [Association, Aggregation, Composition, Version ( "2.7.0" ),
240 Description (
241 "A link between the OperatingSystem and Process(es) running in "
242 "the context of this OperatingSystem.")]
243 class CIM_OSProcess : CIM_Component {
244
245 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
246 Description (
247 "The OperatingSystem.")]
248 CIM_OperatingSystem REF GroupComponent;
249
250 [Override ( "PartComponent" ), Weak, Description (
251 "The Process running in the context of the OperatingSystem.")]
252 CIM_Process REF PartComponent;
253 tony 1.1 };
254
255
256 // ===================================================================
257 // ProcessExecutable
258 // ===================================================================
259 [Association, Version ( "2.6.0" ), Description (
260 "A link between a Process and a DataFile indicating that the "
261 "File participates in the execution of the Process.")]
262 class CIM_ProcessExecutable : CIM_Dependency {
263
264 [Override ( "Antecedent" ), Description (
265 "The DataFile participating in the execution of the Process.")]
266 CIM_DataFile REF Antecedent;
267
268 [Override ( "Dependent" ), Description (
269 "The Process.")]
270 CIM_Process REF Dependent;
271 };
272
273
274 tony 1.1 // ==================================================================
275 // ServiceProcess
276 // ==================================================================
277 [Association, Version ( "2.6.0" ), Description (
278 "CIM_ServiceProcess is an association used to establish "
279 "relationships between Services and Processes. It is used to "
280 "indicate if a Service is running in a particular Process. It "
281 "is also used to indicate, via the ExecutionType property, if "
282 "the Service started and is wholly responsible for the Process, "
283 "or if the Service is running in an existing Process, perhaps "
284 "with other unrelated Services, which is owned or started by a "
285 "different entity. This association relates a Service with an "
286 "externally visible system signature.")]
287 class CIM_ServiceProcess {
288
289 [Key, Description (
290 "The Service whose Process is described by this association.")]
291 CIM_Service REF Service;
292
293 [Key, Description (
294 "The Process which represents or hosts the executing "
295 tony 1.1 "Service.")]
296 CIM_Process REF Process;
297
298 [Description (
299 "Enumeration indicating how the Service runs in the context "
300 "of, or owns the Process. \"Unknown\" indicates that the "
301 "ExecutionType is not known. \"Other\" indicates that the "
302 "ExecutionType does not match any of the values in the "
303 "ExecutionType enumeration. \"Executes in Existing Process\" "
304 "indicates that the Service is hosted in a Process that "
305 "already exists in the system. The lifecycle of the Service "
306 "is separate from that of the Process. \"Exeutes as "
307 "Independent Process\" indicates that the Service is "
308 "responsible for the lifecycle of the Process. When the "
309 "Service is started, the Process is created. For example, "
310 "ServletEngines can run \"InProcess\" within the existing "
311 "Apache processes or \"OutOfProcess\" in its own servlet "
312 "engine process. In this case the Apache process would "
313 "communicate with the servlet engine process based on the "
314 "content of the request. The association may be many to "
315 "many."),
316 tony 1.1 ValueMap { "0", "1", "2", "3" },
317 Values { "Unknown", "Other", "Executes in Existing Process",
318 "Executes as Independent Process" }]
319 uint16 ExecutionType;
320 };
321
322 // ===================================================================
323 // Thread
324 // ===================================================================
325 [Version ( "2.7.0" ), Description (
326 "Threads represent the ability to execute units of a Process or "
327 "task in parallel. A Process can have many Threads, each of "
328 "which is weak to the Process.")]
329 class CIM_Thread : CIM_EnabledLogicalElement {
330
331 [Key, Propagated ( "CIM_Process.CSCreationClassName" ),
332 Description (
333 "The scoping ComputerSystem's CreationClassName."),
334 MaxLen ( 256 )]
335 string CSCreationClassName;
336
337 tony 1.1 [Key, Propagated ( "CIM_Process.CSName" ), Description (
338 "The scoping ComputerSystem's Name."),
339 MaxLen ( 256 )]
340 string CSName;
341
342 [Key, Propagated ( "CIM_Process.OSCreationClassName" ),
343 Description (
344 "The scoping OperatingSystem's CreationClassName."),
345 MaxLen ( 256 )]
346 string OSCreationClassName;
347
348 [Key, Propagated ( "CIM_Process.OSName" ), Description (
349 "The scoping OperatingSystem's Name."),
350 MaxLen ( 256 )]
351 string OSName;
352
353 [Key, Propagated ( "CIM_Process.CreationClassName" ),
354 Description (
355 "The scoping Process' CreationClassName."),
356 MaxLen ( 256 )]
357 string ProcessCreationClassName;
358 tony 1.1
359 [Key, Propagated ( "CIM_Process.Handle" ), Description (
360 "The scoping Process' Handle."),
361 MaxLen ( 256 )]
362 string ProcessHandle;
363
364 [Key, Description (
365 "CreationClassName indicates the name of the class or the "
366 "subclass used in the creation of an instance. When used "
367 "with the other key properties of this class, this property "
368 "allow all instances of this class and its subclasses to be "
369 "uniquely identified."),
370 MaxLen ( 256 )]
371 string CreationClassName;
372
373 [Key, Description (
374 "A string used to identify the Thread."),
375 MaxLen ( 256 )]
376 string Handle;
377
378 [Description (
379 tony 1.1 "Priority indicates the urgency or importance of execution "
380 "of a Thread. A Thread may have a different priority than "
381 "its owning Process. If this information is not available "
382 "for a Thread, a value of 0 should be used.")]
383 uint32 Priority;
384
385 [Description (
386 "Indicates the current operating condition of the Thread. "
387 "Values include ready (2), running (3), and blocked (4), "
388 "among others. The majority of the enumerated values are "
389 "obvious. However, a few require additional explanation: \n"
390 "7 (Ready but Relinquished Processor) describes that a "
391 "thread is in the Ready state, but has voluntarily "
392 "relinquished execution time to other threads. For example, "
393 "this state may indicate a problem when the relinquishing "
394 "thread is not handling items on its queues. If these "
395 "semantics cannot be detected, the thread should report its "
396 "state as 2 (\"Ready\"). \n"
397 "8 (Hung) indicates that a thread is not responding."),
398 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
399 Values { "Unknown", "Other", "Ready", "Running", "Blocked",
400 tony 1.1 "Suspended Blocked", "Suspended Ready",
401 "Ready But Relinquished Processor", "Hung" }]
402 uint16 ExecutionState;
403
404 [Description (
405 "Time in kernel mode, in milliseconds. If this information "
406 "is not available, a value of 0 should be used."),
407 Units ( "MilliSeconds" )]
408 uint64 KernelModeTime;
409
410 [Description (
411 "Time in user mode, in milliseconds. If this information is "
412 "not available, a value of 0 should be used."),
413 Units ( "MilliSeconds" )]
414 uint64 UserModeTime;
415 };
416
417
418 // ===================================================================
419 // ProcessThread
420 // ===================================================================
421 tony 1.1 [Association, Aggregation, Composition, Version ( "2.7.0" ),
422 Description (
423 "A link between a Process and the Thread(s) running in the "
424 "context of this Process.")]
425 class CIM_ProcessThread : CIM_Component {
426
427 [Aggregate, Override ( "GroupComponent" ), Min ( 1 ), Max ( 1 ),
428 Description (
429 "The Process.")]
430 CIM_Process REF GroupComponent;
431
432 [Override ( "PartComponent" ), Weak, Description (
433 "The Thread running in the context of the Process.")]
434 CIM_Thread REF PartComponent;
435 };
436
437
438 // ===================================================================
439 // OwningJobElement
440 // ===================================================================
441 [Association, Version ( "2.7.0" ), Description (
442 tony 1.1 "OwningJobElement represents an association between a Job and "
443 "the ManagedElement responsible for the creation of the Job. "
444 "This association may not be possible, given that the execution "
445 "of jobs can move between systems and that the lifecycle of the "
446 "creating entity may not persist for the total duration of the "
447 "job. However, this can be very useful information when "
448 "available. This association defines a more specific 'owner' "
449 "than is provided by the CIM_Job.Owner string."),
450 ModelCorrespondence { "CIM_Job.Owner" }]
451 class CIM_OwningJobElement {
452
453 [Key, Max ( 1 ), Description (
454 "The ManagedElement responsible for the creation of the Job.")]
455 CIM_ManagedElement REF OwningElement;
456
457 [Key, Description (
458 "The Job created by the ManagedElement.")]
459 CIM_Job REF OwnedElement;
460 };
461
462
463 tony 1.1 // ===================================================================
464 // AffectedJobElement
465 // ===================================================================
466 [Association, Version ( "2.7.0" ), Description (
467 "AffectedJobElement represents an association between a Job and "
468 "the ManagedElement(s) that may be affected by its execution. "
469 "It may not be feasible for the Job to describe all of the "
470 "affected elements. The main purpose of this association is to "
471 "provide information when a Job requires exclusive use of the "
472 "'affected' ManagedElment(s) or when describing that side "
473 "effects may result.")]
474 class CIM_AffectedJobElement {
475
476 [Key, Description (
477 "The ManagedElement affected by the execution of the Job.")]
478 CIM_ManagedElement REF AffectedElement;
479
480 [Key, Description (
481 "The Job that is affecting the ManagedElement.")]
482 CIM_Job REF AffectingElement;
483
484 tony 1.1 [Description (
485 "An enumeration describing the 'effect' on the "
486 "ManagedElement. This array corresponds to the "
487 "OtherElementEffectsDescriptions array, where the latter "
488 "provides details related to the high-level 'effects' "
489 "enumerated by this property. Additional detail is required "
490 "if the ElementEffects array contains the value 1, "
491 "\"Other\"."),
492 ValueMap { "0", "1", "2", "3", "4" },
493 Values { "Unknown", "Other", "Exclusive Use",
494 "Performance Impact", "Element Integrity" },
495 ArrayType ( "Indexed" ),
496 ModelCorrespondence {
497 "CIM_AffectedJobElement.OtherElementEffectsDescriptions" }]
498 uint16 ElementEffects[];
499
500 [Description (
501 "Provides details for the 'effect' at the corresponding "
502 "array position in ElementEffects. This information is "
503 "required whenever ElementEffects contains the value 1 "
504 "(\"Other\")."),
505 tony 1.1 ArrayType ( "Indexed" ),
506 ModelCorrespondence { "CIM_AffectedJobElement.ElementEffects" }]
507 string OtherElementEffectsDescriptions[];
508 };
509
510
511 // ===================================================================
512 // ProcessOfJob
513 // ===================================================================
514 [Association, Aggregation, Composition, Version ( "2.7.0" ),
515 Description (
516 "ProcessOfJob describes that the referenced Process is the "
517 "result of the execution of the Job. A Job may cause multiple "
518 "Processes to run, perhaps on different operating systems. This "
519 "is allowed by the '*' cardinality of the Process reference. "
520 "Note that a Process can result from only one Job - hence, the "
521 "'0..1' cardinality on Job.")]
522 class CIM_ProcessOfJob : CIM_Component {
523
524 [Aggregate, Override ( "GroupComponent" ), Description (
525 "Execution of the Job results in the creation of the Process "
526 tony 1.1 "referenced as PartComponent. The Job aggregates the "
527 "Process(es) that are created when it is executed.")]
528 CIM_Job REF GroupComponent;
529
530 [Override ( "PartComponent" ), Description (
531 "The Process that results from the execution of the Job.")]
532 CIM_Process REF PartComponent;
533 };
534
535
536 // ===================================================================
537 // JobDestination
538 // ===================================================================
539 [Version ( "2.7.0" ), Description (
540 "JobDestination is an EnabledLogicalElement representing where "
541 "a Job is submitted for processing. It can refer to a queue "
542 "that contains zero or more Jobs, such as a print queue "
543 "containing print Jobs. JobDestinations are hosted on Systems, "
544 "similar to the way that Services are hosted on Systems. Also, "
545 "they may be enabled/disabled similar to Services.")]
546 class CIM_JobDestination : CIM_EnabledLogicalElement {
547 tony 1.1
548 [Key, Propagated ( "CIM_System.CreationClassName" ),
549 Description (
550 "The scoping System's CreationClassName."),
551 MaxLen ( 256 )]
552 string SystemCreationClassName;
553
554 [Key, Propagated ( "CIM_System.Name" ), Description (
555 "The scoping System's Name."),
556 MaxLen ( 256 )]
557 string SystemName;
558
559 [Key, Description (
560 "CreationClassName indicates the name of the class or the "
561 "subclass used in the creation of an instance. When used "
562 "with the other key properties of this class, this property "
563 "allows all instances of this class and its subclasses to be "
564 "uniquely identified."),
565 MaxLen ( 256 )]
566 string CreationClassName;
567
568 tony 1.1 [Key, Override ( "Name" ), Description (
569 "The inherited Name serves as key of a JobDestination "
570 "instance in a System."),
571 MaxLen ( 256 )]
572 string Name;
573 };
574
575
576 // ===================================================================
577 // HostedJobDestination
578 // ===================================================================
579 [Association, Version ( "2.8.0" ), Description (
580 "An association between a JobDestination and a System on which "
581 "it resides. The cardinality of this association is 1-to-many. "
582 "A System may host many Job queues. Job Destinations are weak "
583 "with respect to their hosting System. Heuristic: A "
584 "JobDestination is hosted on the System where the "
585 "LogicalDevices, SoftwareFeatures or Services that implement/ "
586 "provide the JobDestination are located.")]
587 class CIM_HostedJobDestination : CIM_HostedDependency {
588
589 tony 1.1 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
590 "The hosting System.")]
591 CIM_System REF Antecedent;
592
593 [Override ( "Dependent" ), Weak, Description (
594 "The JobDestination hosted on the System.")]
595 CIM_JobDestination REF Dependent;
596 };
597
598
599 // ===================================================================
600 // JobDestinationJobs
601 // ===================================================================
602 [Association, Version ( "2.6.0" ), Description (
603 "An association describing where a Job is submitted for "
604 "processing, ie to which JobDestination.")]
605 class CIM_JobDestinationJobs : CIM_Dependency {
606
607 [Override ( "Antecedent" ), Max ( 1 ), Description (
608 "The JobDestination, possibly a queue.")]
609 CIM_JobDestination REF Antecedent;
610 tony 1.1
611 [Override ( "Dependent" ), Description (
612 "The Job that is in the Job queue/Destination.")]
613 CIM_Job REF Dependent;
614 };
615
616 // ===================================================================
617 // end of file
618 // ===================================================================
|