| free hosting image hosting hosting reseller online album e-shop famous people | ||
![]() ![]() |
||
Alunos:
Sidnei M. Barrientos Junior
Sávio Brandão
Salim Jacuru Anseri
Joaquim Clemente
O objetivo é fazer um algoritmo em portugol que simule o funcionamento de um sistema simplificado de computação com multiprogramação.
Trata-se de uma aplicação de filas na simulação de um timesharing computer system. Cada processo executado no computador pode ser de 'Classe 1' ou 'Classe 2'. Quando um processo é ativado, ele é colocado na fila de sua classse, onde fica esperando até poder entrar na fila do CPU. Um processo de Classe 1 tem sempre prioridade. Um processo de Classe 2 só entra na fila da CPU se a fila da Classe 1 estiver vazia ou os últimos quatro processos que entraram na fila da CPU eram de Classe 1.
A utilização da CPU é dividida em intervalos de tempo(chamado ciclo de intervenção do sistema timesharing que é igual a 1 QUANTA) com duração máxima fixada. No início de cada ciclo, a CPU passa a executar o processo que está no início de sua fila. Se, ao término do atual ciclo, a execução desse processo não for completada, ele retorna para o fim da fila da CPU. Se a execução de um processo terminar durante um ciclo, ele vai para a fila das impressoras, o ciclo termina e a CPU passa a executar o processo que está no início de sua fila.
Existe uma única fila para as impressoras. Quando alguma impressora fica disponível, o primeiro processo dessa fila irá utilizar esta impressora.
Trabalho baseado no do site: http://www.ime.usp.br/~cesar/courses/mac374/



A impressão nunca termina no applet, só consegui executar perfeitamente após a compilação em standalone.
As impressoras foram implementadas inicialmente como Timertasks autoprogramáveis, mas um bug da JVM impede que uma mesma TimerTask seja programada duas ou mais vezes. A solução foi criar uma cópia da impressora, e deixá-la com a mesma ID(clonar tb poderia ser uma solução).
As barras de status ficam doidas quando uma nova simulação se inicia, recomendo atualizar a pagina no navegador, pq eu não pretendo concertar esse bug.
Para o trabalho, preferi fazer um protótipo em Java desse sistema seguindo todas as regras do trabalho original. A razão da escolha é favorecer a visualização dos resultados e facilitar o entendimento do trabalho proposto.
Aqui está o download do código fonte.
JavaDoc - Documentação do código fonte, infelismente não tive tempo de arrumar a documentação, mas já é bom pra visualizar as classes e métodos.
Autor do Applet: Sidnei M. Barrientos Junior