2. administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 sección...

16
1 2. Administración de procesos M. en C. Mario Farias-Elinos Contenido n Antecedentes n Sección crítica n Problemas de sincronización n Transacciones atómicas n Deadlock

Upload: others

Post on 07-Apr-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

1

2. Administración de procesos

M. en C. Mario Farias-Elinos

Contenido

n Antecedentesn Sección crítican Problemas de sincronizaciónn Transacciones atómicasn Deadlock

Page 2: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

2

Threads

(a) Tres procesos con un thread cada uno(b) Un proceso con 3 threads

Thread

n Items compartidos por todos los threads (proceso)n Items exlusivos para el thread

Page 3: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

3

Thread

Cada thread tiene su propio stack

Thread

Ejemplificació de aplicación con threads

Page 4: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

4

Thread

Web server con multiples threads

Thread

(a) Thread despachador(b) Thread trabajador

Page 5: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

5

Thread

Formas de desarrollar un servidor

Threads en el kernel

Nivel de usuario

Page 6: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

6

Threads en el kernel

Administrador de threads en el kernel

Threads en el kernel

multiplexando threads en el user-level y kernel

Page 7: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

7

Antecedentes

n Procesos cooperativosu Compartición de códigou Compartición de datos

n Problemáticasu Inconsistecia de la informaciónuMemoria limitadau Sincronización de procesos

Antecedentes

Page 8: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

8

Sección crítica

n “n” procesos comparten un segmento de códigouModificación de variablesu Compartición de archivos

n Característica importanteu P0 ejecuta sección crítica, ningún otro proceso

ejecute dicha sección crítica

n Sección crítica es mutuamente excluyente en el tiempo

Sección crítica

n Partes de una sección críticau Sección de ingresou Sección críticau Sección de egresou Sección restante

Page 9: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

9

Sección crítica

n La solución debe satisfaceruMutua exclusiónu Progresou Espera limitada

Problema de sincronización

Page 10: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

10

Semáforos

n Variable entera accesible poruWaitu Signal

n Desventajau Espera activa -> Desperdicio de ciclos del CPUu Deadlocks

Sincronización

Page 11: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

11

Monitores

Transacciones atómicas

n La ejecución en un paso de la sección críticauOperaciones read y writeu Terminación con commit y abort (rollback)

n Tipos de almacenamientou Volátilu No volátilu Estable

Page 12: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

12

Transacciones atómicas

n Una forma de asegurar la atomicidad es por medio de bitácorasu Nombre de la transacciónu Nombre del datou Valor antiguou Valor nuevo

Transacciones atómicas concurrentesn Asegurar la ejecución de la sección crítica por un

sólo procesou Serializaciónu Protocolo de cerradura

«Compartido«Exclusivo

u Estampas de tiempo

Page 13: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

13

Deadlock

n Cuando dos procesos tienen asignados recursos, pero esperan también el recurso que el otro tienen

n CaracterísticasuMutua exclusiónu Retener y esperaru No expropiaciónu Espera circular

Antecedentes

(a) Deadlock potencial. (b) deadlock.

Page 14: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

14

Deadlock

Manejo del deadlock

n Creación de un protocolo para evitar el deadlockn Permitir el deadlock y que el sistema se recuperen Desentendernos del problema

Page 15: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

15

Prevención del deadlock

n Asegurar que no se cumplirá una de las condicionesuMutua exclusiónu Retener y esperaru No expropiaciónu Espera circular

Prevención del deadlock

n Un algoritmo que examine el sistema y localice deadlocks

n Un algoritmo para la recuperación

Page 16: 2. Administración de procesosmario.elinos.org.mx/docencia/sistoper/process2.pdf · 8 Sección crítica n “n” procesos comparten un segmento de código uModificación de variables

16

Recuperación del deadlock

n Terminación de procesosu Abortar todos los procesosu Abortar un proceso a la vez hasta eliminar el

deadlock

n Expropiación del recursou Selección de la victimau Retrocesou Inanición