PDF de programación - Bloque I: Principios de sistemas operativos

Imágen de pdf Bloque I: Principios de sistemas operativos

Bloque I: Principios de sistemas operativosgráfica de visualizaciones

Publicado el 14 de Enero del 2017
769 visualizaciones desde el 14 de Enero del 2017
276,6 KB
46 paginas
Creado hace 13a (15/03/2011)
UNIVERSIDAD
DE CANTABRIA

Bloque I: Principios de sistemas
operativos
Tema 1. Principios básicos de los sistemas operativos
Tema 2. Concurrencia
Tema 3. Ficheros
Tema 4. Sincronización y programación dirigida por eventos
Tema 5. Planificación y despacho
Tema 6. Sistemas de tiempo real y sistemas empotrados
Tema 7. Gestión de memoria
Tema 8. Gestión de dispositivos de entrada-salida

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
4

© Michael González, J. Javier Gutiérrez

15/mar/11

1

Notas:

UNIVERSIDAD
DE CANTABRIA

Tema 4. Sincronización y programación dirigida por eventos

• Necesidad de la sincronización y principales métodos.
• Sincronización de acceso mutuamente exclusivo.
• Sincronización de espera mediante semáforos.
• Sincronización de espera mediante variables condicionales.
• Interbloqueos (deadlocks).
• Generación, bloqueo y aceptación de señales.

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

2

1. Necesidad de la sincronización y
principales métodos
Los procesos o threads pueden:
• ser independientes de los demás
• cooperar entre ellos
• competir por el uso de recursos compartidos
En los dos últimos casos los procesos deben sincronizarse para:
• intercambiar datos o eventos, mediante algún mecanismo de

UNIVERSIDAD
DE CANTABRIA

señalización y espera, o de paso de mensajes

• usar recursos compartidos de manera mutuamente exclusiva

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

3

UNIVERSIDAD
DE CANTABRIA

Exclusión mutua
Se usa para asegurar la congruencia de los datos o dispositivos
compartidos
Mecanismos habituales:
• semáforos (binarios o contadores)
• mutexes y regiones críticas
• monitores
• regiones críticas condicionales
• variables condicionales

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

4

UNIVERSIDAD
DE CANTABRIA

Semáforos
Tienen una cola de procesos en espera, y un valor que es:
• un entero positivo o cero para los semáforos contadores
• un valor binario (0,1) para los semáforos binarios
Tienen dos operaciones definidas
• “P” o esperar:

- si valor>0 entonces valor:=valor-1
- si valor=0 entonces suspender el proceso (metiéndolo en la cola)

• “V” o señalizar:

- si hay un proceso esperando, activarlo
- si no, valor:=valor+1 (con límite 1 para los binarios)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

5

Semáforos: exclusión mutua

UNIVERSIDAD
DE CANTABRIA

Proceso_1:
begin
...
P(sem);
usar recurso
compartido;
V(sem);
...
end;

Proceso_2:
begin
...
P(sem);
usar recurso
compartido;
V(sem);
...
end;

sem:semáforo (
valor_inicial => 1)

Recurso

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

6

Semáforos: sincronización de espera a
un evento

UNIVERSIDAD
DE CANTABRIA

Proceso_1:
begin
...
Wait(sem);
...

end;

evento

Proceso_2:
begin
...
Post(sem);
...

end;

sem:semaphore (
initial_value => 0)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

7

Mutexes
Muy similares a los semáforos, pero con un nuevo concepto:
• cada recurso tiene un propietario
Su estado puede ser libre, o tomado. Tienen dos operaciones:
• tomar (lock):

UNIVERSIDAD
DE CANTABRIA

- si libre, el estado se cambia a tomado
- si no, espera
- el proceso que toma el mutex es el propietario
• liberar (unlock), sólo permitido al propietario:

- si hay procesos esperando, se activa uno, que se convierte en el

nuevo propietario

- si no, el mutex se libera

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

8

Regiones críticas
Son instrucciones estructuradas en algunos lenguajes
concurrentes
Funcionan como un mutex, pero de manera más fiable
• ya que la operación de liberar está implícita en la instrucción

UNIVERSIDAD
DE CANTABRIA

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

9

UNIVERSIDAD
DE CANTABRIA

Monitores
Un monitor encapsula el código relativo a un recurso compartido
en un solo módulo de programa; ventajas:
• mantenimiento más simple
• menos errores de programación
La interfaz del monitor es un conjunto de funciones que
representan las diferentes operaciones que pueden hacerse con el
recurso
La implementación del monitor garantiza la exclusión mutua
• mediante semáforos o algún otro mecanismo
• o implícitamente en los lenguajes concurrentes

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

10

Monitor: ejemplo

UNIVERSIDAD
DE CANTABRIA

