c1 So s1 2010 Corrector

5
CERTAMEN 1 - CORRECTOR Sistemas Operativos – Otoño 2010 Profesor: Luis Gajardo Pregunta 1 (20 puntos) Conteste en no más de 6 líneas cada ítem: a) (6p) Indique las principales características de la operación Off-line y Spool  operación Off-line  Existe una sala de cómputo y operador  Transporte manual de cintas entre dispositivos y computador  Ventaja: La lectura y escritura en cinta es más rápida  Problema:  La lectora e impresora son dispositivos lentos y el procesador debe esperarlos. Además el computador debe esperar que termine la lectura o escritura de la cinta (este problema se denomina busy-waiting).  SPOOL: Simultaneous Peripheral Operation On-Line  No hay transporte de cinta por operadores  Dispositivos lentos conectados al computador principal  Monitor residente que lee jobs y los almacena en disco en un a cola  El monitor imprime resultados de jobs ya ejecutados  Ventaja: Operación On-Line  Problema:  Jobs intensivos en E/S (E/S intermedia dentro de un job) no aprovechan el 100% del procesador. Ahora se trata de aprovechar los tiempos muertos en la CPU. b) (8p) Explique en qu é cons iste el mecanismo de s incronización llamado monitor.  Los monitores son una herramienta de sincronización más estructurada que encapsula v ariables compartidas junto con los procedimientos para acceder a ellas.  En un monitor sólo uno de los procesos puede estar activo en cada momento, siempre hay exclusión mutua.  Existencia de variables de condición que permiten suspender tareas y devolver momentáneamente el monitor. ICI 8  3 El dibujo no es necesario si está bien explicado  3

Transcript of c1 So s1 2010 Corrector

8/16/2019 c1 So s1 2010 Corrector

http://slidepdf.com/reader/full/c1-so-s1-2010-corrector 1/4

CERTAMEN 1 - CORRECTOR

Sistemas Operativos – Otoño 2010Profesor: Luis Gajardo

Pregunta 1 (20 puntos)

Conteste en no más de 6 líneas cada ítem:

a) (6p) Indique las principales características de la operación Off-line y Spool

•  operación Off-line•  Existe una sala de cómputo y operador•  Transporte manual de cintas entre dispositivos y computador•  Ventaja: La lectura y escritura en cinta es más rápida•  Problema: La lectora e impresora son dispositivos lentos y el procesador debe esperarlos. Además el

computador debe esperar que termine la lectura o escritura de la cinta (este problema se denominabusy-waiting).

•  SPOOL: Simultaneous Peripheral Operation On-Line •  No hay transporte de cinta por operadores•  Dispositivos lentos conectados al computador principal•  Monitor residente que lee jobs y los almacena en disco en una cola•  El monitor imprime resultados de jobs ya ejecutados•  Ventaja: Operación On-Line•  Problema: Jobs intensivos en E/S (E/S intermedia dentro de un job) no aprovechan el 100% del

procesador. Ahora se trata de aprovechar los tiempos muertos en la CPU.

b) (8p) Explique en qué consiste el mecanismo de sincronización llamado monitor.

•  Los monitores son una herramientade sincronización más estructuradaque encapsula variablescompartidas junto con losprocedimientos para acceder aellas.

•  En un monitor sólo uno de losprocesos puede estar activo encada momento, siempre hayexclusión mutua.

•  Existencia de variables decondición que permiten suspendertareas y devolvermomentáneamente el monitor.

ICI

8

 3

El dibujo no es necesario si está bien

explicado

 3

8/16/2019 c1 So s1 2010 Corrector

http://slidepdf.com/reader/full/c1-so-s1-2010-corrector 2/4

c) (6p) Explique el significado de: deadlock y data-race.

dataraceSe produce cuando dos o más procesos acceden simultáneamente a las mismas estructuras de datoscompartidas y las dejan en un estado inconsistente.

deadlockSe produce cuando dos (o más) procesos esperan que ocurra algún evento o cambio de estado, el cualdepende del proceso contrario sin poder avanzar para producir tal cambio de estado.

Pregunta 2 (20 puntos)

a) (10p) ¿Qué es una CyclicBarrier de java?, explique.

