{{
PROCESOS PROCESOS I I Sistemas Operativos IISistemas Operativos II
Prof. Pablo MacónProf. Pablo Macó[email protected]://pablomacon.wix.com/homehttp://pablomacon.wix.com/home
Para entender qué es un Para entender qué es un proceso y tratar de dar proceso y tratar de dar una definición, veamos una definición, veamos primero esta alegoría:primero esta alegoría:
ProcesosProcesos
Un “científico computacional” Un “científico computacional” se propone a cocinar una tortase propone a cocinar una torta
Tiene la Tiene la recetareceta, los , los ingredientesingredientes y una y una cocinacocina apta para la tareaapta para la tarea
ProcesosProcesos
Cocinero Cocinero Procesador Procesador Receta Receta Programa Programa
(algoritmo)(algoritmo) Ingredientes Ingredientes Datos de Datos de
entradaentrada
ProcesosProcesos
El El procesoproceso será la actividad de será la actividad de preparar la torta en sí, eso preparar la torta en sí, eso quiere decir que el cocinero vaya quiere decir que el cocinero vaya siguiendo los pasos de la receta, siguiendo los pasos de la receta, agregando los ingredientes y agregando los ingredientes y poniendo la torta en el hornoponiendo la torta en el horno
ProcesosProcesos
En un momento dado, aún no En un momento dado, aún no habiendo terminado de habiendo terminado de cocinar, se acerca la hija del cocinar, se acerca la hija del cocinero llorando porque se cocinero llorando porque se cortó un dedo. cortó un dedo.
ProcesosProcesos
Antes de ir a curarla, el cocinero Antes de ir a curarla, el cocinero (que además es un científico (que además es un científico computacional) anota el punto computacional) anota el punto de la receta donde estaba (de la receta donde estaba (se se guarda el estado el procesoguarda el estado el proceso))
ProcesosProcesos
Podemos decir que el Podemos decir que el procesador conmuta de un procesador conmuta de un proceso a otro de proceso a otro de mayor mayor prioridadprioridad
ProcesosProcesos
Luego de terminar de atender Luego de terminar de atender a su hijita, lee de la memoria el a su hijita, lee de la memoria el estado del proceso y continúa estado del proceso y continúa en el en el mismo punto mismo punto en el que lo en el que lo había dejadohabía dejado
ProcesosProcesos
Un proceso es una instancia Un proceso es una instancia de un programa en ejecución. de un programa en ejecución.
Una abstracción del Sistema Una abstracción del Sistema operativo, esencial en la operativo, esencial en la multiprogramaciónmultiprogramaciónProcesos: Procesos:
DefiniciónDefinición
Varias instancias del mismo Varias instancias del mismo programa corriendo al mismo programa corriendo al mismo tiempo son procesos diferentes, tiempo son procesos diferentes, cada uno tiene su propio cada uno tiene su propio contador de programa, variables contador de programa, variables y espacio en la memoriay espacio en la memoriaProcesos: Procesos:
PrincipiosPrincipios
Cada proceso tiene su propia Cada proceso tiene su propia máquina virtual y piensa que es el máquina virtual y piensa que es el único único proceso en el sistemaproceso en el sistema
En realidad En realidad el procesador conmuta el procesador conmuta de uno a otro de manera muy de uno a otro de manera muy rápidarápidaProcesos: Procesos:
PrincipiosPrincipios
Procesos: Procesos: PrincipiosPrincipios
La La velocidad a la que se ejecuta un velocidad a la que se ejecuta un proceso no es siempre igualproceso no es siempre igual, puede , puede variar de una instancia a otravariar de una instancia a otra
En los sistemas de Tiempo Real hay En los sistemas de Tiempo Real hay que tomar medidas para que no que tomar medidas para que no varíe mucho (o nada)varíe mucho (o nada)Procesos: Procesos:
PrincipiosPrincipios
Los Procesos deben ser Los Procesos deben ser creados por creados por el SOel SO en algún momento. en algún momento.
Los SO básicos tienen todos sus Los SO básicos tienen todos sus procesos presentes todo el tiempoprocesos presentes todo el tiempo
Los SO grandes deben Los SO grandes deben crearloscrearlos yy terminarlosterminarlos en algún momento en algún momento
Procesos: CreaciónProcesos: Creación
Existen cuatro Existen cuatro eventos que provocan eventos que provocan la creación de procesosla creación de procesos:: El Arranque del SistemaEl Arranque del Sistema Un proceso que llama a otroUn proceso que llama a otro Una petición del usuarioUna petición del usuario Un trabajo por lotesUn trabajo por lotes
Procesos: CreaciónProcesos: Creación
En el Arranque del Sistema:En el Arranque del Sistema: Se crean los procesos en Se crean los procesos en primer primer
plano plano (interactúan con el usuario)(interactúan con el usuario) Se crean los Se crean los demonios demonios (segundo (segundo
plano) con funciones específicasplano) con funciones específicas
Procesos: CreaciónProcesos: Creación
En los sistemas Unix-like En los sistemas Unix-like (como GNU/Linux) existe una (como GNU/Linux) existe una llamada al sistema llamada al sistema denominada denominada fork()fork()
Procesos: CreaciónProcesos: Creación
Cuando un proceso padre Cuando un proceso padre quiere crear un proceso hijo quiere crear un proceso hijo ejecuta una llamada al sistemaejecuta una llamada al sistema
fork() fork() Crea una copia exacta del padreCrea una copia exacta del padre
Procesos: CreaciónProcesos: Creación
Tan Tan exactaexacta que comparten el que comparten el espacio de memoria, las espacio de memoria, las variables, los registros y los variables, los registros y los archivosarchivos
Procesos: CreaciónProcesos: Creación
Luego se separan, utilizando otra Luego se separan, utilizando otra llamada al sistema llamada al sistema
execve()execve() El El hijo reclamahijo reclama para sí, un espacio para sí, un espacio
en la memoria, registros propios e en la memoria, registros propios e identificadores de archivosidentificadores de archivos
Procesos: CreaciónProcesos: Creación
Puede darse porPuede darse por Salida Salida normalnormal (voluntaria) (voluntaria) Salida por Salida por errorerror (voluntaria) (voluntaria) Error Error FatalFatal (involuntaria) (involuntaria) EliminadoEliminado por otro proceso por otro proceso
(involuntaria)(involuntaria)Procesos: Procesos: TerminaciónTerminación
La mayoría de los procesos La mayoría de los procesos termina de manera normal termina de manera normal utilizando una llamada al utilizando una llamada al sistema:sistema: UNIX y Linux: UNIX y Linux: exitexit Windows: Windows: ExitProcessExitProcessProcesos: Procesos:
TerminaciónTerminación
Un Un error fatal error fatal puede ser tratar puede ser tratar de dividir por cero o hacer de dividir por cero o hacer referencia a una dirección de referencia a una dirección de memoria que no existememoria que no existe
Procesos: Procesos: TerminaciónTerminación
Para terminar un proceso debe Para terminar un proceso debe tener permisos específicostener permisos específicos
Se utilizan también llamadas al Se utilizan también llamadas al sistema:sistema: Unix/Linux: Unix/Linux: killkill Windows: Windows: TerminateProcessTerminateProcessProcesos: Procesos:
TerminaciónTerminación
En otros sistemas (no en En otros sistemas (no en Windows ni en UNIX) cuando Windows ni en UNIX) cuando un un proceso padre terminaproceso padre termina, se , se eliminan todos sus hijoseliminan todos sus hijos
Procesos: Procesos: TerminaciónTerminación
En UNIX cuando se inicia el sistema En UNIX cuando se inicia el sistema se crea un proceso que es padre de se crea un proceso que es padre de todos: todos:
initinit A partir de él se crean todos los A partir de él se crean todos los
demásdemásProcesos: Procesos: JerarquíaJerarquía
Como los procesos hijos de Como los procesos hijos de init a su vez van creando init a su vez van creando procesos hijos, se crea una procesos hijos, se crea una estructuraestructura en forma de en forma de arbolarbol
Procesos: Procesos: JerarquíaJerarquía
Procesos: Procesos: JerarquíaJerarquía
En Windows no hay un En Windows no hay un concepto de jerarquía de concepto de jerarquía de procesosprocesos
Todos los procesos son igualesTodos los procesos son igualesProcesos: Procesos: JerarquíaJerarquía
La CPU solo puede ejecutar un La CPU solo puede ejecutar un proceso a la vezproceso a la vez
Eso quiere decir que puede haber Eso quiere decir que puede haber procesos que estén esperando para procesos que estén esperando para ser ejecutados y uno usando la ser ejecutados y uno usando la CPUCPU
Procesos: EstadosProcesos: Estados
Hay 3 estados básicosHay 3 estados básicos1.1. En EjecuciónEn Ejecución2.2. ListoListo3.3. BloqueadoBloqueado
Procesos: EstadosProcesos: Estados
En EjecuciónEn Ejecución Está utilizando la CPU en este Está utilizando la CPU en este
momentomomento Ningún otro proceso puede estar Ningún otro proceso puede estar
ejecutándose en ese mismo ejecutándose en ese mismo momentomomento
Procesos: EstadosProcesos: Estados
ListoListo El proceso está en condiciones de utilizar El proceso está en condiciones de utilizar
la CPU en cuanto se le dé entradala CPU en cuanto se le dé entrada No puede hacerlo No puede hacerlo porque hay otro porque hay otro
proceso usando la CPUproceso usando la CPU Debe Debe esperaresperar a que la CPU se libere a que la CPU se libere
Procesos: EstadosProcesos: Estados
BloqueadoBloqueado No puede ejecutarse No puede ejecutarse aunque aunque
quisiera hasta que se cumpla quisiera hasta que se cumpla determinada condición externadeterminada condición externa por ejemplo: por ejemplo: está esperando a que está esperando a que
se cargue un archivo de discose cargue un archivo de disco
Procesos: EstadosProcesos: Estados
Procesos: EstadosProcesos: Estados
Procesos: EstadosProcesos: Estados
1.1. El proceso se El proceso se bloqueabloquea para recibir E/S para recibir E/S2.2. El planificador selecciona El planificador selecciona otro procesootro proceso3.3. El planificador selecciona El planificador selecciona este procesoeste proceso4.4. La E/S ya está La E/S ya está disponibledisponible
Procesos: Procesos: TransicionesTransiciones
1.1. De en Ejecución a BloqueadoDe en Ejecución a Bloqueado El SO descubre que el El SO descubre que el proceso no proceso no
puede seguir ejecutándosepuede seguir ejecutándose porque porque le está faltando algún datole está faltando algún dato
El proceso se pone en El proceso se pone en pausapausa (pulse (pulse una tecla para continuar)una tecla para continuar)
Procesos: Procesos: TransicionesTransiciones
1.1. De en Ejecución a ListoDe en Ejecución a Listo El SO cree que el proceso ya se El SO cree que el proceso ya se
ha ejecutado ha ejecutado suficiente tiemposuficiente tiempo GuardaGuarda el estado del proceso y el estado del proceso y
lo envía a Listo para ejecutarselo envía a Listo para ejecutarse
Procesos: Procesos: TransicionesTransiciones
1.1. De Listo a en EjecuciónDe Listo a en Ejecución Vuelve a tocarle en suerte Vuelve a tocarle en suerte continuar continuar
ejecutándoseejecutándose, desplazando al anterior , desplazando al anterior ocupante de la CPUocupante de la CPU
RetomaRetoma desde el punto en que había desde el punto en que había quedadoquedado
Procesos: Procesos: TransicionesTransiciones
1.1. De Bloqueado a ListoDe Bloqueado a Listo Cuando lo que estaba esperando Cuando lo que estaba esperando
llega, el proceso vuelve a llega, el proceso vuelve a estar estar listo listo para ejecutarse, pero debe para ejecutarse, pero debe ponerse en la fila a ponerse en la fila a esperar su esperar su turnoturno
Procesos: HilosProcesos: Hilos
Se los conoce como Se los conoce como micro-micro-procesosprocesos
Son procesos Son procesos dentrodentro de otro de otro Varios hilos de procesamiento en Varios hilos de procesamiento en
un un mismo espacio de direccionesmismo espacio de direcciones
Procesos: HilosProcesos: Hilos
Más Más ligerosligeros y fáciles de crear y fáciles de crear y destruir que los procesosy destruir que los procesos
Muy Muy útilesútiles en sistemas con en sistemas con varias CPUvarias CPU
Procesos: HilosProcesos: Hilos
Por ejemplo cuando estamos Por ejemplo cuando estamos escribiendo un documento largo, escribiendo un documento largo, el procesador de texto guarda el procesador de texto guarda cada cierto tiempo el trabajo.cada cierto tiempo el trabajo.
Eso no requiere de un proceso Eso no requiere de un proceso nuevo, puede utilizarse un hilonuevo, puede utilizarse un hilo