Está en la página 1de 22

Sistemas Operativos

Ing. Karina Real A.

Administración de Procesos
¿Qué es un proceso? PROCESO

Programa
en
ejecución
Consume
Sistema Ejecuta
Pueden recursos: CPU,
por lotes trabajos
ejecutarse Memoria,
concurrente Archivos y
mente Dispositivos
E/S
Sistema Ejecuta
Proceso tiempo programas de
compartido usuario (tareas)
Los recursos se
asignan al
Ejecutan el proceso en el
código del momento de
crearlo o
usuario mientras se está
ejecutando
Unidad de PROCESO TRABAJO TAREA
trabajo del
sistema
Proceso secuencial
Un programa en ejecución (conjunto La ejecución debe proceder en forma
de instrucciones de máquina) secuencial

Parámetros de subrutinas

La Pila del proceso contiene datos


Direcciones de retorno
temporales:

Formado

Sección de datos con variables


Variables temporales
globales
Un proceso es una entidad activa ,
con un contador de programa que
especifica la siguiente instrucción que
debe ejecutarse.
Estado de un proceso

En ejecución En espera (Bloqueado) Listo


• Las instrucciones se están ejecutando • El proceso está esperando a que • El proceso está esperando a que se le
ocurra algún suceso (conclusión de asigne a un procesador
E/S)

Sólo un proceso puede encontrarse en ejecución pero varios procesos pueden estar listos o bloqueados.
Estados de los Procesos

Nuevo: • El proceso acaba de ser creado

Ejecución: • Las instrucciones están siendo ejecutadas

En espera: • El proceso está esperando por la ocurrencia de algún evento

Listo: • El proceso está esperando para ser asignado a la CPU

Terminado: • El proceso ha finalizado su ejecución


Diagrama de Estados

Nuevo admitido Terminado


interrumpido sale

Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
Diagrama de Estados
El proceso está listo
para ser ejecutado
Nuevo admitido en
Terminado
cuanto la CPU esté
libre. sale
interrumpido

Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
Diagrama de Estados

Nuevo admitido Terminado


interrumpido sale es
El proceso
creado.
Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
Diagrama de Estados
El proceso está
siendo ejecutado Terminado
Nuevo admitido en
la CPU.
interrumpido sale

Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
Diagrama de Estados
El proceso no puede
Nuevo admitido Terminado
continuar su
ejecución
interrumpido sale hasta que
no ocurra un evento .
Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
Diagrama de Estados
El proceso termina
su ejecución (El SO
Nuevo Terminado
admitido
lo elimina de su tabla
interrumpido sale
de procesos) .
Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
Diagrama de Estados
El proceso ha
ocupado su tiempo
Nuevo admitido Terminado
de CPU pero no ha
interrumpido salefinalizado.

Listo Ejecución

Espera de evento

Espera I/O o espera de evento


I/O o evento completado
BloCada proceso en el sistema operativo se representa por
medio de su propio bloque de control del proceso (PCB)
PCB es un bloque o registro de datos que contiene
diversa información relacionada con un proceso concreto

que APUNTADOR
ESTADO DEL Estado del proceso Contador del programa
• Indica la dirección de la
Registros de CPU
• Dependen de la arquitectura

de PROCESO • Nuevo
siguiente instrucción que el del computador
• Listo proceso ejecutará • Registros de propósito general
• En ejecución • Se guardan conjuntamente
NÚMERO DEL PROCESO • En espera con el PC para atender una
interrupción

cont CONTADOR DEL PROGRAMA

rol REGISTROS
Información contable
• La cantidad de tiempo real y de
la CPU utilizado, límite de
tiempo, números de cuenta,
Información de
administración de memoria
• Registros límites o tablas de
páginas de la memoria
Información de
planificación de CPU
• Incluye una prioridad el
proceso, apuntadores a la cola

de
números de proceso, etc. principal de planificación y otros
parámetros de planificación.

LÍMITES DE MEMORIA

proc LISTAS DE ARCHIVOS


ABIERTOS
Información del estado de

esos
la E/S
. • Solicitudes de E/S pendientes,
dispositivos de E/S asignados
. al proceso, lista de archivos
. abiertos, etc.
Procesos Múltiples tareas en la CPU con varios procesos

concurrentes

1 Compartir recursos físicos

2 Compartir recursos lógicos


Razones para permitir ejecución
concurrente
3 Acelerar cálculos

4 Modularidad

5 Comodidad
Creación y terminación de procesos
Para conseguir la ejecución concurrente se debe contar con un mecanismo
que permita la creación y terminación de procesos

Un proceso puede crear


varios procesos nuevos a El proceso que crea se llama Los nuevos procesos se
Creación de procesos
través de una llamada al proceso PADRE llaman HIJOS
sistema

Cuando un proceso crea Al restringir a un proceso Los procesos hijos pueden


