cuarta clase - procesos primera parte

Post on 23-Jun-2015

341 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentación de Procesos utilizada el 12/04

TRANSCRIPT

{

PROCESOS I Sistemas Operativos II

Prof. Pablo Macónhttp://soii-its.blogspot.com/

Para entender qué es un proceso y tratar de dar una definición, veamos primero esta alegoría:

Procesos

Un “científico computacional” se propone a cocinar una torta

Tiene la receta, los ingredientes y una cocina apta para la tarea

Procesos

Cocinero Procesador Receta Programa (algoritmo)

Ingredientes Datos de entrada

Procesos

El proceso será la actividad de preparar la torta en sí, eso quiere decir que el cocinero vaya siguiendo los pasos de la receta, agregando los ingredientes y poniendo la torta en el horno

Procesos

En un momento dado, aún no habiendo terminado de cocinar, se acerca la hija del cocinero llorando porque se cortó un dedo.

Procesos

Antes de ir a curarla, el cocinero (que además es un científico computacional) anota el punto de la receta donde estaba (se guarda el estado el proceso)

Procesos

Podemos decir que el procesador conmuta de un proceso a otro de mayor prioridad

Procesos

Luego de terminar de atender a su hijita, lee de la memoria el estado del proceso y continúa en el mismo punto en el que lo había dejado

Procesos

Un proceso es una instancia de un programa en ejecución.

Una abstracción del Sistema operativo, esencial en la multiprogramaciónProcesos:

Definición

Varias instancias del mismo programa corriendo al mismo tiempo son procesos diferentes, cada uno tiene su propio Contador de programa, variables y espacio en la memoriaProcesos:

Principios

Cada proceso tiene su propia máquina virtual y piensa que es el único proceso en el sistema

En realidad el procesador conmuta de uno a otro de manera muy rápidaProcesos:

Principios

Procesos: Principios

La velocidad a la que se ejecuta un proceso no es siempre igual, puede variar de una instancia a otra

En los sistemas de Tiempo Real hay que tomar medidasProcesos:

Principios

Los Procesos deben ser creados por el SO en algún momento.

Los SO básicos tienen todos sus procesos presentes todo el tiempo

Los SO grandes deben crearlos y terminarlos en algún momentoProcesos: Creación

Existen cuatro eventos que provocan la creación de procesos: El Arranque del Sistema Un proceso que llama a otro Una petición del usuario Un trabajo por lotes

Procesos: Creación

En el Arranque del Sistema: Se crean los procesos en primer

plano (interactúan con el usuario)

Se crean los demonios (segundo plano) con funciones específicas

Procesos: Creación

En los sistemas Unix-like (como GNU/Linux) existe una llamada al sistema denominada fork()

Procesos: Creación

Cuando un proceso padre quiere crear un proceso hijo ejecuta una llamada al sistema

fork() Crea una copia exacta del padre

Procesos: Creación

Tan exacta que comparten el espacio de memoria, las variables, los registros y los archivos

Procesos: Creación

Luego se separan, utilizando otra llamada al sistema

execve() El hijo reclama para sí, un espacio en la memoria, registros propios e identificadores de archivos

Procesos: Creación

Puede darse por Salida normal (voluntaria) Salida por error (voluntaria) Error Fatal (involuntaria) Eliminado por otro proceso

(involuntaria)Procesos: Terminación

La mayoría de los procesos termina de manera normal utilizando una llamada al sistema: UNIX y Linux: exit Windows: ExitProcessProcesos:

Terminación

Un error fatal puede ser tratar de dividir por cero o hacer referencia a una dirección de memoria que no existe

Procesos: Terminación

Para terminar un proceso debe tener permisos específicos

Se utilizan también llamadas al sistema: Unix/Linux: kill Windows: TerminateProcess

Procesos: Terminación

En otros sistemas (no en Windows ni en UNIX) cuando un proceso padre termina, se eliminan todos sus hijos

Procesos: Terminación

En UNIX cuando se inicia el sistema se crea un proceso que es padre de todos:

init A partir de él se crean todos los demásProcesos:

Jerarquía

Como los procesos hijos de init a su vez van creando procesos hijos, se crea una estructura en forma de arbol

Procesos: Jerarquía

Procesos: Jerarquía

En Windows no hay un concepto de jerarquía de procesos

Todos los procesos son igualesProcesos: Jerarquía

La CPU solo puede ejecutar un proceso a la vez

Eso quiere decir que puede haber procesos que estén esperando para ser ejecutados y uno usando la CPU

Procesos: Estados

Hay 3 estados básicos1. En Ejecución2. Listo3. Bloqueado

Procesos: Estados

En Ejecución Está utilizando la CPU en este

momento Ningún otro proceso puede estar

ejecutándose en ese mismo momento

Procesos: Estados

Listo El proceso está en condiciones

de utilizar la CPU en cuanto se le dé entrada

No puede hacerlo porque hay otro proceso usando la CPU

Debe esperar a que la CPU se libere

Procesos: Estados

Bloqueado No puede ejecutarse aunque

quisiera hasta que se cumpla determinada condición externa por ejemplo: está esperando a

que se cargue un archivo de disco

Procesos: Estados

Procesos: Estados

Procesos: Estados

1. El proceso se bloquea para recibir E/S

2. El planificador selecciona otro proceso

3. El planificador selecciona este proceso

4. La E/S ya está disponible

Procesos: Transiciones

1. De en Ejecución a Bloqueado

El SO descubre que el proceso no puede seguir ejecutándose porque le está faltando algún dato

El proceso se pone en pausa (pulse una tecla para continuar)

Procesos: Transiciones

1. De en Ejecución a Listo El SO cree que el proceso ya se

ha ejecutado suficiente tiempo Guarda el estado del proceso y

lo envía a Listo para ejecutarse

Procesos: Transiciones

1. De Listo a en Ejecución Vuelve a tocarle en suerte

continuar ejecutándose, desplazando al anterior ocupante de la CPU

Retoma desde el punto en que había quedado

Procesos: Transiciones

1. De Bloqueado a Listo Cuando lo que estaba

esperando llega, el proceso vuelve a estar listo para ejecutarse, pero debe ponerse en la fila a esperar su turno

Procesos: Hilos

Se los conoce como micro-procesos

Son procesos dentro de otro Varios hilos de procesamiento en un mismo espacio de direcciones

Procesos: Hilos

Más ligeros y fáciles de crear y destruir que los procesos

Muy útiles en sistemas con varias CPU

Procesos: Hilos

Por ejemplo cuando estamos escribiendo un documento largo, el procesador de texto guarda cada cierto tiempo el trabajo.

Eso no requiere de un proceso nuevo, puede utilizarse un hilo

FELICES VACACIONESNOS VEMOS EL 26/04NO OLVIDEN ENVIAR POR CORREO EL TRABAJO EL DÍA 24/04

pablomacon@gmail.com

top related