Guia Coordinación - Escuela de Ingeniería Informática

Anuncio
P. Universidad Católica de Valparaíso
Escuela de Ingeniería Informática
INF 250 - Sistemas de Computación
Guía de Ejercicios
Coordinación de Procesos
1.- Dado los procesos:
P1()
{
write(“Operativos”);
}
P2()
{
write (“Sistemas”);
}
Usando el mínimo número de funciones sincronizar usando semáforos ambos procesos para
que en la salida se escriba: Sistemas Operativos
2.- Ud. se ha convertido en Microempresario y ha montado un negocio de Lavandería
automatizado. Esta Lavandería tiene 2 Lavadoras que pueden estar funcionando al mismo
tiempo. La ropa para lavar es puesta en una correa deslizadora para ser asignada a una de
las 2 máquinas. Cada carga de ropa es interpretada como un proceso para el Sistema
Computacional que maneja las Lavadoras. Si las 2 máquinas están ocupadas, la ropa debe
esperar en una cola común la cual tiene como largo máximo 28 cargas de ropa. Si la cola
está al máximo, el proceso es terminado, no aceptando carga.
Si la estructura de los Procesos de Carga de Ropa es el siguiente:
Int
n; /*Variable Global*/
Carga de Ropa ()
{
While (n<30){
n++;
Correa Deslizadora;
Máquina Lavadora;
n--;
}
}
Se debe modificar el algoritmo anterior, para asegurar lo siguiente mediante semáforos:
a) Asegurar que la variable global n, no sea modificada por 2 procesos a la vez
b) Asegurar que 2 cargas de ropa sean asignadas a la misma Máquina.
3.- Se tienen 2 procesos paralelos:
int x=0;
Proceso A
{
while (true)
x=x+1;
}
Proceso B
{
while (true)
print (x);
}
Sincronizar usando semáforos, para que escriba la secuencia 0 1 2 3....
4.- Se tienen 3 procesos P1, P2, P3. El código del proceso Pi (i= 1,2,3) es:
Pi()
{
while (true)
print (“Soy el proceso i \n”); (i=1,2,3 dependiendo del proceso)
}
Se desea mostrar en la salida lo siguiente:
Soy el proceso 1
Soy el proceso 2
Soy el proceso 3
Soy el proceso 1
Soy el proceso 2
.....
Sincronizar usando semáforos
5.- Considere un Sistema con tres procesos fumadores y un proceso agente. Cada fumador
continuamente enrolla un cigarro y se lo fuma. Pero para enrollar y fumar un cigarro, el
fumador necesita tres ingredientes: tabaco, papel y la cerilla. Uno de los procesos
fumadores tiene papel, otro tabaco y el tercero cerillas. El agente tiene infinito
suministro de los tres materiales.El agente pone dos de los ingredientes en la mesa. El
fumador quien tiene el ingrediente faltante, toma los dos ingredientes y fuma el
cigarro, indicándole al agente cuando termina. El agente pone otros dos ingredientes, y
el ciclo se repite. Escriba un programa para sincronizar el agente y los fumadores.
6.- Se tiene el siguiente esquema:
Dos calles perpendiculares. Una de doble sentido, las otras dos unidireccionales y
contrarias.
a) Examine si existen problemas de deadlock y como evitarlos
b) Si se dan las siguientes situaciones:
-
El vehículo B desea doblar a la izquierda y el vehículo C a la derecha.
El vehículo B desea doblar a la izquierda y el vehículo C también.
Escriba una solución libre de deadlocks para las situaciones anteriores.
7.- Se le ha encargado el diseño de un Sistema de comercio electrónico, donde el usuario
puede adquirir diversos productos. El funcionamiento del Sistema es el siguiente:
- Primer paso: El cliente consulta productos y precios de ellos. El proceso que
atiende este primer paso soporta un máximo de 100 clientes simultáneos.
- Segundo Paso: Elección del producto a adquirir y forma de pago. El cliente elige
el producto, ingresa sus datos y luego la forma de pago. El proceso soporta un
máximo de 50 clientes simultáneos, excepto cuando elige forma de pago, pues
en ese momento disminuye en uno las existencias de los productos del Sistema,
por lo cual sólo un cliente puede estar en este código.
- Tercer Paso: Entrega de comprobante de compra. Una vez que el cliente ha
elegido y cancelado su producto, se le entrega un comprobante de pago, que
puede ser impreso por el cliente. Sólo un comprobante de compra puede ser
generado a la vez.
Cada cliente de este Sistema debe cumplir la siguiente secuencia: Consulta de Precios
(Primer Paso), Elección y Cancelación (Segundo Paso) y entrega de comprobante (Tercer
paso). El cliente puede abandonar el Sistema de Comercio en cualquier instante.
Escriba en seudolenguaje el código de los tres procesos, sincronizándolos adecuadamente
mediante semáforos, indicando claramente variables locales, globales y secciones críticas
8.- Existe un Sistema de venta de pasajes de una línea aérea que tiene terminales repartidos
a lo largo del mundo. La sincronización para la venta de pasajes se realiza entre Sistemas
Remotos ubicados en los clientes y un proceso creado por un Sistema Central para cada
Sistema Remoto que consulta. Este Sistema central contiene una gran base de datos con la
información. La comunicación se realiza por medio de mensajes entre el Sistema Remoto y
los Procesos Centrales. El funcionamiento detallado del Sistema es el siguiente:
- Los Sistemas Remotos envían información de consulta de disponibilidad de
asientos en diferentes vuelos, por mensaje a su proceso que lo atiende en el
Sistema Central.
- N Procesos Centrales, creados para atender a Sistemas Remotos, pueden acceder
simultáneamente a la base de datos para leerla.
- El Proceso Central le envía un mensaje con la información al Sistema Remoto.
- Si el Sistema Remoto quiere hacer la reserva, envía un mensaje con la petición
al Proceso Central.
- El Proceso Central accede a la base de datos para hacer la reserva, si no hay
ningún proceso consultando la base de datos. Sólo un proceso realiza a la vez
una reserva y ningún proceso puede estar, en ese momento,consultando la base
de datos. Luego de hecha la reserva, envía mensaje de confirmación a Sistema
Remoto.
Escriba el código de los Sistemas Remotos y Procesos Centrales, realizando la
sincronización por semáforos, libre de deadlocks y starvation.
9.- Se le ha solicitado la asesoría para la automatización de atención en una tienda de gran
concurrencia a través de Internet. Esta tienda ofrece N productos, cada uno de los cuales lo
administra un proceso vendedor, el que puede atender sólo un cliente a la vez. Cada cliente
cuando ingresa al sitio Internet saca un número y espera ser atendido. Un vendedor cuando
se desocupa atiende al siguiente número.
a) Diseñe el algoritmo del proceso vendedor y cliente de un producto determinado,
considerando que los procesos clientes y vendedores duermen si están esperando o
no están atendiendo, respectivamente, siendo despertados por el vendedor o el
primer cliente. Utilice semáforos y verifique que su algoritmo esté libre de
deadlocks y starvation.
b) Si el número de clientes que puede atender cada vendedor simultáneamente
aumenta a 2, indique cambios en el algoritmo.
10.- Se le ha solicitado diseñar un Sistema de administración centralizado que funciona de
la siguiente manera:
- Existe un proceso central que maneja una base de datos con la información general
del sistema
- Existen 4 procesos remotos que se comunican con el proceso central para obtener
información cada cierto tiempo.
- Para que un Proceso remoto lea la base de datos del Servidor Central deben
cumplirse 2 condiciones: Debe contar con la autorización del Sistema Central, lo
que solicita por mensaje y luego debe poder ingresar a leer los datos al Sistema
Central, actualizando, al mismo tiempo, los datos referentes a su lugar de
administración.
- Sólo un proceso puede obtener el mensaje de autorización (no pueden existir 2
procesos que obtengan un mensaje de autorización al mismo tiempo) y leer la base
de datos a la vez.
Diseñe una solución para el Sistema Central y los Sistemas Remotos libres de deadlock y
starvation, utilizando semáforos para secciones críticas.
11.- Existe un edificio inteligente con un sistema de ingreso automatizado en todos sus
pisos, el que es atendido por varios procesos. La secuencia que sigue una persona que
ingresa por una puerta electrónica es la siguiente:
- Primero ingresa un número secreto, que es verificado por un proceso servidor, el
que puede atender a 10 procesos clientes como máximo simultáneamente.
- Luego se le pide que pase por un lector la tarjeta con su identificación, información
que es verificada por otro proceso servidor, el cual puede atender como máximo 6
procesos clientes.
- Si el usuario no trae su tarjeta, lo indica presionando el botón N, en cuyo caso se
procede a una verificación adicional donde se le solicita que ponga la huella digital
del dedo meñique, lo quel es verificado por otro proceso servidor, que puede
atender a 5 procesos clientes como máximo.
- Si el usuario trae su tarjeta pasa al proceso final de autorización y apertura de
puerta, el cual atiende a 15 procesos simultáneos.
- Si no la trae debe pasar por el proceso de lectura de huella digital, antes de pasar al
proceso final de autorización.
- Sólo si los datos son válidos abrirá la puerta.
Diseñe el código del proceso cliente y de los procesos servidores, sincronizándolos para
que cumplan la secuencia indicada en forma correcta y protegiendo secciones críticas.
Descargar