You are on page 1of 63

PROCESOS

Ctedra: Sistemas Operativos

UNDEC
Procesos
Proceso: Concepto
Abstraccin de un programa en ejecucin.

Es la entidad mnima planificable.


(Antigua)

Es la entidad mnima de asignacin de


Recursos. (Actual).
Proceso: Otras denominaciones
PROCESO: Denominacin Genrica

JOB/TRABAJO: Sinnimo de Proceso,


generalmente asociada a procesos tipo
BATCH.

TASK/TAREA: Sinnimo de Proceso,


generalmente asociado a Procesos del
Sistema o Procesos en Tiempo Real
Estados de un Proceso
Proceso: Transiciones
LISTOEJECUCION
El despachador selecciona al proceso para ejecucin
EJECUCION LISTO
El proceso ha ejecutado demasiado tiempo, se le ha vencido el
TimeSlice
El proceso fue interrumpido y otro proceso de mayor prioridad
ha quedado en estado LISTO. (Desalojo/Preemptive)
EJECUCION BLOQUEADO
El proceso requiere algo que necesita esperar
Quiere acceder a un recurso de E/S
Debe esperar por el resultado de un Comunicacin
BLOQUEADO LISTO
Cuando el evento que estaba esperando que ocurra ha
ocurrido.
Procesos: Otra visin
Constitucin de un Proceso
Programa de Usuario
Datos de Usuario
Pila o Stack(s)
Para llamada a procedimientos y pasaje de
parmetros
Process Control Block (contexto de Ejecucin)
PCB
Atributos que necesita el SO para controlar el proceso.
Esto incluye:
Informacin de Identificacin
Estado del Procesador
Informacin de Control
Constitucin de un Proceso
Cambio de Contexto
Cuando el SO
intercambia procesos debe
resguardar el estado del
proceso actual y cargar el
estado del nuevo proceso.

Este cambio de Contexto


representa un overhead, no
se hace trabajo til
mientras se conmuta.

Es dependiente del
soporte de hardware
Cambio de Contexto
Salvar el contexto implica resguardar el PC y otros Registros

Actualizar el PCB del proceso en ejecucin con su nuevo estado e


informacin asociada

Colocar la entrada del PCB en la cola apropiada. LISTO,


BLOQUEADO.

Seleccionar el prximo proceso a ejecutar

Actualizar el PCB del proceso seleccionado

Restaurar el contexto de CPU del proceso seleccionado.


Cuando hacer el Cambio?
Un cambio de contexto se debe hacer cuando el
SO ha obtenido el control de la CPU
System Call
Explicitamente el proceso ha requerido un servicio del
OS. Probablemente el proceso quede bloqueado
Trap/Fault
Se ha producido un error al ejecutar la ltima
instruccin.
Interrupcin
Un evento externo ha causado una interrupcin. El
control se ha trasferido a la ISR.
C.Contexto vs C. de Modo
Cambio de modo:
De usuario a sistema (excepcin, llamada o interrupcin).
De sistema a usuario (RETI).
No hay c. de contexto: Mismo proceso en distinta fase.

Cambio contexto => Cambio de proceso.


Slo cuando proceso est en fase de sistema.
El propio proceso (P):
cambia su estado.
activa el planificador-> selecciona Q.
salva su contexto en BCP.
restaura contexto de Q del BCP-> ya est ejecutando Q.
CAMBIO DE CONTEXTO
Tipos de cambio de contexto
Cambio de contexto voluntario :
Proceso realiza llamada al sistema (o produce una excepcin
como un fallo de pgina) que implica esperar por evento
Transicin de en ejecucin a bloqueado
Ejemplos: leer del terminal, bajar un semforo cerrado, fallo de
pgina
Motivo: Eficiencia en el uso del procesador
Cambio de contexto involuntario :
S.O. le quita la UCP al proceso
Transicin de en ejecucin a listo
Ejemplos: fin del tiempo de ejecucin o pasa a listo un
proceso bloqueado de mayor prioridad
Motivo: Reparto del procesador
CAMBIO DE CONTEXTO
El cambio de contexto no corresponde a trabajo productivo,
sino que es burocracia (overhead)

Un cambio de contexto suele tardar de 1 a 1000 [seg]


Process Control Block (PCB)
Espacio de Direciones
Asociado a cada proceso hay un Espacio de Direcciones

El espacio de direcciones contiene:


El programa ejecutable
Los Datos del Programa
El Stack

La Tabla de Procesos es un Vector o una lista enlazada


en Memoria

Las funciones claves de la gestin de procesos son:


Creacin de Procesos
Terminacin de Procesos
Intercambio de Procesos
Jerarqua de Procesos
En algunos SO un proceso puede crear uno o mas
procesos hijos (child processes) los cuales pueden crear
otros nuevos procesos.

