Buscar

lab7 3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais