[RESOLVIDO] Utilizando Fila Dinamica, Fila de Prioridade Dinamica ou Estatica,O Metodo HeapSort

3 respostas
gpd38
Criar um programa onde, cada processo é objeto de uma classe, com os atributos (no mínimo):

int numero ? número seqüencial do processo;

int entrar ? momento de entrar na fila de processos (número hipotético em ms);

int executar ? quanto demora a execução (número hipotético em ms);

int prioridade ? urgência para a execução: de 0 (mínima) a 9 (máxima).

Seu programa escalona processos segundo as políticas:

política 1: os processos são mantidos em fila (eles são nela inseridos segundo entrar);
Os primeiros a entrar são executados primeiro (eles são executados e não mais guardados); Pode-se usar uma FIFO simples.

política 2: os processos são mantidos em fila (eles são nela inseridos segundo entrar);

* Os mais breves são executados primeiro (eles são executados e não mais guardados);

* Usar uma FIFO de Prioridade minima.
política 3: os processos são mantidos em fila (eles são nela inseridos segundo entrar);

Os mais urgentes são executados primeiro (eles são executados e não mais guardados);

A cada elemento colocado em execução, aumenta-se a prioridade do último da fila;

Usar uma FIFO de Prioridade minima.

política 4: usuário determina um ‘‘quantum’’ (número hipotético em ms, por exemplo);
Os processos são mantidos em fila; os primeiros a entrar são executados primeiro; eles são
executados durante 1 quantum, no máximo (todo processo não concluído em 1 quantum retorna à fila, para depois entrar novamente em execução).Pode-se usar uma FIFO simples.

Em seu programa, o usuário fornece: número de processos; entrar, executar, prioridade de cada um.

O programa mostra, a cada processo concluído, quando começou e acabou sua execução
(importante: não se preocupem em emular os tempos).

Podem me dar uma ideia de como faze-lo?

3 Respostas

T

Para filas de prioridade, se você puder usar uma classe pronta do Java, use a classe java.util.PriorityQueue

gpd38

OK. Eu ja usei esta classe recentemente, mas o problema é que eu estou trabalhando com um objeto que possuis umas 5 variaveis e o enfileirar so trabalha com 1 objeto.

Se eu mandar enfileirar, eu vou perder os outros.

O desenfileirar a mesma coisa

cassio

gpd38:
OK. Eu ja usei esta classe recentemente, mas o problema é que eu estou trabalhando com um objeto que possuis umas 5 variaveis e o enfileirar so trabalha com 1 objeto.

Se eu mandar enfileirar, eu vou perder os outros.

O desenfileirar a mesma coisa

Não é bem assim. O PriorityQueue trabalha inserindo objetos na fila mas mantendo sempre o menor objeto na frente desta fila. O que significa ser “maior” ou “menor” para objetos da classe em questão é você quem define, implementando na classe a interface Comparable.
Assim, seu objeto pode ter 89678945 atributos dentro dele que ainda assim nada se perderá e sua fila de prioridades funcionará corretamente.

Criado 31 de agosto de 2007
Ultima resposta 31 de ago. de 2007
Respostas 3
Participantes 3