Important This documentation space contains information about PATROL Agents when deployed in a TrueSight Operations Management environment. If you are a BMC Helix Operations Management user, see PATROL Agent for BMC Helix Operations Management 23.4.

Executing a PSL Process


The following figure shows the flow for executing a PSL process.

Executing a PSL Process

Executing a PSL Process.gif

The PSL process scheduler is responsible for swapping in and swapping out PSL processes.

Whenever a PSL processes has to be executed, it will be put on the PSL runq (at the end). The PSL process scheduler will always take the first process of this runq and then execute until:

  • 50 low-level instructions are executed (or to whatever pconfig variable "/pslTimeslice" is set)
  • PSL process does IO (includes snmp functions, fopen(), popen(), system(), execute())
  • PSL process goes to sleep
  • PSL process terminates/completes

If the process terminates or completes, the process is passed back to the main run-queue 1

If a time slice is fully used, then the process is put back to the end of the PSL run-queue.

If the process has to wait for IO, it will be passed to the IO handler. The process sit in the "IO wait bucket".Whenever IO completes, the PSL process will be moved back to the end of the PSL run-queue.

Whenever the process executes a sleep(), a timer will be created. If the timer completes, the process will be moved at the end of the PSL run-queue. The lock() function is similar. In this case the agent will not be woken up because a timer expired, but because someone unlocked the resource the lock() is waiting for.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*