Gestión de procesos
De Documentacion NexuN
S.O. Gestión de procesos
Hay que tener cuidado de no confundir entre los programas y los procesos, un proceso es la ejecución de un programa.
Los procesos puede encontrarse en tres estados
Práctica: ¿Qué realizan los siguientes comandos?
ps, pstree, kill(-20 > 19), nice, renice, nohup, fg, bg, ctrol+c, top, qstat, etc ....
ejemplo: ps -ef ps -ef | grep bash sleep 1h & sleep 1h (Ctrol + C) jobs sleep 1h (Ctrol + Z) jobsd kill -9 ....
Multiprogramación:
Es la técnica que permite que dos o mas programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo.
Cuando el S.O. entrega a la CPU un nuevo proceso, tiene que guardar el estado del proceso que estaba ejecutando y cargar el nuevo proceso, esto es un cambio de contexto.
Cuando tenemos un cambio de contexto tenemos que decidir que proceso de la cola de procesos listos vamos a empezar o a continuar ejecutando. Depende de como lo elijamos tendremos diferentes resultados, por ejemplo, tenemos 2 procesos
Proceso 1 = P1 (ocupa 2) Proceso 2 = P2 (ocupa 4)
Si ejecutamos primero P1 y después P2 tendremos: (2,4)
Tiempo de espera medio = (0+2)/2 = 1
Si ejecutamos primero P2 y después P1 tendremos: (4,2)
Tiempo de espera medio = (0+4)/2 = 2
Notar que si priorizamos siempre los procesos más cortos obtendremos tiempos de espera medios más pequeños sin embargo ¿Qué problema encontramos?
Para elegir el siguiente proceso podemos utilizar diferentes algoritmos, por cierto ¿Qué es un algoritmo?
Diferentes algoritmos para organizar los procesos:
FCFS (First-come, first-served), el primero en llegar es el primero en ser servido.
SJN (Shortest-job-nest). El siguiente es el proceso más corto.
RR (Round-robin) Utiliza el algoritmo FCFS con la variante de que un proceso no puede estar utlizando la CPU por más de un quantum
[1]
¿Pueden bloquearse los procesos?
