{
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
Top Related