Process_1:
begin
...
d1=Mon1.read();
...
Mon1.write(d2);
...
end;

Process_2:
begin
...
Mon1.write(d3);
...
d4=Mon1.read();
...
end;

monitor Mon1 is
type data is ...;
data read();
void write(data d);
end Mon1;

Mon1 impl.

Recurso:datos

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

11

Monitor: implementación

UNIVERSIDAD
DE CANTABRIA

monitor body Mon1 is
mutex m;
data shared_data;

data read () is
begin
lock(m);
d:=shared_data;
unlock (m);
return d;
end read;

void write(data d) is
begin
lock(m);
shared_data=d;
unlock(m);
end write;
end Mon1;

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

12

Paso de mensajes
El paso de mensajes es un mecanismo de sincronización común
en programas concurrentes. Tiene dos operaciones:
• esperar (wait): un proceso espera hasta poder recibir un

UNIVERSIDAD
DE CANTABRIA

mensaje

• señalizar (signal): un proceso envía un mensaje a otro(s)

proceso(s); tiene tres alternativas:
- asíncrona: el proceso que señaliza no espera
- síncrona: el proceso que señaliza espera hasta que el mensaje se

recibe

- punto de encuentro o rendezvous: el proceso que señaliza espera;
cuando el receptor está listo ejecutan un fragmento de código en
común, en el que pueden intercambiar datos en ambas direcciones

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

13

Paso de mensajes (cont.)
Hay dos formas de especificar el destino de un mensaje:
• especificando un proceso destino
• especificando un objeto “buzón” (también llamado canal o cola

UNIVERSIDAD
DE CANTABRIA

de mensajes)

Muchos sistemas ofrecen la espera selectiva, que se puede usar
para esperar a uno de entre varios eventos
Otras operaciones: espera condicional, espera temporizada, y
espera con barreras o condiciones extra
Se suelen usar monitores para encapsular todo el código relativo
a una clase particular de eventos o mensajes

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

14

Paso de mensajes: ejemplo

UNIVERSIDAD
DE CANTABRIA

Proceso Productor:
begin
loop
producir datos;
señalizar
enviando datos
al buffer;
end loop;
end producer;

Proceso Consumidor:
begin
loop
esperar a obtener
datos del buffer;
consumir datos;
end loop;
end consumer;

Buffer

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

15

2. Sincronización de acceso
mutuamente exclusivo
Mutex:
• objeto de sincronización por el que múltiples threads acceden

de forma mutuamente exclusiva a un recurso compartido

UNIVERSIDAD
DE CANTABRIA

• operaciones:

-

-

tomar o bloquear: si el mutex está libre, se toma y el thread
correspondiente se convierte en propietario; si no el thread se
suspende y se añade a una cola
liberar: si hay threads esperando en la cola, se elimina uno de la
cola y se convierte en el nuevo propietario; si no, el mutex queda
libre; sólo el propietario del mutex puede invocar esta operación

• los mutex permiten opcionalmente la herencia de prioridad

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

16

Mutexes en POSIX
Atributos de inicialización:
• pshared: indica si es compartido o no entre procesos:

- PTHREAD_PROCESS_SHARED
- PTHREAD_PROCESS_PRIVATE

UNIVERSIDAD
DE CANTABRIA

• hay otros atributos relativos a la planificación, que veremos más

adelante

Estos atributos se almacenan en un objeto de atributos

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

17

Objetos de atributos para mutex

UNIVERSIDAD
DE CANTABRIA

#include <pthread.h>

int pthread_mutexattr_init
(pthread_mutexattr_t *attr);
int pthread_mutexattr_destroy
(pthread_mutexattr_t *attr);

int pthread_mutexattr_getpshared
(const pthread_mutexattr_t *attr,
int *pshared);
int pthread_mutexattr_setpshared
(pthread_mutexattr_t *attr,
int pshared);

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

18

Inicializar y destruir un mutex
Inicializar un Mutex:

int pthread_mutex_init (pthread_mutex_t *mutex,

const pthread_mutexattr_t *attr);

UNIVERSIDAD
DE CANTABRIA

Destruir un mutex:

int pthread_mutex_destroy (

pthread_mutex_t *mutex);

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

19

Tomar y liberar un mutex
Tomar un mutex y suspenderse si no está libre:

UNIVERSIDAD
DE CANTABRIA

int pthread_mutex_lock (

pthread_mutex_t *mutex);

Tomar un mutex, sin suspenderse:

int pthread_mutex_trylock (

pthread_mutex_t *mutex);

Liberar un mutex

int pthread_mutex_unlock (

pthread_mutex_t *mutex);

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

15/mar/11

2
  • Links de descarga
http://lwp-l.com/pdf942

Comentarios de: Bloque I: Principios de sistemas operativos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad