Descripción de procesos
y control
Principales requisitos de un
sistema operativo
• Intercalar la ejecución de varios procesos
para maximizar el uso del procesador y a
la vez proveer de un tiempo de respuesta
razonable
• Asignar recursos a los procesos
• Soportar comunicación interprocesos y
creación de procesos por el usuario
Proceso
• Programa en ejecución
• Unidad de trabajo, también llamado tarea
• Entidad activa (programa es una entidad
pasiva)
Estados de un
proceso
Proceso
• Se puede rastrear
– listar la secuencia de instrucciones que se ejecuta
• Está compuesto por
– código del programa
– actividad actual
– pila
– datos
Ejemplo de ejecución. Procesos
0
100 PC
Despachador 8000
5000
Proceso A
8000
Proceso B
12000
Proceso C
Despachador: Programa que cambia el procesador de un proceso
a otro
Memoria Ppal
Traza del procesador
Timeout
I/O
Modelo de dos estados de
proceso
Expedir
Entrar No Salir
Ejecución
ejecución
Pausa
(a) Diagrama de transición de estados
Cola
Entrar Expedir Salir
Procesador
Pausa
(a) Diagrama de cola
Creación de proceso
• Sumisión de una tarea por lotes
• Ingreso al sistema por parte de un usuario
(log on)
• Creado por el SO para proveer un servicio
• Creado por otro proceso existente
(spawning)
Terminación de un proceso
• El trabajo de lotes realiza una operación
de detención
• El usuario realiza un log off
• El proceso ejecuta un pedido de
terminación del servicio
• Pedido de terminación (o terminación) del
padre
• Condiciones de error y falla
Modelo de 5 estados de procesos
• Sin ejecutar
– listo para ejecutar
– Bloqueado
• esperando E/S
• El despachador no puede simplemente
seleccionar el proceso que ha esperado
más tiempo porque puede estar
bloqueado
Modelo de cinco estados de proceso
• Ejecución
• Listo (NoEj)
• Bloqueado(NE)
• Nuevo
• Terminado
Modelo de cinco estados de
proceso
Expedir Liberar
Admitir
Nuevo Listo Ejecución Terminado
Fin de tiempo
Ocurrir Esperar
evento evento
Bloqueado
Cola simple de bloqueados
Cola listos
Despachar Liberar
Admitir
Procesador
Expiración del cuanto
Esperar evento
Ocurrir
evento
Cola bloqueados
Múltiples colas de bloqueados
Cola listos
Despachar Liberar
Admitir
Procesador
Expiración del cuanto
Ocurre Esperar evento 1
evento 1
Cola evento 1
Ocurre Esperar evento 2
evento 2
Cola evento 2
Procesos suspendidos
• El procesador es más rápido que E/S entonces
todos los procesos podrían estar esperando por E/S
• Intercambiar estos procesos con el disco para
liberar más memoria
• Estado bloqueado se convierte en estado
suspendido cuando se ha sacado a disco
• Dos nuevos estados
– Bloqueado, suspendido
– Listo, suspendido
Razones para suspensión
• Swapping
• Otras razones del sistema operativo
– el proceso está causando problemas
• Pedido de un usuario interactivo
• Cronómetro
– proceso que se ejecuta a intervalos
• Pedido del proceso padre
Diagrama de transición de estado de
procesos con dos suspendidos
Nuevo
Admitir Admitir
Suspender
Activar Expedir
Listo, Salir
Listo Ejecución Terminado
suspendido
Suspender Fin de tiempo
Ocurrir Esperar
Ocurrir
evento evento
evento
Activar
Bloqueado,
Bloqueado
suspendido
Suspender
Estructuras de datos y control de
procesos
Estructuras de datos del SO
• El SO planifica y despacha procesos para
ser ejecutados en el procesador
• Asigna recursos a los procesos
• Responde los pedidos de los programas
de usuario
Procesos y recursos
P1 P2 Pn
Mem. virtual
Recursos
Mem.
Procesador E/S E/S E/S Ppal
Instantánea de asignación de recursos
Estructuras de control del SO.
Tablas
Imagen de proceso
Tablas Memoria
Memoria Proceso
1
Dispositivos Tablas E/S
Archivos
Procesos
Tablas Archivos
Tabla de procesos
Proceso 1 Imagen de proceso
Proceso 2
Proceso 3
Proceso
n
Proceso n
Tablas de memoria
• Asignación de memoria real a procesos
• Asignación de memoria secundaria a
procesos
• Atributos de protección para acceso a
regiones de memoria compartida
• Información necesaria para administrar
memoria virtual
Tablas de E/S
• Dispositivos de E/S disponibles o
asignados
• Estado de operación de E/S
• Lugar de memoria principal usado como
fuente o destino de la transferencia con el
dispositivo de E/S
Tablas de archivos
• Existencia de archivos
• Localidad en memoria secundaria
• Estado actual
• Atributos
• Algunas veces esta información la
mantiene el sistema de manejo de
archivos
Tabla de procesos
Punteros a la información de cada proceso
• Imagen de proceso consiste en programa,
datos, pila y atributos
• Atributos
– bloque de control de proceso
Bloque de control de proceso
• Identificación de proceso
– Identificador numérico único
• puede ser un índice en la tabla de procesos primarios
– Identificador de usuario
• quién es responsable del trabajo
– Identificador del proceso padre
• Información de estado del procesador
– Contenidos de los registros del procesador
• Registros visibles al usuario
• Registros de control y estado
• Punteros de pila
– Palabra de estado de programa (PSW)
• contiene información de estado
• Ejemplo: el registro EFLAGS en máquinas Pentium
• Información de control de procesos
Información adicional necesaria para que el SO controle y coordine los
diversos procesos activos
• información de planificación y estado
• estructuración de datos
• comunicación interprocesos
• privilegios del proceso
• manejo de memoria
• utilización y pertenencia de un recurso
Control de procesos
• Modos de ejecución
– Modo usuario
• Menos privilegiado
• Se ejecutan normalmente los programas de usuario en este
modo
– Modo sistema, modo control o modo kernel
• más privilegiado
• Se ejecuta el kernel del sistema operativo en este modo
Funciones típicas de un núcleo
de sistema operativo
Administración de procesos
• Creación y terminación de procesos
• Planificación y despacho de procesos
• Conmutación de procesos
• Sincronización de procesos y soporte para comunicación entre
procesos
• Administración de bloques de control de procesos
Manejo de memoria
• Asignación del espacio de direcciones a los procesos
• Swapping
• Manejo de segmentos y páginas
Manejo de E/S
• Manejo de buffer
• Asignación a procesos de canales de E/S y dispositivos
Funciones soportadas
• Manejo de interrupciones
• Contabilidad
• Monitoreo
Creación de procesos
• Asignar un identificador único de proceso
• Asignar espacio al proceso
• Inicializar el bloque de control de proceso
• Establecer los vínculos apropiados
– Ej: agregar nuevo proceso a la lista usada para la
cola de planificación
• Otros
– mantener un archivo de estadísticas
Conmutación de procesos
• Cuestiones de diseño
– ¿Qué sucesos provocan un cambio de
proceso?
– ¿hay que distinguir entre cambio de modo y
cambio de proceso?
– ¿qué debe hacer el so con las diferentes
estructuras de datos bajo su control para
llevar a cabo un cambio de proceso?
Conmutación de procesos
Sucesos para que el so tome control
• Interrupciones (Externas a la ejecución de la
instrucción actual)
– Reloj
• proceso ha usado el máximo tiempo de ejecución permitido por vez
– E/S
– Fallo de memoria
• la dirección de memoria está en memoria virtual, debe ser traida a
memoria real
• Trampa (Asociada con la ejecución de la instrucción
actual)
– ocurrencia de un error
– puede ser la causa de que un proceso se mueva al estado de
terminado
• Llamada a supervisor (pedido explícito)
– por ejemplo abrir un archivo
Conmutación de procesos
Cambio de modo
• Cuando hay una interrupción pendiente el
procesador
– Salva contexto del programa que está ejecutando
• La parte del BCP de información de estado del procesador
– Cambia el contador de programa al que corresponde
a la rutina de interrupciones
– Cambia de modo de usuario a modo de núcleo
– Ejecuta rutina de interrupciones y al terminar esta se
puede
• Reanudar ejecución del mismo proceso o
• Cambiar de proceso
Conmutación de procesos
Cambio completo de proceso
• Guardar contexto de procesador incluyendo contador de
programa y otros registros
• Actualizar el bloque de control de proceso con el nuevo
estado y cualquier información contable
• Mover bloque de control de proceso a la cola apropiada
listo, bloqueado
• Seleccionar otro proceso a ejecutar
• Actualizar el bloque de control de proceso del proceso
seleccionado
• Actualizar estructuras de datos de manejo de memoria
• Restaurar contexto del proceso seleccionado
Ejecución del sistema operativo
Ejecución del sistema operativo
• Kernel sin proceso
– ejecutar kernel fuera de cualquier proceso
– el código del sistema operativo se ejecuta
como una entidad separada que opera en
modo privilegiado
– proceso: programa de usuarios
P1 P2 Pn
Núcleo
Ejecución del sistema operativo
• Ejecución dentro de
procesos de usuarios
– software de SO dentro del
contexto de los procesos de
usuario
– proceso se ejecuta en modo
privilegiado cuando se
ejecuta código de SO
P1 P2 Pn
Fciones Fciones Fciones
SO SO SO
Funciones conmutación procesos
Ejecución del sistema operativo
• Sistema Operativo basado en procesos
– funciones principales del kernel son procesos
separados
– el sistema operativo invoca a un proceso
U1 U2 Un SO1 SOk
Funciones conmutación procesos
Diagrama de transición de
estados en UNIX
fork
Creado
Desalojado
Devolver
memoria No suficiente memoria
al usuario
suficiente (swapping solo sistema)
Ejecución apropiar
usuario Sacar de memoria
volver reprogramar Listo a ejecutar Listo a ejecutar
en memoria sacado
proceso
Llamada a sistema, Poner en memoria
Ejec.
interrupción
kernel
dormir despertar despertar
interrumpir,
devolver interrupción terminar
Dormido Sacar de dormido,
Zombie
en me- memoria Sacado
moria
Hilos
Procesos
• Unidad de propiedad de Recursos. Pertenencia
de recursos - se le asigna al proceso un espacio de
direcciones virtual para contener la imagen del
proceso, también a veces la memoria principal y
control de otros recursos
• Unidad de expedición o Despacho - proceso es
un camino de ejecución a través de uno o más
programas
– se puede intercalar la ejecución con otros
procesos
• El sistema operativo trata estas dos características
en forma independiente
Procesos
• Hilo se refiere al despacho
• Proceso o tarea se refiere a la pertenencia
de los recursos
Multihilos
• El sistema operativo soporta hilos
múltiples de ejecución dentro de un solo
proceso
• MS-DOS soporta un único hilo
• UNIX soporta múltiples procesos de
usuarios pero sólo un hilo por proceso
• Windows, solaris y otros soportan hilos
múltiples
Hilos y procesos
un proceso un proceso
un hilo múltiples hilos
múltiples procesos múltiples procesos
un hilo por proceso múltiples hilos por proceso
Procesos
• Tienen un espacio de direcciones virtual
que contiene la imagen del proceso
• Acceso protegido a los procesadores,
otros procesos, archivos y recursos de
E/S
Hilos
• Tiene un estado de ejecución (ejecución, listo, etc)
• Guarda contexto de hilo cuando no se está
ejecutando
• Tiene una pila de ejecución
• Tiene algún almacenamiento estático por hilo para
variables locales
• Tiene acceso a la memoria y recursos de su
proceso
– todos los hilos de un proceso comparten esto
Modelos de procesos de uno y
múltiples hilos
Modelo Proceso Modelo Proceso
hilo único Multihilos
Hilo Hilo Hilo
Bloque Bloque Bloque
Bloque Pila Control Control Control
Control Usuario Hilo Hilo Hilo
Proceso
Bloque Pila Pila Pila
Espacio Pila
Control Usuario Usuario Usuario
Dirección Kernel
Proceso
Usuario
Espacio Pila Pila Pila
Dirección Kernel Kernel Kernel
Usuario
Beneficios de los hilos
• Lleva menos tiempo crear un hilo nuevo que un
proceso
• Menor tiempo para terminar un hilo que un
proceso
• Menor tiempo cambiar entre dos hilos dentro del
mismo proceso
• Ya que los hilos dentro del mismo proceso
comparten memoria y archivos, se pueden
comunicar entre sí sin invocar al kernel
Hilos
• Suspender un proceso implica suspender
todos los hilos del proceso ya que todos
los hilos comparten el mismo espacio de
direcciones
• Al terminar un proceso se terminan todos
los hilos dentro del proceso
Hilos. Funcionalidad
• Estados de los hilos
– Ejecución, listo, bloqueado
• Operaciones básicas
– Crear (spawn)
– Bloquear
– Desbloquear (despertar)
– Terminar
• Sincronización de hilos
Hilos de nivel usuario
• Todo el manejo de hilos se hace a través
de la aplicación
• El kernel no sabe de la existencia de hilos
• Intercambio de hilos no requiere modo
privilegiado de kernel
• La planificación es específica a la
aplicación
Hilos de nivel núcleo
• Windows 2000, Linux y OS/2 son
ejemplos
• El núcleo mantiene la información de
contexto para el proceso y los hilos
• Cambiar entre hilos requiere kernel
Propuestas combinadas para
hilos
• Solaris es el ejemplo
• Creación de hilos hecha en el espacio de
usuario
• El grueso de la planificación y
sincronización de hilos se hace en el
espacio de usuario
Hilos nivel usuario y nivel kernel
Procesos Windows
• Implementados como objetos
• Un proceso ejecutable puede contener
uno o más hilos
• Ambos objetos procesos e hilos tienen
capacidades de sincronización
incorporadas
Procesos Windows
Objeto proceso en Windows
Objeto hilo en Windows
Estado de hilos Windows
Ejecutable
Elegir para Standby
Cambiar
ejecutar
Apropiado
Listo Ejecución
Desbloquear/reanudaar
Recurso Terminar
Recurso disponible Bloquear/
disponible
Suspender
Transición Esperando Terminado
Desbloquear
Recurso no disponible
No ejecutable
Solaris
• Proceso incluye el espacio de direcciones
del usuario, pila y bloque de control de
proceso
• Hilos multiusuario
• Procesos livianos
• Hilos de núcleo
Solaris
Procesos en Linux
• Estado
• Información planificación
• Identificadores
• Comunicación interprocesos
• Links
• Tiempos y cronómetros
• Sistema de archivos
• Memoria virtual
• Contexto específico al procesador
Linux
Modelo de procesos/hilos