INE5645
Laboratório 5 – JavaRMI e Semáforos

Prof. Lau Cheuk Lung

Departamento de Informática e Estatística
Universidade Federal de Santa Catarina
 

INE5645 | Descrição | Implementação | Apresentação | Dúvidas


Descrição

Nesta atividade de laboratório você deve implementar um semáforo para controle de pousos e decolagens de aeronaves em um aeroporto.

 

 


Implementação

Um aeroporto tem 2 pistas para decolagem e pouso de aeronave, e 10 portões de desembarque. Sabendo que somente uma aeronave pode utilizar uma pista por vez do aeroporto em um determinado instante, utilize um objeto servidor Java RMI para implementar uma torre de controle. Esta torre deve utilizar o mecanismo semáforo do Java para controlar o acesso concorrente às duas pistas do aeroporto. O objeto servidor Torre_de_Controle deverá possuir métodos para:

·       Pouso(): Solicitar autorização para pousar;

·       PousoUrgencia(): Solicitar pouso com urgência (aeronave com problemas mecânicos ou com pouco combustível);

·       Portao(): perguntar o número do portão no qual os passageiros devem desembarcar;

·       Autorizacao(): solicitar autorização para decolar;

As aeronaves serão implementadas como objetos clientes Java RMI que irão pousar e decolar do aeroporto. Como várias aeronaves irão solicitar permissão para uso de cada pista simultaneamente, é necessário gerenciar uma fila de acesso às pistas. As aeronaves em voo terão sempre prioridade sobre as aeronaves em solo, de modo a evitar o consumo desnecessário de combustível. Outra fila deve ser criada caso, após o pouso, seja informado à aeronave que não há portões de desembarque disponíveis. As aeronaves que quiserem pousar e não estiverem com falta de combustível devem usar boolean tryAcquire(long timeout, TimeUnit unit) no método Pouso(). Isso fará com que a aeronave espere um timeout pela pista. Se não conseguir, esta aeronave deve verificar seu combustível e, se estiver em falta, a aeronave deve aumentar sua prioridade e usar acquire() no método PousoUrgencia(). Defina prioridade 0 para as aeronaves que quiserem decolar, 5 para as que quiserem pousar e tiverem combustível de sobra e  prioridade 10 para as que tiverem combustível no limite para pouso.

Imprima uma mensagem na tela sempre que uma aeronave se comunicar com a torre de controle: pousar, atracar em um portão ou decolar.

.


Apresentação

A atividade deve ser desenvolvida individualmente. O programa deve ser apresentado ao professor no laboratório no dia 09/07. Os trabalhos podem ser enviados por e-mail dentro dos prazos para posterior defesa a ser marcado com o professor. Será verificado o funcionamento do programa e em seguida os alunos devem responder a questões sobre o código do programa referentes ao uso de mecanismos de comunicação entre processos. Em caso de cópia do código de outro aluno, ambos terão nota igual a zero.

 


Dúvidas

Atendimento aos Alunos

·       Horário: Terças-feiras das 16:00 às 17:40.

·       Local: Prédio do INE - Sala 305.

E-Mail

l a u . l u n g @ i n f . u f s c . b r


Mantida por Lau Cheuk Lung. Atualizada em 24/06/2013.