Top Banner
{ { PROCESOS PROCESOS I I Sistemas Operativos II Sistemas Operativos II Prof. Pablo Macón Prof. Pablo Macón [email protected] http://pablomacon.wix.com/home http://pablomacon.wix.com/home
44

Procesos - SOII - 2016

Jan 10, 2017

Download

Education

Pablo Macon
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Procesos - SOII - 2016

{{

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

Page 2: Procesos - SOII - 2016

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

Page 3: Procesos - SOII - 2016

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

Page 4: Procesos - SOII - 2016

Cocinero Cocinero Procesador Procesador Receta Receta Programa Programa

(algoritmo)(algoritmo) Ingredientes Ingredientes Datos de Datos de

entradaentrada

ProcesosProcesos

Page 5: Procesos - SOII - 2016

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

Page 6: Procesos - SOII - 2016

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

Page 7: Procesos - SOII - 2016

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

Page 8: Procesos - SOII - 2016

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

Page 9: Procesos - SOII - 2016

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

Page 10: Procesos - SOII - 2016

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

Page 11: Procesos - SOII - 2016

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

Page 12: Procesos - SOII - 2016

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

Page 13: Procesos - SOII - 2016

Procesos: Procesos: PrincipiosPrincipios

Page 14: Procesos - SOII - 2016

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

Page 15: Procesos - SOII - 2016

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

Page 16: Procesos - SOII - 2016

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

Page 17: Procesos - SOII - 2016

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

Page 18: Procesos - SOII - 2016

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

Page 19: Procesos - SOII - 2016

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

Page 20: Procesos - SOII - 2016

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

Page 21: Procesos - SOII - 2016

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

Page 22: Procesos - SOII - 2016

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

Page 23: Procesos - SOII - 2016

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

Page 24: Procesos - SOII - 2016

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

Page 25: Procesos - SOII - 2016

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

Page 26: Procesos - SOII - 2016

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

Page 27: Procesos - SOII - 2016

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

Page 28: Procesos - SOII - 2016

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

Page 29: Procesos - SOII - 2016

Procesos: Procesos: JerarquíaJerarquía

Page 30: Procesos - SOII - 2016

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

Page 31: Procesos - SOII - 2016

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

Page 32: Procesos - SOII - 2016

Hay 3 estados básicosHay 3 estados básicos1.1. En EjecuciónEn Ejecución2.2. ListoListo3.3. BloqueadoBloqueado

Procesos: EstadosProcesos: Estados

Page 33: Procesos - SOII - 2016

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

Page 34: Procesos - SOII - 2016

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

Page 35: Procesos - SOII - 2016

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

Page 36: Procesos - SOII - 2016

Procesos: EstadosProcesos: Estados

Page 37: Procesos - SOII - 2016

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

Page 38: Procesos - SOII - 2016

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)

Page 39: Procesos - SOII - 2016

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

Page 40: Procesos - SOII - 2016

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

Page 41: Procesos - SOII - 2016

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

Page 42: Procesos - SOII - 2016

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

Page 43: Procesos - SOII - 2016

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

Page 44: Procesos - SOII - 2016

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