otro nuevo: hijo a un subconjunto de los obtener sus recursos
• El padre continua su ejecución procesos del padre se evita directamente del S. O. o del
concurrentemente con sus hijos que éste sature al sistema proceso PADRE, el cual
• El padre espera que todos sus hijos creando demasiados debe dividir los recursos
hayan terminado
subprocesos entre sus hijos
Un proceso termina cuando
El proceso puede devolver
concluye la ejecución de su
Terminación de procesos datos (salida) a su proceso
último enunciado y solicita al S.
padre.
O. que elimine el proceso.

Un proceso puede provocar la


Este tipo de llamada puede ser
El padre necesita saber la terminación de otro a través de
invocada por el padre del
identidad de sus hijos la llamada al sistema apropiada
proceso que terminará
(abort)

Un padre puede terminar la El padre debe contar con


ejecución de alguno de sus mecanismos para inspeccionar
hijos, cuando: el estado de sus hijos:
• El hijo ha excedido el uso de alguno de los • Terminación en cascada
recursos que se le han asignado • Usando la llamada al sistema EXIT y WAIT
• Ya no se requiere la tarea asignada al hijo
Relación entre procesos
• Si no puede afectar o ser afectado por los otros procesos que se ejecutan en el

Procesos sistema
• Su estado no es compartido con ningún proceso
• Su ejecución es determinista
Independientes • Su ejecución es reproducible
• Su ejecución puede detenerse y reiniciarse sin ocasionar efectos adversos

• Si puede afectar a ser afectado por los demás procesos que se ejecutan en el sistema
• Su estado es compartido por otros procesos

Cooperativos • No puede predecir el resultado de su ejecución, ya que depende de una secuencia


de ejecución relativa
• El resultado de su ejecución es no determinista, puesto que no siempre será el
mismo para una misma entrada
Procesos e Hilos
Proceso

Un proceso incluye un espacio de direcciones virtuales para el manejo de la


Propiedad de recursos.
De vez en cuando a un proceso se le puede asignar control o propiedad de
El sistema operativo realiza la función de protección para evitar
imagen del proceso (colección de programa, datos, pila y atributos definidos recursos tales como la memoria principal, canales E/S, dispositivos E/S y
interferencias no deseadas entre procesos en relación con los recursos.
en el bloque de control del proceso) archivos.

Planificación/ejecución. Un proceso tiene un estado de ejecución (Ejecutando, Listo, etc.) y una


La ejecución de un proceso sigue una ruta de ejecución (traza) a través de
La ejecución puede estar intercalada con ese u otros procesos. prioridad de activación y ésta es la entidad que se planifica y activa por el
uno o más programas.
sistema operativo.

Hilo
Para distinguir estas dos características, la unidad que se activa se suele denominar hilo (thread) La unidad de propiedad de recursos se suele denominar proceso o tarea1 .
Multihilo
Multihilo se refiere a la capacidad de un sistema
operativo de dar soporte a múltiples hilos de ejecución
en un solo proceso.

El enfoque de un solo hilo de ejecución por proceso, se


conoce como monohilo.
• Ejemplo: Soporta un único proceso de usuario y un único hilo es el MS-
DOS.
• Algunas variedades de UNIX, soportan múltiples procesos de usuario,
pero sólo un hilo por proceso.

El entorno de ejecución de Java es un ejemplo de


sistema con un único proceso y múltiples hilos.

El enfoque de múltiples procesos con múltiples hilos es


el de Windows, Solaris, Mach, y OS/2 entre otros.
Modelos de procesos con Hilos
Funcionalidades de los Hilos
• Estados de los hilos. • Operaciones básicas con hilos que están
asociadas con un cambio de estado del hilo:
• Ejecutando, Listo y Bloqueado. • Creación. Cuando se crea un nuevo proceso, también
se crea un hilo de dicho proceso. Posteriormente, un
• No tiene estados de suspensión. hilo del proceso puede crear otro hilo dentro del
mismo proceso, proporcionando un puntero a las
instrucciones y los argumentos para el nuevo hilo. Al
nuevo hilo se le proporciona su propio registro de
contexto y espacio de pila y se coloca en la cola de
Listos.
• Bloqueo. Cuando un hilo necesita esperar por un
evento se bloquea, almacenando los registros de
usuario, contador de programa y punteros de pila. El
procesador puede pasar a ejecutar otro hilo en estado
Listo, dentro del mismo proceso o en otro diferente. •
• Desbloqueo. Cuando sucede el evento por el que el
hilo está bloqueado, el hilo se pasa a la cola de Listos.
• Finalización. Cuando se completa un hilo, se liberan
su proceso
Un aspecto importante es si el bloqueo de un hilo implica el bloqueo del registrocompleto.
de contexto y pilas.

También podría gustarte