Guía de seguimiento dinámico de Solaris

Sondeos

Los sondeos sched se describen en la Tabla 26–1.

Tabla 26–1 Sondeos sched

Sondeo 

Descripción 

change-pri

Sondeo que se activa siempre que va a modificarse la prioridad de un subproceso. El subproceso lwpsinfo_t del subproceso es apuntado por args[0]. La prioridad actual del subproceso se encuentra en el campo pr_pri de esta estructura. El psinfo_t del proceso que contiene el subproceso es apuntado por args[1]. La nueva prioridad del subproceso se encuentra en args[2].

dequeue

Sondeo que se activa inmediatamente antes de retirar un subproceso ejecutable de una cola de espera de ejecución. El lwpsinfo_t del subproceso que se está eliminando de la cola de espera es apuntado por args[0]. El psinfo_t del proceso que contiene el subproceso es apuntado por args[1]. El cpuinfo_t de la CPU desde la que se está eliminando de la cola el subproceso es apuntado por args[2]. Si se está eliminando de la cola de ejecución un subproceso que no está asociado a ninguna CPU en concreto, el miembro cpu_id de esta estructura será -1.

enqueue

Sondeo que se activa inmediatamente antes de que se coloque en una cola de espera de ejecución un subproceso ejecutable. El lwpsinfo_t del subproceso que se está colocando en la cola de espera es apuntado por args[0]. El psinfo_t del proceso que contiene el subproceso es apuntado por args[1]. El cpuinfo_t de la CPU en la que se está colocando en cola el subproceso es apuntado por args[2]. Si se está colocando en cola de ejecución un subproceso que no está asociado a ninguna CPU en concreto, el miembro cpu_id de esta estructura será -1. El valor de args[3] es un valor booleano que indica si el subproceso se colocará al frente de la cola de ejecución. El valor no es cero si el subproceso se coloca al frente de la cola de ejecución, y cero si el subproceso se coloca al final de la cola de ejecución.

off-cpu

Sondeo que se activa cuando la CPU actual está a punto de finalizar la ejecución de un subproceso. La variable curcpu indica la CPU actual. La variable curlwpsinfo indica el subproceso que está finalizando su ejecución. La variable curpsinfo describe el proceso que contiene el subproceso actual. La estructura lwpsinfo_t del subproceso que la CPU actual ejecutará a continuación es apuntado por args[0] . El psinfo_t del proceso que contiene el siguiente subproceso es apuntado por args[1].

on-cpu

Sondeo que se activa cuando una CPU acaba de iniciar la ejecución de un subproceso. La variable curcpu indica la CPU actual. La variable curlwpsinfo indica cuál es el subproceso que está iniciando su ejecución. La variable curpsinfo describe el proceso que contiene el subproceso actual.

preempt

Sondeo que se activa inmediatamente antes de que se convierta en preemptivo el subproceso actual. Después de que se active este sondeo, el subproceso actual seleccionará un subproceso para ejecutarlo, y se activará el sondeo off-cpu para el subproceso actual. En determinados casos se convertirá en preemptivo un subproceso de una CPU, pero mientras tanto se ejecutará en otra CPU. En esta situación se activará el sondeo preempt, pero el distribuidor no será capaz de encontrar un subproceso de nivel superior para ejecutarlo y se activará el sondeo remain-cpu en lugar del sondeo off-cpu.

remain-cpu

Sondeo que se activa cuando se ha tomado una decisión de planificación, pero el distribuidor ha optado por continuar con la ejecución del subproceso actual. La variable curcpu indica la CPU actual. La variable curlwpsinfo indica cuál es el subproceso que está iniciando su ejecución. La variable curpsinfo describe el proceso que contiene el subproceso actual.

schedctl-nopreempt

Sondeo que se activa siempre que se convierte en preemptivo un subproceso y posteriormente se vuelve a colocar al frente de la cola de ejecución debido a una solicitud de control de preempción. Consulte schedctl_init(3C) para obtener más detalles sobre el control de preempción. Al igual que con preempt, off-cpu o remain-cpu se activarán después de schedctl-nopreempt. Dado que schedctl-nopreempt indica una nueva colocación del subproceso actual al frente de la cola, es más probable que remain-cpu se active después de schedctl-nopreempt que off-cpu. El lwpsinfo_t del subproceso que se está colocando en preempción es apuntado por args[0]. El psinfo_t del proceso que contiene el subproceso es apuntado por args[1].

schedctl-preempt

Sondeo que se activa cuando un subproceso que está utilizando el control de preempción se coloca en este estado a pesar de ello, y se vuelve a colocar en cola al final de la cola de ejecución. Consulte schedctl_init(3C) para obtener más detalles sobre el control de preempción. Al igual que con preempt, o off-cpu o remain-cpu se activarán después de schedctl-preempt. Al igual que con preempt (y a diferencia de schedctl-nopreempt), schedctl-preempt denota volver a colocar en cola el subproceso actual al final de la cola de ejecución. Por lo tanto, es más probable que se active off-cpu después de schedctl-preempt que remain-cpu. El lwpsinfo_t del subproceso que se está colocando en preempción es apuntado por args[0]. El psinfo_t del proceso que contiene el subproceso es apuntado por args[1].

schedctl-yield

Sondeo que se activa cuando un subproceso que tiene el control de preempción habilitado y su fracción de tiempo ha ejecutado código ampliado artificialmente para ceder la CPU a otros subprocesos. 

sleep

Sondeo que se activa inmediatamente antes de que el subproceso actual se sitúe en inactividad en un objeto de sincronización. El tipo de objeto de sincronización se encuentra en el miembro pr_stype del lwpsinfo_t apuntado por curlwpsinfo . La dirección del objeto de sincronización se encuentra en el miembro pr_wchan del lwpsinfo_t apuntado por curlwpsinfo. El significado de esta dirección es un detalle de implementación privada, pero el valor de dirección podría tratarse como un símbolo único del objeto de sincronización.

surrender

Sondeo que se activa cuando una CPU ha instruido a otra CPU para realizar una decisión de planificación – a menudo porque un subproceso de mayor prioridad se ha convertido en ejecutable. 

tick

Sondeo que se activa como parte de un registro basado en pulsos de reloj. En el registro basado en pulsos de reloj, el registro de CPU se realiza examinando qué subprocesos y procesos se encuentran en ejecución cuando se activa una interrupción de intervalo fijo. El lwpsinfo_t que corresponde al subproceso al que se asigna tiempo de CPU es apuntado por args[0]. El psinfo_t que corresponde al proceso que contiene el subproceso es apuntado por args[1] .

wakeup

Sondeo que se admite inmediatamente antes de que el subproceso actual active un subproceso en inactividad en un objeto de sincronización. El lwpsinfo_t del subproceso en inactividad es apuntado por args[0]. El psinfo_t del proceso que contiene el subproceso en actividad es apuntado por args[1]. El tipo del objeto de sincronización se encuentra en el miembro pr_stype del lwpsinfo_t del subproceso en inactividad. La dirección del objeto de sincronización se encuentra en el miembro pr_wchan del lwpsinfo_t del subproceso en inactividad. El significado de esta dirección es un detalle de implementación privada, pero el valor de dirección podría tratarse como un símbolo único del objeto de sincronización.