Los procesos se pueden comunicar entre s


utilizando IPC (InterProcess Communications).

Cada proceso tiene asignado un identificador de


proceso (PID) que le fue asignado por el SO.

El PID es un nmero creciente no repetible de cada


proceso.
Jerarqua de Procesos
1
init

139 145 2019 2101


getty getty getty getty

3761
sh

4519
sort
THREADS HILOS: Concepto
Un hilo es una abstraccin de un procesador (Program
counter, registros de trabajo y pila de ejecucin)

Una tarea (o proceso) permite que los hilos


compartan: Cdigo, datos y recursos del SO

Un proceso tradicional es una tarea con un solo hilo

A los hilos tambin se les denominan procesos ligeros,


en contraposicin a procesos pesados en el concepto
tradicional

Los hilos son ms eficientes en la creacin y en el


cambio de contexto
Un hilo comparte con sus hilos compaeros:
Seccin de cdigo
Seccin de datos
Recursos del S.O.
Ventajas de los hilos respecto de los procesos

Creacin y finalizacin ms rpida


Los hilos son ms eficientes en el cambio de
contexto
Conmutacin entre hilos del mismo proceso ms
fcil
Mejor comunicacin entre hilos de un mismo
proceso
Varios hilos de un mismo proceso pueden ejecutarse
en paralelo (paralelismo real si hay ms de un
procesador)
Objetivos de los hilos
El objetivo de los hilos es facilitar la escritura de
aplicaciones concurrentes cooperativas

Ejemplos de utilizacin
Un proceso servidor que utiliza una hebra para
atender a cada peticin de cliente
Un procesador de texto, con una hebra para el
despliegue grfico, otra para atencin del teclado y
otra para correccin ortogrfica.
Un juego de aviones, cada elemento del juego
(aviones, naves, etc...) pueden ser un hilo de
ejecucin
Estados y contexto de un hilo
Cada thread tiene recursos propios:
Una pila, un estado y una copia del contenido de los registros
Las colas de listos y bloqueados contienen threads en
vez de procesos
Un hilo no puede estar suspendido (se suspende el
proceso completo con todos sus hilos)

Estados y contexto de un hilo


La tabla PCB (Process Control Block) slo contiene
informacin general del proceso + lista de threads
Bloque de Control de Thread (BCT):
Info. especfica del thread (estado, copia de registros., pilas
de usuario y ncleo, prioridad, puntero a BCP del proceso,
etc.)
THREADS HILOS: Concepto
THREADS HILOS: Concepto
THREADS HILOS: Concepto
THREADS: Porque utilizarlos?
Algunos programas tienen mejor rendimiento si
utilizan threads para comunicarse entre s. (Ej:
Servidores) que hacindolo utilizando solo un flujo de
instrucciones.

En sistemas multiprocesador, los threads pueden


ejecutarse en paralelismo Real, permitiendo que un
programa pueda dividir su trabajo entre distintas
CPUs. Su rendimiento es mejor que con nico hilo que
solo utilizara una CPU a la vez.
Planificacin de CPU

La planificacin del procesador se refiere


a la manera o tcnicas que se usan para
decidir cuanto tiempo de ejecucin y
cuando se le asignan CPU a cada proceso
del sistema. Esto es crucial para el buen
funcionamiento del sistema.
Planificacin de CPU
Selecciona entre los procesos que estn LISTOS en
memoria

Las decisines de planificacin de CPU tienen lugar


cuando el proceso:
1. Pasa de EJECUCIONBLOQUEADO
2. Pasa de EJECUCIONLISTO
3. Pasa de BLOQUEADOLISTO
4. Finaliza.
Modelo del Sistema
Podemos considerar que la vida activa de un proceso
es una sucesin de:
rfagas de CPU -> el proceso ejecuta instrucciones
rfagas de E/S -> el proceso utiliza o espera por la
E/S

Segn la utilizacin de los recursos, se observan:


procesos intensivos en CPU (ej. clculos
numricos)
procesos intensivos en E/S (ej. interactivos)
Niveles de Planificacin
DE LARGO PLAZO:
Decide que trabajos (proyectos de procesos) son
candidatos a convertirse en procesos compitiendo
por los recursos del sistema.

DE MEDIANO PLAZO:
Decide a que procesos se le otorga memoria
principal para poder ejecutar

DE CORTO PLAZO:
Decide que proceso, de los que ya estn listos es al
que le toca ahora estar utilizar la CPU
Niveles de Planificacin
Niveles de Planificacin

DISCO Sistema MEMORIA


Proceso 1 Operativo
Proceso 2
Proceso 1
Proceso 3
Proceso 4 1 Proceso 2 2
CPU
Proceso 5 Proceso 3

(...)
(...)
Proceso m
Proceso n

