On Mon, 31 Jan 2000, Julio Cesar Gazquez wrote:

> > 
> > Si evidentemente es un problema de "schelude"
> > 
> En tal caso, una buena pregunta es: Que n�cleo est�s usando?

No es problema del nucleo, para clarificar las cosas, en el nucleo existe
una operaci'on llamada "process scheduler" o planificador de procesos (no
se porque puse "schelude" ay ay estos virus chinos son de terror!!) Este
est'a en la primitiva del nucleo schedule() que hay documentaci'on en 

/usr/include/asm-i386/system.h
/usr/src/linux/kernel/sched.c
etc...

Los procesos que est'an listos para ejecutarse se colocan en una de las
tres colas que tiene el planificador. Dos para llamadas en tiempo real y
la otra para el resto de los procesos, tales como los "habituales por el
usuario". Dentro de cada cola los procesos se colocan en funci'on de sus
prioridad y no segun van llegando. Hay dos calificadores de prioridad, uno
una fija y la determina el sistema y otra variable que se adjudica de
manera din'amica. Es decir se puede modificarla en funci'on a algunos
recursos del SO como lo es el progrma "nice".

Las tres colas del planificador son:

1) SCHED_FIFO:
        Se escoje el proceso de mas alta prioridad y se ejecuta a menos
que: exista otro de mayor prioridad, o el procesos genera una
interrupci'on. 

2) SCHED_RR:
        Si no hay procesos en la cola anterior, se elije procesos en esta
cola, su ejecuci'on no se interrumpe a menos que: aparece un proceso de
cualquier prioridad en la cola  SCHED_FIFO, aparece un proceso con
prioridad superior en  SCHED_RR, o el proceso genera una interrupci'on.


 3) SCHED_OTHER:
        Si no existen procesos en las colas anteriores se ejecuta el
proceso de mayor prioridad en esta cola y solo se intrumpe si aparece un
proceso de cualquier prioridad en las colas anteriores.

Las llamadas a sistema que permiten modificar la politica de
planificaci'on y prioridades son

int sched_setscheduler(int pid,int politica, sched_param *parametros)
int sched_getscheduler(int pid)

y estas se usan para modificar las prioridades de los procesos por parte
del usuario o del planificador.

Tengo un programa que permite modificar las planificaciones de manera tal
de colgar cualquier servidor-X!! Por supuesto hay que ejecutarlo como
superusuario. Creo que el MC modifica las tablas de prioridades por eso
fijate con el "ps la" (l=lista larga) fijate en la columna "PRI" si en MC
tine prioridad negativa, cagaste macho!!!!

Salugasudos:

Horacio Castellini, Dpto de F'isica, Facultad de Ingenier'ia, 
Ciencias Exactas y Agrimensura, Pellegrini 250, 2000 Rosario
Argentina, Usuario Linux Registrado #53602
Correo-e:[EMAIL PROTECTED]

Responder a