Documentos de Académico
Documentos de Profesional
Documentos de Cultura
a) Plantear el enunciado del caso. Esto es sí es TSL o SWAP; RR, JSF, prioridad, etc.
b) Evaluar la solución TSL con y sin falla
c) Plantear la solución SWAP con y sin falla, especificar tipo de algoritmo de planificación
d) Evaluar la solución SWAP con y sin falla
Grupos de 2 o 3 estudiantes
INSTRUC
FUNCIONES
TestAndSet(
boolean
*target) Función que activa el cerrojo
PROCESOS
Cuando un proceso A desea en
A Proceso con funcionamiento normal que el proceso A entra en la región
solicita la región crítica primero que B este no puede, se mantiene en
B Proceso con funcionamiento normal a FALSE. Después de esto, el cic
return rv
while( TestAndSet(&cerrojo) );
rv = *target
1 return rv
while( TestAndSet(&cerrojo) );
rv = *target
*target = TRUE TRUE
B
return rv
uando un proceso A desea entrar en la región crítica, entra en un ciclo while que verifica si la variable compartida está activada. Si no es as
proceso A entra en la región crítica y la variable compartida cerrojo se hace TRUE. Cuando otro proceso (B) desea entrar a la sección crític
te no puede, se mantiene en espera ocupada ejecutando el ciclo while hasta que el proceso A sale de la región crítica al hacer cerrojo igu
FALSE. Después de esto, el ciclo while de B temrina y este entra en la región crítica.
do {
...
//solicitud para entrar en sección crítica
while( TestAndSet(&cerrojo) );
//SECCIÓN CRÍTICA...
cerrojo = FALSE;
//SECCIÓN RESTANTE...
} while(TRUE);
La instrucción TSL no funciona en sistemas multiprocesador porque si un proceso se queda por mucho
tiempo en la sección crítica, los otros procesos que quieren entrar en la región crítica se quedarán
esperando (espera ocupada) a que se desocupe el recurso que desean. En un sistema multiprocesador
esto se traduce en tiempos de CPU grandes que hacen que el sistema sea lento. El profe dice: ¿Es
esta la razón? revisar el concepto de interrupción.
Se debe garantizar que al implementar la instrucción TSL se utilice el hardware que bloquee el bus de
memoria, sino sólo se trabajará con interrupciones y esto sólo afecta 1 procesador, no garantiza la
exclusión mutua. El profe dice: ¿Es esta la razón? revisar el concepto de
interrupción y los efectos de bloquesr el bus de memoria.
INSTRUCCIÓN TS
FUNCIONES
TestAndSet(
boolean Función que activa el cerrojo
*target)
PROCESOS
return rv
rv = *target
B
*target = TRUE TRUE
return rv
El profe dice: ¿Es cierto que los procesos A y B llegan a estar simultá
INSTRUCCIÓN TSL
cerrojo = FALSE;
//SECCIÓN RESTANTE...
} while(TRUE);
= FALSE;
ÓN RESTANTE...
RUE);