Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 UNESP/FEG/DMA Programação de Computadores II - Prof. Senne Exercício de Laboratório 7.3 ATENÇÃO: Não esquecer de incluir os nomes dos alunos da turma na classe Java. Atividade: Classe Escalonador. Considere que uma empresa precisa executar uma série de tarefas diariamente. Cada tarefa possui dois atributos: TE (tempo total de execução) e PR (prioridade da tarefa). A execução de cada tarefa se dá em várias etapas até que seja completamente concluída. A empresa utiliza um escalonador automático para decidir, a cada instante, qual tarefa deve ser executada e por quanto tempo. Inicialmente, o número de tarefas (NT) e os atributos TE e PR são gerados aleatoriamente nos seguintes no intervalos: NT ∈ [5, 20], TE ∈ [10, 30] e PR ∈ [1, 5]. O escalonador escolhe, dentre as tarefas de maior prioridade, a que necessita do maior tempo de execução. O escalonador determina por quanto tempo (TC) a tarefa escolhida será executada. O valor de TC deve ser gerado aleatoriamente no intervalo [3, 8]. Depois de ser executada pelo tempo TC, os valores dos atributos desta tarefa devem ser atualizados da seguinte forma: TE = MAX (0, TE - TC) e PR = MAX(1, PR - 1). Uma tarefa estará concluída quando TE = 0. Neste caso, deve-se fazer também PR = 0. Implementar, na GUI já disponível, as funcionalidades descritas a seguir. O click no botão Gerar Tarefas deve incluir na tabela os valores gerados para TE e PR de cada tarefa. A coluna NUM deve conter o número da tarefa e a coluna TAREFA deve ficar em branco. O click no botão Limpar Janela deve mostrar a janela exatamente como aparece na figura ao lado. O click no botão Gerar Tempo deve preencher a caixa de texto com o valor de TC e indicar com "->" na coluna TAREFA, a tarefa escolhida para ser executada. O click no botão Executar deve atualizar os valores de TE e PR da tarefa escolhida, retirar a indicação "->" da coluna TAREFA e, caso todas as tarefas estejam concluídas, limpar a caixa de texto e desabilitar os botões Executar e Gerar Tempo. Lembrar que deve-se usar: • tabela.setValueAt(v, linha, coluna), para incluir um valor (v) na tabela; • v = tabela.getValueAt(linha, coluna), para recuperar um valor (v) da tabela.
Compartilhar