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]