Vous êtes sur la page 1sur 25

Sistemas Operativos 2015

Procesos

Jorge Ramirez
Primeros tiempos
● Un solo programa ocupaba todos los recursos
● Tarea principal del Sistema Operativo: cargar
un trabajo
● Multiprogramación
● Gestionar la carga de trabajos
● Particionar y proteger la memoria
● Gestionar acceso a la CPU
Proceso vs. Programa

Proceso Programa

Entidad activa Entidad pasiva

Instancia que ocupa Instrucciones


memoria, registros, en un disco
archivos, procesador
Definiciones
● Tanembaum: básicamente, es un programa en
ejecución. Tiene asociado un espacio de
direcciones, registros del procesador y
recursos necesarios para la ejecución.
● Flynn, McIver, McHoes:instancia de un
programa ejecutable.
● Silberschatz, Galvin: unidad de trabajo del
sistema operativo
Componentes de un proceso
(Stallings)
● Programa ejecutable
● Datos que el programa necesita (variables,
espacio de trabajo, búferes, etc.)
● Contexto de ejecución
Contexto de ejecución
● Contador de programa
● Registros del procesador
● Recursos
● Archivos abiertos
● Pila
● Dispositivos
Ciclo de vida de un proceso

terminado
nuevo

En ejecución

listo bloqueado
Ciclo de vida de 7 estados

terminado
nuevo

En ejecución

listo bloqueado

Listo Bloqueado
suspendido suspendido
Cambio de contexto

P1 P2

En ejecución En espera

Almacenar registros
de P1

Almacenar estado
de P1

Cargar registros
Y estado de P2

En espera En ejecución
Un proceso en memoria

pila rutinas

Asignación montón
dinámica
datos datos

Instrucciones texto
PCB
● Bloque de Control de Procesos
● Identificación del proceso (PID)
● Identificación del propietario
– permisos
● Valor del Contador de Programa
● Registros del procesador
● Información de memoria
● Estadísticas
Operaciones sobre procesos
● Crear
● Un proceso crea otro proceso
– Proceso padre
– Proceso hijo
● Asignar recursos
– Compartidos con el padre
– Solicitados al sistema
● Proceso inicial: init (UNIX)
● Terminación
● Fin del padre → Fin de los hijos (cascada)
● Liberar recursos
Procesos cooperativos
● Pueden ser afectados por otros procesos
● Objetivos
● Compartir información
● Velocidad de cálculo
● Modularidad
● Conveniencia (multitarea)
Tipos de comunicación
● Directa entre procesos
● Sincrónica
● Asincrónica
● Buzones o puertos
Comunicación sincrónica entre
procesos
P1 P2

Envío de mensaje

recepción

P1 espera la entrega del mensaje para


continuar
Comunicación asincrónica entre
procesos
P1 P2

Envío de mensaje

P1 envía el mensaje pero continúa su tarea


Comunicación directa
● El proceso que envía conoce al destinatario
● Envía el mensaje con el nombre o identificador
del destino
● Comunicación sólo entre dos procesos
● Dificultad de mantenimiento: cambio de nombres o
identificador obligan a cambiar el código
Comunicación por puerto
● Los mensajes se “dejan” en un buzón o puerto
● El buzón o puerto es compartido por varios
procesos
● Ese buzón tiene un identificador
● Permite enviar un mensaje a varios procesos
Limitaciones de los procesos
Programas Servidores
Interactivos ● Reciben muchas
● El usuario quiere peticiones diferentes
seguir usando el simultáneas
programa mientras
éste realiza una
operación de E/S o
cálculo

Muchos cambios
de contexto
Necesidad del concepto de hilos
● Tareas diferentes que usan el mismo código
● → Servidor
● Porciones de proceso que pueden ejecutarse
en paralelo
● → Mayor velocidad de cómputo
● → Permitir actividades diferentes al usuario
Hilos y Procesos
● Proceso tradicional: un solo hilo
● Procesos Livianos vs. Procesos Pesados
● Hilos: compartir código, recursos, datos
Hilos
Unidad de uso de la CPU

● Caracterizados por ● Comparten


● Contador de ● Sección de código
programa ● Sección de datos
● Registros ● Recursos del Sistema
● Pila Operativo
Ventajas de los hilos
● Cambio de contexto económico
● Ejecución en paralelo
● Capacidad de respuesta
● Aprovechamiento de multiprocesadores
Implementación de hilos
● En el núcleo ● En el espacio de
● Se crean mediante usuarios
llamada al Sistema ● Cada hilo genera un
● Si se bloquea un hilo, proceso
no se bloquea el
proceso
Modos de implementación
Muchos a uno Uno a uno Muchos a varios

núcleo

Vous aimerez peut-être aussi