{
PROCESOS I Sistemas Operativos II
Prof. Pablo Macón
http://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ón
Procesos: 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 memoria
Procesos: 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ápida
Procesos: 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 medidas
Procesos: 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 momento
Procesos: 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: ExitProcess
Procesos: 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ás
Procesos: 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 iguales
Procesos: 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ásicos
1. En Ejecución
2. Listo
3. 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 VACACIONES
NOS VEMOS EL 26/04
NO OLVIDEN ENVIAR POR CORREO EL TRABAJO EL DÍA 24/04
Top Related