Planificacin Planificacin
de Mediano de Corto Plazo
Plazo
El SWAPPING
Para ejecutar los procesos deben estar total o
parcialmente en memoria principal

An con memoria virtual, mantener muchos


procesos en memoria puede deteriorar el
rendimiento del sistema

El OS puede necesitar suspender ciertos procesos


volcndo su espacio de direcciones a Disco.

Esto aade 2 nuevos Estados a los proceso:


Bloqueado Suspendido
Listo Suspendido
Objetivos de la Planificacin
Justicia o Imparcialidad:
Todos los procesos son tratados de la misma forma, y
en algn momento obtienen su turno de ejecucin o
intervalos de tiempo de ejecucin hasta su
terminacin exitosa.

Maximizar la Produccin:
El sistema debe de finalizar el mayor numero de
procesos en por unidad de tiempo.

Minimizar el Tiempo de Respuesta:


Cada usuario o proceso debe observar que el sistema
les responde consistentemente a sus requerimientos.
Objetivos de la Planificacin

Evitar el aplazamiento indefinido:


Los procesos deben terminar en un plazo finito de
tiempo.

El sistema debe ser predecible:


Ante cargas de trabajo ligeras el sistema debe
responder rpido y con cargas pesadas debe ir
degradndose paulatinamente. Otro punto de vista
de esto es que si se ejecuta el mismo proceso en
cargas similares de todo el sistema, la respuesta en
todos los casos debe ser similar.
Objetivos de la Planificacin
Polticas de planificacin

El planificador de la CPU puede intervenir si:


1. Un proceso/hilo pasa voluntariamente a
Bloqueado (p.e. E/S, sincronizacin, etc...)
2. Pasa a estado Listo por expiracin de tiempo
(timeout)
3. Cuando un proceso/hilo pasa de estado
Bloqueado a Listo
4. Cuando un proceso/hilo termina. Es decir,
siempre que un proceso/hilo abandona la CPU, o se
inserta un proceso/hilo en la cola de Bloqueados
Politicas de Planificacin
Planificacin apropiativa
El SO puede quitar (expropiar) la CPU al proceso/hilo
Casos 2 y 3

Planificacin no apropiativa
No se puede retirar el proceso/hilo de la CPU, este la
libera voluntariamente al bloquearse o finalizar
Casos 1 y 4
Polticas de Planificacin

Apropiacin frente a No-Apropiacin


La apropiacin (preemption) nos asegura
que un trabajo no bloquea a otro
igualmente importante
La planificacin no apropiativa (non
preemption) requiere que los trabajos
invoquen explcitamente al planificador
Polticas de Planificacin

Despachador (Dispatcher)

Mdulo que cede el control de la CPU al proceso/hilo


