Nota: Se procura pelo sistema de competição, veja Competições de todos contra todos.
Exemplo da execução de um round-robin com quantum=3.

Round-robin (RR) é um dos algoritmos empregados por escalonadores de processo e de rede, em computação.[1][2] Como o termo é geralmente usado, fatias de tempo (também conhecidas como quanta de tempo)[3] são atribuídas a cada processo em partes iguais e em ordem circular, manipulando todos os processos sem prioridade (também conhecido como executivo cíclico). O escalonamento Round-robin é simples, fácil de implementar e livre de inanição. O escalonamento Round-robin também pode ser aplicado a outros problemas de escalonamento, como o escalonamento de pacotes de dados em redes de computadores. É um conceito de sistema operacional.

O nome do algoritmo vem do princípio round-robin conhecido de outros campos, onde cada pessoa pega um compartilhamento de algo igual por vez.

Escalonamento de Processos

editar

O algoritmo de escalonamento Round-Robin é um dos mais antigos e simples algoritmos, além de ser totalmente imune a problemas de starvation que são tarefas que nunca são executadas em função de ter prioridade inferior as demais. É usado em projetos de sistemas operacionais multitarefa, e foi projetado especialmente para sistemas time-sharing (tempo compartilhado), pois este algoritmo depende de um temporizador (Timer).

Funcionamento

editar

O funcionamento que determina o período de tempo entre cada sinal de interrupção.

Todos os processos são armazenados em uma fila circular. Como no exemplo abaixo.

O agendamento round-robin geralmente emprega tempo compartilhado, dando a cada tarefa um tempo definido chamado quantum. A tarefa é interrompida se esgotado o quantum e retomará de onde parou no próximo agendamento. Sem o tempo compartilhado, tarefas grandes poderiam ser favorecidas em detrimento de tarefas menores.

Exemplo: Se o quantum é 100 milisegundos e a tarefa leva 250 milisegundos para completar, o agendamento round-robin suspenderá a tarefa após os primeiros 100 milisegundos e dara a outra tarefa da fila, o mesmo tempo. Essa tarefa sera executada portanto após 3 agendamentos a saber (100 ms + 100 ms + 50 ms). A interrupção da tarefa é conhecida como preempção.

  • Tarefa1 = Tempo de execução igual a 250 ms (quantum 100 ms).
  • 1. Primeiro agendamento = excecuta tarefa durante 100 ms.
  • 2. Segundo agendamento = mais 100 ms de execução da tarefa.
  • 3. Terceiro agendamento = 100 ms, mas a tarefa termina após os primeiros 50 ms.
  • 4. Total de tempo que a CPU levou para a tarefa1 = 250 mS

Um melhoramento desse agendamento é dividir todos os processos em numeros iguais de frações de tempo e proporcionais ao tamanho da tarefa, assim todos os processos terminam ao mesmo tempo.

Referências

  1. Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Operating Systems: Three Easy Pieces [Chapter: Scheduling Introduction] (PDF), Arpaci-Dusseau Books 
  2. Guowang Miao, Jens Zander, Ki Won Sung, and Ben Slimane, Fundamentals of Mobile Data Networks, Cambridge University Press, ISBN 1107143217, 2016.
  3. Stallings, William (2015). Operating Systems: Internals and Design Principles. [S.l.]: Pearson. 409 páginas. ISBN 978-0-13-380591-8 

Ligações externas

editar
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.

📚 Artikel Terkait di Wikipedia

Computação em nuvem

Computação em nuvem (em inglês, cloud computing) é um termo coloquial para a disponibilidade sob demanda de recursos do sistema de computador, especialmente

Google

price/performance tradeoff for our applications comes from fashioning a reliable computing infrastructure from clusters of unreliable commodity PCs.  Page, Lawrence;

Escalonamento de processos

Consultado em 9 de agosto de 2016  Scheduling algorithmem inglês Process (computing)em inglês Process statesem inglês Automated planning and schedulingem inglês

Enterprise Unified Process

Enterprise Unified Process (EUP) ou Processo Unificado Empresarial (PUE) é uma variante, aumentada, do Rational Unified Process (RUP) ou Processo Unificado Rational/Racional

Sistema de processamento distribuído

receptor dos resultados desse processo. Actualmente, a principal barreira destes sistemas é implementar mecanismos de Inter-Process Communication (IPC), os

Pensamento computacional

Wikilivro [[b:Special:Search/A-level Computing |A-level Computing ]] tem uma página sobre [[b:Special:Search/A-level Computing /AQA/Problem_Solving,_Programming

Shortest remaining time

Escalonamento de processos Scheduling algorithm em inglês Process (computing) em inglês Process states em inglês Automated planning and scheduling em inglês

História dos ambientes virtuais de aprendizagem

MERIT Computing Network, Harry A. Eick, Seymour J. Wolfson, Karl L. Zinn, ACM SIGCUE Bulletin v6 #3, June 1972 Zinn, Karl (1974) Educational Computing at