•  Es un mecanismo de sincronización de procesos del tipo barrera. Es cíclica porque puede volver areutilizarse varias veces. Permite establecer un punto de encuentro entre varios threads, una vez reunidostodos continúan su ejecución normal. Existen diversos constructores y métodos.

b) (10p) Comente un ejemplo (en palabras) en donde se puede utilizar una CyclicBarrier (debe serdistinto al visto en el laboratorio)

•  Sort-Merge•  Usarla para resolver:

•  cada thread ordena una cantidad de Integer y pone los resultados en una cola.•  Cuando todos terminan se lanza una thread que hace el Merge.

Pregunta 3 (60 puntos)

La federación de tenis de mesa de Chile organiza un torneo en donde todos los jugadores se enfrentan con todos.

En el torneo participan 8 jugadores, numerados de 0 a 7 que se enfrentan en 7 rondas de 4 partidos. Para disminuirla duración de los torneos se requiere que los partidos se jueguen en paralelo, sujeto a que se dispone de 3 mesasidentificadas como A, B, C.

Para hacer enfrentarse los jugadores x e y, en la mesa m. Usted dispone del procedimiento enfrentar(x, y, m). Esteprocedimiento toma mucho tiempo y solo retorna cuando el partido finalizó. Algunos partidos pueden ser muy

cortos (3 sets) mientras otros pueden ser muy extensos (5 sets muy disputados).

Se ha programado el siguiente procedimiento para realizar el torneo pedido:

10

 3

 3

10

8/16/2019 c1 So s1 2010 Corrector

http://slidepdf.com/reader/full/c1-so-s1-2010-corrector 3/4

a)  Para demostrar que esta solución es incorrecta, haga diagramas de threads que muestren que ella:

i.  (10 puntos) podría ordenar que el jugador 0 se enfrente con el jugador 4 en las mesas A , B

simultáneamente , no jugarse el partido entre los jugadores 1 , 5.

ii.  (10 puntos) Podría ordenar que el jugador 0 se enfrente con el jugador 1 por la segunda ronda cuando el

 jugador 0 todavía está jugando con 4 por la primera ronda en otra mesa.

10

10

Sino está claro o no grafica correctamente las líneas de espera se restan2 o 3 pts.

8/16/2019 c1 So s1 2010 Corrector

http://slidepdf.com/reader/full/c1-so-s1-2010-corrector 4/4

b)  (40 puntos) Modifique esta solución para que funcione correctamente.

Considere las siguientes restricciones:

•  Si en una mesa se debe comenzar un partido, pero alguno de los jugadores todavía está jugando un

partido previo en otra mesa, la mesa debe esperar  hasta que ese partido concluya.

•  Usted debe usar como única herramienta de sincronización los monitores de nSystem.

•  El procedimiento torneo retorna sólo una vez que todos los partidos finalizan

#define LIBRE  0

#define OCUPADO 1

struct m {

nMonitor mon;

nCondition espera;

int jugadores[8];

struct partidos[4*7]; /*inicializada con los encuentros, tal como arriba*/

int prox;

} monitor;

void torneo() {

int i;

monitor= (struct m) malloc(sizeof(struct m));

monitor->mon= nMakeMonitor();

monitor->espera= nMakeCondition(monitor->mon);

for (i= 0; i<8; i++)

monitor->jugadores[i]= LIBRE; 

monitor->prox= 0;

/*lanzar las 3 mesas*/

...

/*esperar las 3 mesas*/

...

}

int mesa(char *m) {

nEnter(monitor->mon);

int x= partidos[prox].x;

int y= partidos[prox].y;

prox++;

while (jugadores[x]==OCUPADO && jugadores[y]==OCUPADO)

nWaitCondition(monitor->espera);

jugadores[x]= OCUPADO;

jugadores[y]= OCUPADO;

nExit(monitor->mon);

enfrentar(x, y, m);

nEnter(monitor->mon);

jugadores[x]= LIBRE;jugadores[y]= LIBRE;

nSignalCondition(monitor->espera);

nExit(monitor->mon);

return 0;

}

u adores

partidos

prox

esperamonitor

10

2,5

2,5

2,5

2,5

10

5

El puntaje se asigna

completo si el uso de lainstrucción es adecuado

5