Round-robin
Origem: Wikipédia, a enciclopédia livre.
Round-Robin é um termo usado em tecnologia para indicar eventos que se alternam. O conceito Round-Robin pode ser usado para distribuição de carga entre servidores ou para interpolar valores em um gráfico.
[editar] Onde se utiliza
[editar] Banco de dados
O RRDtool é um exemplo de aplicação que utiliza o conceito round-robin. É um banco de dados criado por Tobi Oetiker. Sua função principal é armazenar séries de dados temporais como banda usada em uma rede, temperatura de CPU, requisições em um servidor etc. Os dados são armazenados em um banco de dados com o conceito de round-robin para que as medições fiquem constantes ao longo do tempo.
A técnica Round-Robin é empregada na ferramenta RRDtool para o armazenamento do dados. Na criação de uma base de dados do RRDtool (conhecida como RRD - Round Robin Database), é especificado o tamanho desta base que não sofrerá alteração durante o seu tempo de vida. Na inserção de elementos, estes são inseridos nas posições livres e quando não houver mais espaço, os dados mais antigos são sobrescritos, numa espécie de uma fila circular.
RRDtool é um software Open Source sob a licença tipo GNU GPL.
[editar] Escalonamento de Processos
O algoritmo de escalonamento Round-Robin é um dos mais antigos e simples algoritmos, além de ser totalmente imune a problemas de starvation. É usado em projeto de sistemas operacionais multitarefa, e foi projetado especialmente para sistemas time-sharing.
A idéia do algoritmo é a seguinte. Uma pequena unidade de tempo, denominada timeslice ou quantum, é definida. Todos os processos são armazenados em uma fila circular. O escalonador da CPU percorre a fila, alocando a CPU para cada processo durante um quantum. Mais precisamente, o escalonador retira o primeiro processo da fila e procede à sua execução. Se o processo não termina após um quantum, ocorre uma preempção, e o processo é inserido no fim da fila. Se o processo termina antes de um quantum, a CPU é liberada para a execução de novos processos. Em ambos os casos, após a liberação da CPU, um novo processo é escolhido na fila. Novos processos são inseridos no fim da fila.
Quando um processo é retirado da fila para a CPU, ocorre uma troca de contexto, o que resulta em um tempo adicional na execução do processo.