Agendamento egoísta de CPU Round Robin
Algoritmos de escalonamento no sistema operacional executam os processos com base no horário de chegada ou na prioridade. Cada algoritmo escolhe os processos que estão aguardando a fila de prontidão por métodos de preempção ou não. Algoritmos preemptivos fornecem acesso à CPU ao processo que tem prioridade mais alta e antecipam qualquer outro processo que já esteja em execução com prioridade mais baixa. Mas no caso do escalonamento não preemptivo, quando os processos iniciam sua execução, ele não pode ser preemptivo mesmo quando os processos de maior prioridade estão no estado pronto.
O algoritmo de escalonamento round-robin tradicional é preemptivo, onde cada processo obtém uma quantidade fixa de intervalo de tempo ou quantum para sua execução. O processo após um determinado intervalo de tempo vai para o final da fila e outros processos que estão na fila de prontos são atendidos no padrão FCFS. O algoritmo round-robin egoísta é uma variante do tradicional, mas oferece suporte aos processos que estão executando por mais tempo com alta prioridade e fornece melhor implementação do que o método tradicional.
Agendamento round-robin egoísta
Este algoritmo fornece recursos de CPU para os processos que estão em execução por mais tempo com maior prioridade e outros processos na fila podem aumentar sua prioridade para obter a CPU em um curto espaço de tempo, o chamado nome ‘egoísta’. Cada processo que está na fila de prontos recebe um nível de prioridade e os processos com prioridade mais alta recebem tempo de CPU máximo do que os processos com prioridade mais baixa
Aqui são criadas duas listas para todos os processos que estão na fila de prontos como Novos e Aceitos. O processo que entra na fila pela primeira vez deve aguardar até que o processo Aceito conclua seu serviço. Todos os processos na lista obtêm tempo de CPU igual aplicando a abordagem round-robin tradicional, onde cada processo recebe um intervalo de tempo para execução e, após concluir a execução dentro do intervalo de tempo, ele é anexado ao final da fila. fornecendo uma chance para o próximo processo ser executado.
Considere um exemplo de P1, P2 e P3 são os três processos diferentes onde cada um tem diferentes níveis de prioridade. P1 é atribuído como alta prioridade, seguido por P2, e a menor prioridade é para P3. Uma distribuição round-robin com um intervalo de tempo predefinido é definida para cada processo.
-
O processo P1 pode solicitar ao sistema operacional que aumente sua prioridade a qualquer momento. O nível de prioridade do processo restante mudaria de acordo com o sistema operacional.
O nível de prioridade do processo restante mudaria de acordo com o sistema operacional. O processo P2 solicitaria uma prioridade contendo um nível mais alto, o SO ajustaria os níveis de prioridade dados a P2 com um nível de prioridade mais alto em comparação com P1 e P3
Portanto, agora o Processo P2 terá tempo máximo de CPU para o próximo processo.
Se um processo fizer uso desnecessário de um determinado intervalo de tempo, isso poderá fazer com que outros processos esperem mais tempo.
Isso incentiva os processos a utilizarem a CPU de forma eficaz, em vez de dominá-la. A partir deste exemplo, é ilustrada a ideia básica do SRR, onde cada processo pode alterar sua prioridade dinamicamente dependendo de sua atividade, como quanto tempo de CPU utilizou ou quanto tempo esperou pela CPU.
O SRR pode ser aplicado de diversas maneiras, com vários padrões para aumentar ou diminuir a prioridade de um processo. O sistema pode considerar o tamanho de um processo ou a quantidade de tempo de CPU que ele utilizou aguardando a CPU.
Vantagens
O rendimento do sistema aumenta com o uso eficiente da CPU, pois cada processo precisa utilizar apenas o tempo de CPU necessário para a execução.
Cada processo atribuiria uma quantidade igual de tempo de CPU de acordo com o algoritmo Round Robin.
Desvantagens
Qualquer processo pode agir de forma egoísta para utilizar todo o tempo alocado da CPU, mesmo quando não for necessário. Assim, outros processos ficam aguardando mais tempo para adquirir a CPU para realizar seu processamento.
realizar seu processamento. Pode não ser um algoritmo adequado para sistemas em tempo real que funcionam com base no princípio de restrições de tempo, onde cada processo ou tarefa deve ser concluído dentro de um determinado período.
-
O tempo de resposta é maior para os processos que requerem menos tempo de CPU, pois é necessário aguardar que os processos aceitos completem seu tempo quântico
Conclusão
O escalonamento round-robin egoísta fornece tempo de CPU eficiente para os processos com alta prioridade e novos processos têm que esperar até que o processo de alta prioridade complete seu tempo de serviço. É mais eficiente que o agendamento round-robin normal ou outras técnicas de agendamento baseadas em prioridade. A CPU nunca fica ociosa, pois os processos continuam em execução por um longo tempo e outros processos que estão na fila de prontidão têm prioridade para concluir sua execução dentro do intervalo de tempo determinado. Mas a principal desvantagem é que ele não suporta sistemas em tempo real onde eventos discretos precisam ser processados.