Chapter 4 |
4
|
Process Control
|
4.1
|
Using Process Control for Programming Tasks
|
4.1.1
|
Determining Privileges for Process Creation and Control
|
4.1.2
|
Determining Process Identification
|
4.1.3
|
Qualifying Process Naming Within Groups
|
4.2
|
Obtaining Process Information
|
4.2.1
|
Using the PID to Obtain Information
|
4.2.2
|
Using the Process Name to Obtain Information
|
4.2.3
|
Using SYS$GETJPI and LIB$GETJPI
|
4.2.3.1
|
Requesting Information About a Single Process
|
4.2.3.2
|
Requesting Information About All Processes on the Local System
|
4.2.4
|
Using SYS$GETJPI with SYS$PROCESS_SCAN
|
4.2.4.1
|
Using SYS$PROCESS_SCAN Item List and Item-Specific Flags
|
4.2.4.2
|
Requesting Information About Processes That Match One Criterion
|
4.2.4.3
|
Requesting Information About Processes That Match Multiple Values for One Criterion
|
4.2.4.4
|
Requesting Information About Processes That Match Multiple Criteria
|
4.2.5
|
Specifying a Node as Selection Criterion
|
4.2.5.1
|
Checking All Nodes on the Cluster for Processes
|
4.2.5.2
|
Checking Specific Nodes on the Cluster for Processes
|
4.2.5.3
|
Conducting Multiple Simultaneous Searches with SYS$PROCESS_SCAN
|
4.2.6
|
Programming with SYS$GETJPI
|
4.2.6.1
|
Using Item Lists Correctly
|
4.2.6.2
|
Improving Performance by Using Buffered $GETJPI Operations
|
4.2.6.3
|
Fulfilling Remote SYS$GETJPI Quota Requirements
|
4.2.6.4
|
Using the SYS$GETJPI Control Flags
|
4.2.7
|
Using SYS$GETLKI
|
4.2.8
|
Setting Process Privileges
|
4.3
|
Changing Process and Kernel Threads Scheduling
|
4.4
|
Using Affinity and Capabilities in CPU Scheduling (Alpha Only)
|
4.4.1
|
Defining Affinity and Capabilities
|
4.4.1.1
|
Using Affinity and Capabilities with Caution
|
4.4.2
|
Types of Capabilities
|
4.4.3
|
Looking at User Capabilities
|
4.4.4
|
Using the Capabilities System Services
|
4.4.5
|
Types of Affinity
|
4.4.5.1
|
Implicit Affinity
|
4.4.5.2
|
Explicit Affinity
|
4.5
|
Using the Class Scheduler in CPU Scheduling
|
4.5.1
|
Specifications for the Class_Schedule Command
|
4.5.1.1
|
The Add Sub-Command
|
4.5.1.2
|
The Delete Sub-Command
|
4.5.1.3
|
The Modify Sub-Command
|
4.5.1.4
|
The Show Sub-Command
|
4.5.1.5
|
The Suspend Sub-Command
|
4.5.1.6
|
The Resume Sub-Command
|
4.5.2
|
The Class Scheduler Database
|
4.5.2.1
|
The Class Scheduler Database and Process Creation
|
4.5.3
|
Determining If a Process Is Class Scheduled
|
4.5.4
|
The SYS$SCHED System Service
|
4.6
|
Changing Process Name
|
4.7
|
Accessing Another Process's Context
|
4.7.1
|
Reading and Writing in the Address Space of Another Process (Alpha Only)
|
4.7.1.1
|
EXE$READ_PROCESS and EXE$WRITE_PROCESS
|
Command 1
|
EXE$READ_PROCESS
|
Command 2
|
EXE$WRITE_PROCESS
|
4.7.2
|
Writing an Executive Image (Alpha Only)
|
4.7.2.1
|
INITIALIZATION_ROUTINE Macro (Alpha Only)
|
Command 3
|
INITIALIZATION_ROUTINE
|
4.7.2.2
|
Linking an Executive Image (Alpha Only)
|
4.7.2.3
|
Loading an Executive Image (Alpha Only)
|
4.7.2.4
|
LDR$LOAD_IMAGE (Alpha Only)
|
Command 4
|
LDR$LOAD_IMAGE
|
4.7.2.5
|
LDR$UNLOAD_IMAGE (Alpha Only)
|
Command 5
|
LDR$UNLOAD_IMAGE
|
4.8
|
Synchronizing Programs by Specifying a Time for Program Execution
|
4.8.1
|
Obtaining the System Time
|
4.8.1.1
|
Executing a Program at a Specified Time
|
4.8.1.2
|
Executing a Program at Timed Intervals
|
4.8.2
|
Placing Entries in the System Timer Queue
|
4.9
|
Controlling Kernel Threads and Process Execution
|
4.9.1
|
Process Hibernation and Suspension
|
4.9.1.1
|
Using Process Hibernation
|
4.9.1.2
|
Using Alternative Methods of Hibernation
|
4.9.1.3
|
Using SYS$SUSPND
|
4.9.2
|
Passing Control to Another Image
|
4.9.2.1
|
Invoking a Command Image
|
4.9.2.2
|
Invoking a Noncommand Image
|
4.9.3
|
Performing Image Exit
|
4.9.3.1
|
Performing Image Rundown
|
4.9.3.2
|
Initiating Rundown
|
4.9.3.3
|
Performing Cleanup and Rundown Operations
|
4.9.3.4
|
Initiating Image Rundown for Another Process
|
4.9.4
|
Deleting a Process
|
4.9.4.1
|
Deleting a Process By Using System Services
|
4.9.4.2
|
Terminating Mailboxes
|