0% encontró este documento útil (0 votos)
43 vistas64 páginas

2 Procesos

Los principales requisitos de un sistema operativo incluyen intercalar la ejecución de múltiples procesos para maximizar el uso del procesador y proveer un tiempo de respuesta razonable, asignar recursos a los procesos, y soportar comunicación interprocesos y creación de procesos por el usuario. Un proceso es un programa en ejecución y una unidad de trabajo. Los estados de un proceso incluyen listo, en ejecución, bloqueado y terminado. El sistema operativo usa estructuras de datos como tablas de mem

Cargado por

g.almonacid
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas64 páginas

2 Procesos

Los principales requisitos de un sistema operativo incluyen intercalar la ejecución de múltiples procesos para maximizar el uso del procesador y proveer un tiempo de respuesta razonable, asignar recursos a los procesos, y soportar comunicación interprocesos y creación de procesos por el usuario. Un proceso es un programa en ejecución y una unidad de trabajo. Los estados de un proceso incluyen listo, en ejecución, bloqueado y terminado. El sistema operativo usa estructuras de datos como tablas de mem

Cargado por

g.almonacid
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

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

También podría gustarte