seleccionado por el planificador a corto plazo
Funciones:
Cambia de contexto
Cambia a modo usuario
Saltar al punto apropiado del programa de usuario
Debe ser muy rpido para reducir el tiempo de latencia
(overhead)
Criterios de planificacin
Utilizacin: mantener la CPU tan ocupada
posible
Productividad: n de procesos/hilos que
completan su
ejecucin por unidad de tiempo
Tiempo de retorno: cantidad de tiempo
necesaria para
ejecutar (completar) un proceso/hilo dado
Tiempo de espera: tiempo que un
proceso/hilo ha estado esperando en la cola de
Listos
Tiempo de respuesta: tiempo que va desde
que se remite una solicitud hasta que se
produce la primera respuesta (no salida
Tipos de Algoritmos de planificacin

Expropiacin (preemption). Existen algoritmos


con y sin expropiacin de la CPU
Intervalos de tiempo. El proceso/hilo puede
recibir la CPU por un cierto lapso de tiempo
Prioridades. A los procesos/hilos se les pueden
asociar prioridades, las cuales pueden ser
estticas o dinmicas
Tiempos lmites (deadlines). Existen tiempo
lmites para que termine un proceso/hilo. Contra
ms cerca se est de ese lmite, ms urgente se
hace su planificacin
Algoritmos de planificacin

Sin Expropiacin Con Expropiacin

FCFS (First Come,


Round-Robin
First Serve)

SRTF (Shortest
SJF (Shortest Job First)
Remaining Time First)

Prioridades Prioridades
(estticas y dinmicas) (estticas y dinmicas)
F.C.F.S. o FIFO
Es muy simple, los procesos reciben su turno conforme
llegan, tipo FIFO.
Muy sensible al orden de llegada de los procesos/hilos

La ventaja de este algoritmo es que es justo y no provoca


aplazamiento indefinido.

La desventaja es que no aprovecha ninguna caracterstica de


los procesos y puede no servir para unproceso de tiempo real.

El tiempo promedio de respuesta puede ser muy malo


comparado con el logrado por el del trabajo ms corto primero.
ROUND ROBIN

Tambin llamada por turno, consiste en darle a cada


proceso un timeslice.

Los procesos estn ordenados en una cola circular.

La ventaja de este algoritmo es su simplicidad, es


justo y no provoca aplazamiento indefinido.
Primero el Trabajo Mas Corto
Se requiere saber o tener una estimacin de cunto
tiempo necesita el proceso para terminar.
Si se sabe, se ejecutan primero aquellos trabajos que
necesitan menos tiempo y de esta manera se obtiene el
mejor tiempo de respuesta promedio para todos los
procesos. .

Proceso Espera desde Termina Tiempo de Espera


A 0 4 4
B 0 16 16
C 0 34 34
D 0 58 58
E 0 84 84
Tiempo promedio = (4 + 16 + 34 + 58 + 84 )/5 = 39 unidades.
Primero el Trabajo Mas Corto

TRESP1 = (8 + 12+ 16 + 20) / 4 = 14

TRESP2 = (4 + 8 + 12 + 20) / 4 = 11
Planificacin por Prioridades
Los procesos de mayor prioridad se ejecutan primero.

Si existen varios procesos de mayor prioridad que otros, pero


entre ellos con la misma prioridad, pueden ejecutarse estos de
acuerdo a su orden de llegada o por 'round robin'.

La ventaja de este algoritmo es que es flexible en cuanto a


permitir que ciertos procesos se ejecuten primero e, incluso, por
ms tiempo.

Su desventaja es que puede provocar aplazamiento indefinido


en los procesos de baja prioridad.
Planificacin por Prioridades
Planificacin por Prioridades
Tipos de Prioridades
PRIORIDAD DE DESPACHO:
Es la prioridad que tiene en cuenta el mdulo de
Despacho del Planificador, es decir la que se tiene en
cuenta para seleccionar el prximo proceso a ejecutar de
la cola de LISTOS.

PRIORIDAD DE EJECUCION:
Se sabe que a mayor TimeSlice mayor Prioridad ya que
el proceso es interrumpido menos frecuentemente
permitiendole terminar antes que al resto.
Comunicacin entre Procesos o
IPC
Los problemas relacionados con la comunicacin
entre Procesos, ya sea en el proceso de pasar
informacin a otro, o que 2 procesos no se estorben
al realizar acciones cruciales o ya sea en la forma
que se ordenan los procesos para realizar una tarea
Condiciones de competencia

Qu son?
Condiciones de Competencia
.
.
Proceso
A 4 abc
5 prog . c
out = 4
6 prog .
n
7 in = 4
Proceso .
B .

Cuando 2 o ms procesos estn leyendo o escribiendo datos


compartidos y el resultado final depende de quien se ejecuta y
precisamente cuando.
Se denomina Condiciones de Competencia
Regiones Crticas
La parte del programa en la que se tiene
acceso a la memoria o datos compartidos se
denomina regin crtica o seccin crtica

Lo que necesitamos es

EXCLUSION MUTUA
1. Dos Procesos NO pueden estar al mismo
tiempo en sus regiones criticas
2. NO pueden hacerse suposiciones sobre las
velocidades, ni el nro. de CPUs
3. Ningn proceso que se este ejecutando afuera
de su regin crtica puede bloquear a otros
procesos
4. Ningn proceso deber tener que esperar de
manera indefinida para entrar en su regin
crtica
Extraido de SO Modernos de A. Tanembaum
Exclusin mutua con espera
activa
Inhabilitacin de interrupciones
La solucin mas sencilla es que cada proceso
inhabilite todas las interrupciones despus de
ingresar en su regin crtica.
Una vez que un proceso haya inhabilitado las
interrupciones, podr examinar y actualizar la
memoria compartida sin temor.
Desventaja: no es prudente conferir a los procesos
la capacidad de inhabilitar todas las
interrupciones, ya que alguno puede
deshabilitarlas y nunca activarlas de nuevo
Variables de bloqueo
Solucin de software, se usa una variable compartida
(de bloqueo) que inicialmente esta en 0 (cero)
Cuando un proceso intenta entrar en su regin
crtica, primero prueba el bloqueo. Mismo defecto
que el problema del spooler

Alternancia estricta
Utiliza una variable turno que esta inicialmente en 0
(cero), cuando un proceso esta por entrar en su regin
crtica, verifica turno, si esta en cero, entra y cambia
turno a 1, si luego otro proceso quiere entrar y turno=1
entonces da vueltas en un ciclo corto, probando
continuamente, esto se denomina espera activa
Activar y desactivar
El problema del productor-consumidor (problema del buffer
acotado)

Semforos
Operaciones down y up.
Verificar el valor, modificarlo y desactivarse es una
accin atmica, es decir indivisible

Mutexes
Mutex es una variable que puede tener 2
estados: bloqueado y desbloqueado

You might also like