Escalonamento de tarefas - Teoria de Sistemas Operacionais

COMPARTILHAR:

Whatsapp Telegram Twitter Facebook Reddit

Os algoritmos de escalonamento por prioridades (PRIO) e Shortest Job First (SJF) podem gerar starvation (inanição).

Um editor de texto não é um tipo de tarefa CPU-bound. CPU-bound são tarefas que requerem muito processamento de CPU. O editor de texto não demanda de muito processamento e interage muito com o usuário. Ele está em grande parte do tempo aguardando uma requisição do usuário para processar e gerar uma saída. Sendo assim, ele pode ser considerado uma tarefa IO-bound.

No escalonamento cooperativo, a tarefa libera o processador quando ela termina, solicita uma entrada/saída, indo para o estado suspensa ou quando libera explicitamente a CPU por meio de uma chamada de sistema. No escalonamento cooperativo não existe um limite de tempo para tarefa permanecer no processador. As tarefas devem cooperar entre si para utilizarem o processador. Se não houver cooperação, o uso do processador pode ser injusto (ou seja, uma tarefa pode dominar o processador enquanto outras estão aguardando no estado de Pronta).

Starvation (inanição) significa que uma tarefa está no estado de pronta mas nunca recebe o processador para executar. Algoritmos de escalonamento que permitem que uma tarefa que chegou recentemente na fila de prontos passe na frente de outras tarefas mais antigas podem gerar inanição. Para resolver este problema, pode-se utilizar a técnica de envelhecimento (aging).

Para otimizar a operação do Sistema Operacional, o despachante (dispatcher) precisa de executar a cada troca de contexto pois é ele quem efetivamente faz a troca. A troca é feita com base na fila definida pelo escalonador.

Os algoritmos de escalonamento por prioridades (PRIO) e Shortest Job First (SJF) podem gerar starvation (inanição). Como o algoritmo PRIO escolhe a tarefa com maior prioridade para ser executada, uma tarefa de baixa prioridade pode esperar indefinidamente pelo processador. O mesmo raciocínio ocorre para o SJF pois ele escolhe sempre a menor tarefa (em termos de tempo) para ser executada. Caso tarefas pequenas cheguem continuamente no sistema, uma tarefa que demanda mais tempo nunca ganhará o processador.

A métrica “Tempo de Vida”, utilizada para avaliar escalonadores, diz respeito ao tempo entre a criação da tarefa e o seu encerramento.

 A métrica “Tempo de Espera”, utilizada para avaliar escalonadores, diz respeito ao tempo gasto pela tarefa na fila de prontos. O tempo de espera é o tempo que a tarefa poderia estar no processador, mas deve ficar aguardando no estado de pronta.

Para otimizar a operação do Sistema Operacional, o escalonador não precisa ser executado a cada troca de contexto. O escalonador pode definir uma fila de tarefas que serão executadas pelos próximos N milissegundos e, a cada troca de contexto, o despachante utiliza essa lista para executar a troca.

São tipos de métricas para avaliar diferentes escalonadores:

  • Tempo de vida
  • Tempo de espera
  • Tempo de resposta
O tempo do processo no estado executando não é uma métrica para avaliar o algoritmo de escalonamento. Essa medida pode ser utilizada para avaliar um determinado algoritmo (por exemplo, um algoritmo de busca), mas não a efetividade do algoritmo de escalonamento.

No escalonamento preemptivo, uma troca de contexto pode ocorrer a cada interrupção, exceção ou chamada de sistema. Uma troca de contexto pode ocorrer quando: i) uma interrupção (que pode ser uma interrupção indicando que tempo da tarefa no processador terminou) ou ii) uma exceção (que pode ser um acesso a uma posição de memória indevida) ou iii) uma chamada de sistema (que pode ser uma write ou read). Vale destacar que, quando a tarefa executa uma chamada de sistema, ela irá para o estado de suspensa até que a execução da chamada seja encerrada.

