Um . Purpose
Compreender a simultaneidade da execução do processo
Compreender os vários estados do processo e suas transições
Compreender a estrutura do PCB no gerenciamento de processos
Domine o algoritmo de agendamento do processo de número de prioridade
Dois . Conteúdo Experimental
Com VC preparado para alcançar processo de realização do processo de simulação de agendamento agendamento. O algoritmo de agendamento usa um algoritmo que combina números dinâmicos de prioridade e intervalos de tempo. Os requisitos são os seguintes :
- Informações relacionadas ao processo, como identificador do processo e tempo do processo, são colocadas no PCB ;
- Projete três filas de processo de execução, conclusão e pronto;
- A fila pronta é organizada em ordem decrescente de prioridade e cada vez que o processo pronto com a prioridade mais alta é selecionado para execução. O número de prioridade inicial é definido como um número maior (como 30 ) menos o tempo de execução do processo e o número de prioridade é ajustado à medida que o processo é executado;
- Cada vez que o processo é executado, o número de prioridade é reduzido por um valor fixo (como 3 ), o tempo da CPU é aumentado em 1 e o tempo requerido pelo processo é reduzido em 1. Se o tempo exigido pelo processo se torna 0 , significa que o processo está concluído e seu status é definido como "F" , Insira seu PCB na fila de conclusão, se a fila de pronto não estiver vazia, altere o primeiro PCB da fila de pronto para o estado em execução. Se o processo não for concluído, compare seu número de prioridade com o primeiro número de prioridade da PCB na fila pronta , se for pequeno, altere-o para o estado pronto, insira-o na posição apropriada na fila pronta e altere o primeiro PCB na fila pronta Está correndo. Repita o processo acima até que a fila pronta esteja vazia e todos os processos se tornem completos.
Estrutura de dados relacionada:
nó de estrutura typedef {
char name [10]; // identificador do processo
int prio; // Prioridade do processo
int cput; // tempo de CPU ocupado pelo processo
int needt; // Tempo de CPU necessário antes da conclusão do processo
char state // Estado do processo struct node * next;
} PCB;
3. Código experimental
Consulte o código da Experiência 2 para completar o código do algoritmo.
Requisitos:
Escreva um fluxograma da implementação do algoritmo
Programação para alcançar a função requerida pelo problema
Resultados experimentais para testar vários conjuntos de dados