Programação Round Robin em Programação C



Este artigo fornecerá a você um conhecimento detalhado e abrangente de como implementar o Round Robin Scheduling na Programação C.

Neste artigo, aprenderemos sobre o algoritmo de escalonamento denominado algoritmo de escalonamento round-robin, o que é round-robin? Como escrever um programa? Etc. Vamos começar.

O que é Round Robin Scheduling?

O Round Robin Scheduling é um algoritmo de agendamento usado pelo sistema para agendar a utilização da CPU. Este é um algoritmo preventivo. Existe uma fração de tempo fixa associada a cada solicitação chamada quantum. O agendador de trabalhos salva o progresso do trabalho que está sendo executado atualmente e passa para o próximo trabalho presente na fila quando um determinado processo é executado por um determinado quantum de tempo.





Agendamento de Round Robin

criando uma série de objetos

Nenhum processo irá segurar a CPU por muito tempo. A troca é chamada de troca de contexto. É provavelmente um dos melhores algoritmos de escalonamento. A eficiência desse algoritmo depende do valor quântico.



ALGORITMO DE AGENDAMENTO DE ROUND ROBIN

  • Primeiro temos uma fila onde os processos são organizados na ordem de chegada, primeiro a servir.
  • Um valor quântico é alocado para executar cada processo.
  • O primeiro processo é executado até o final do valor quântico. Depois disso, uma interrupção é gerada e o estado é salvo.
  • A CPU então passa para o próximo processo e o mesmo método é seguido.
  • As mesmas etapas são repetidas até que todos os processos terminem.

Considere o código de exemplo

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, Arrival_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nEntrar número total de processos: t') scanf ('% d', & limit) x = limite para (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, burst_time [i], total - chegada_time [i], total - chegada_time [i] - burst_time [i]) wait_time = wait_time + total - chegada_time [i] - burst_time [i] turnaround_time = tempo de retorno + total - tempo de chegada [i] contador = 0} if (i == limite - 1) {i = 0} else if (tempo de chegada [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }

RESULTADO:

EXPLICAÇÃO:

No código acima, pedimos ao usuário que insira a quantidade de processos e o tempo de chegada e burst de cada processo. Em seguida, calculamos o tempo de espera e o tempo de resposta usando o algoritmo round-robin.

A parte principal aqui é calcular o tempo de resposta e o tempo de espera. O tempo de retorno é calculado somando o tempo total gasto e subtraindo o tempo de chegada.

usar python no visual studio

O tempo de espera é calculado subtraindo o tempo de chegada e o tempo de burst do total e adicionando-o ao tempo de espera. É assim que ocorre o agendamento round-robin.



VANTAGENS:

  • Baixa sobrecarga para tomada de decisão.
  • Ao contrário de outros algoritmos, ele dá prioridade igual a todos os processos.
  • A fome raramente ocorre neste processo.

DESVANTAGENS:

  • A eficiência do sistema diminui se o valor quântico for baixo, pois a comutação frequente ocorre.
  • O sistema pode parar de responder se o valor quântico for alto.

Com isso, chegamos ao final deste artigo.

Espero que você tenha achado isso informativo e útil, fique atento para mais tutoriais sobre tópicos semelhantes. Você também pode conferir nosso programa de treinamento tpara obter conhecimento aprofundado sobre jQuery, juntamente com seus vários aplicativos, você pode para treinamento online ao vivo com suporte 24 horas por dia, 7 dias por semana e acesso vitalício.Implemente o código acima com diferentes strings e modificações. Agora, temos um bom entendimento de todos os conceitos-chave relacionados ao ponteiro.

criar um array de objetos java

Tem alguma questão para nós? Mencione-os na seção de comentários deste blog e entraremos em contato com você.