Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: SDCC en 7 Septiembre 2019, 19:00 pm



Título: STATUS de los procesos
Publicado por: SDCC en 7 Septiembre 2019, 19:00 pm
Durante la observacion de los resultados originados por el comando 'ps', observe que habia dos casos particulares que generan incognitas en cuanto a lo que implicaban:

1. Procesos que que tenian el STAT S. S Interruptible sleep (waiting for an event to complete)
Era generado cuando dentro de un proceso utilizaba el metodo SLEEP correspondiente a la SIGALRM.Sin embargo me surge la duda de que es lo que ocurre, el proceso es retirado de la cola de procesos listos para finalmente ser activado por el SO mediante una senal cuando su tiempo de 'dormir' ha sido completado? o permanece en la cola de procesos listos y cada vez que le toca una RAFAGA DE CPU verifica si su tiempo de 'dormir' ha terminado?

2. T Procesos que que tenian el STAT T . T Stopped, either by a job control signal or because it is being traced.
Generado mientras terminaba un proceso con CTRL + Z. correspondiente a la senal SIGTSTP que al buscar sobre ella me di cuenta que podia ser ignorada por el proceso y que simplemente lo manda a este estado sin matarlo. Esto que consecuencias puede tener? he visto que mediante el comando 'top' el proceso no aparece pero entonces me hace creer que minimamente es retirado de la cola de proceso listos pero sin embargo que incoveniente puede tener el tenerlo en este estado? Simplemente mayor consumo de memoria para guardar el registro de dicho proceso? o  acaso tampoco se liberan los recursos ocupados por dicho proceso


NOTA. Una disculpa por subir la entrada incompleta, se me cerro accidentalmente el navegador y se subio el tema incompleto al principio


Título: Re: STATUS de los procesos
Publicado por: MinusFour en 7 Septiembre 2019, 20:23 pm
Durante la observacion de los resultados originados por el comando 'ps', observe que habia dos casos particulares que generan incognitas en cuanto a lo que implicaban:

1. Procesos que que tenian el STAT S. S Interruptible sleep (waiting for an event to complete)
Era generado cuando dentro de un proceso utilizaba el metodo SLEEP correspondiente a la SIGALRM.Sin embargo me surge la duda de que es lo que ocurre, el proceso es retirado de la cola de procesos listos para finalmente ser activado por el SO mediante una senal cuando su tiempo de 'dormir' ha sido completado? o permanece en la cola de procesos listos y cada vez que le toca una RAFAGA DE CPU verifica si su tiempo de 'dormir' ha terminado?

El scheduler de Linux no funciona exactamente con colas, usa un arbol rojo-negro para insertar, eliminar y buscar las TASKs. Y si, el scheduler considera el tiempo que duerme un proceso al insertarlo en su árbol (hasta donde yo tengo entendido). Puedes buscar más acerca del tema en google, buscando por "Sleeper Fairness".

2. T Procesos que que tenian el STAT T . T Stopped, either by a job control signal or because it is being traced.
Generado mientras terminaba un proceso con CTRL + Z. correspondiente a la senal SIGTSTP que al buscar sobre ella me di cuenta que podia ser ignorada por el proceso y que simplemente lo manda a este estado sin matarlo. Esto que consecuencias puede tener? he visto que mediante el comando 'top' el proceso no aparece pero entonces me hace creer que minimamente es retirado de la cola de proceso listos pero sin embargo que incoveniente puede tener el tenerlo en este estado? Simplemente mayor consumo de memoria para guardar el registro de dicho proceso? o  acaso tampoco se liberan los recursos ocupados por dicho proceso


NOTA. Una disculpa por subir la entrada incompleta, se me cerro accidentalmente el navegador y se subio el tema incompleto al principio


Los procesos parados por SIGSTOP si aparecen en top. Al menos en mi maquina funciona perfectamente. No estoy seguro que haga el scheduler con este tipo de procesos la verdad. Hasta donde yo tengo entendido, el proceso está parado por completo así que no debería estar usando nada del CPU. Y no creo que libere ninguno de sus otros recursos. Es un proceso que no ha terminado todavía. Aunque me imagino que puedes manejar la interrupción para que libere ciertos recursos.