O escalonador de CPU define a ordem de execução das tarefas que estão no estado Prontas. O escalonador define quem será a próxima tarefa que será executada e o despachante realiza a troca das tarefas na CPU. A ordem de execução das tarefas deve considerar apenas as tarefas prontas para ganharem o processador. Não faz sentido escalonar tarefas que estão aguardando algum evento (I/O, por exemplo).

São tipos algoritmos de escalonamento:
  • First Come, First Served
  • Round robin
  • Shortest job first
Caso o Sistema Operacional utilize o algoritmo de escalonamento por prioridades (PRIO), a técnica de Envelhecimento (aging) pode ser utilizada para resolver o problema de starvation. Tarefas que estão aguardando muito tempo na fila de prontas (ou seja, tarefas que “envelhecem” na fila de prontas) podem ter sua prioridade aumentada de tal forma que possam ser executadas. Essa técnica pode utilizar uma função linear, ou seja, a prioridade aumenta linearmente com o tempo em que a tarefa está aguardando na fila de prontas. Lembrando que, após ganhar o processador, a tarefa volta a ter sua prioridade original. Os algoritmo de escalonamento que alteram a prioridade da tarefa são chamados de algoritmos por prioridades dinâmicas.

COMENTÁRIOS

Nome

#ann,25,#HK,30,#LTCode,130,Artigo - Diversos,156,Artigo - Games,201,Artigo - Tecnologia,615,autor-thomaz,7,Coluna - Alternative World,24,Coluna - Fail,12,Coluna - Tec Line,14,Criptomoeda,72,Curiosidades - Diversos,49,Curiosidades - Tecnologia,50,en,2,estudo,8,HN,12,logica,14,Pentest,23,Programar C,29,Programar POO,6,Programar Python,6,Programar Shell,25,Programar verilog,12,qradar,4,Raspberry Pi,15,Redes,3,root,117,Shorty Awards,1,Smartphones - Reviews,33,Teoria,10,Top Nostalgia,2,VPN,19,WhatsApp,46,
ltr
item
Limon Tec: Escalonamento de tarefas - Teoria de Sistemas Operacionais
Escalonamento de tarefas - Teoria de Sistemas Operacionais
Os algoritmos de escalonamento por prioridades (PRIO) e Shortest Job First (SJF) podem gerar starvation (inanição).
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s320/ltcode.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmI65og5X32bSLCmBz3uJnZlmDvzOFWZWoZzyvUhh2rtp8Hr_kolKy02pOjxpkThrz8uHaTu3skUdeDJlkFEKkC2a9EabpwPzbwJ-hm-po0QIaNeNvYm5CJw3k4SbN03V-d2h1dxrW2tz4/s72-c/ltcode.jpg
Limon Tec
https://www.limontec.com/2022/02/teoria-sistemas-operacionais-4.html
https://www.limontec.com/
https://www.limontec.com/
https://www.limontec.com/2022/02/teoria-sistemas-operacionais-4.html
false
2157924926610706248
UTF-8
Carregar todos posts Não encontramos nenhum post VER TUDO Ler mais Responder Cancelar resposta Deletar Por Home PÁGINAS POSTS Ver tudo RECOMENDADO PARA VOCÊ LABEL ARQUIVO SEARCH TODOS POSTS Não encontramos nenhum post relacionado a sua requisição VOLTAR PÁGINA INICIAL Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Set Out Nov Dez apenas agora 1 minuto atrás $$1$$ minutes ago 1 hora atrás $$1$$ hours ago Ontem $$1$$ days ago $$1$$ weeks ago mais de 5 semanas atrás Seguidores Seguir ESTE CONTEÚDO ESTÁ BLOQUEADO PASSO 1: Compartilhe com seus amigos PASSO 2: Clique no link compartilhado Copiar Todo Código Selecionar Todo Código Todos códigos foram copiados para seu clipboard Não é possível copiar códigos / textos, por favor aperte [CTRL]+[C] (ou CMD+C no Mac) para copiar Tabela de conteúdo