Diferença entre programação preemptiva e não preemptiva em sistemas operacionais

Diferença entre programação preemptiva e não preemptiva em sistemas operacionais



Agendamento do processador(ouAgendamento de CPU) determina quais processos são atribuídos e removidos da CPU, com base em modelos de agendamento, comoPreemptivaeProgramação Não Preemptiva(também conhecido comoProgramação Cooperativa)

Os sistemas mais antigos podiam operar em modos autônomos simples, mas com a crescente necessidade de sistemas responsivos e flexíveis, bem como virtualização, o gerenciamento de multiprocessamento com eficiência fornece uma resposta rápida a todas as solicitações de processamento de tarefas.



As unidades de programação são freqüentemente chamadas detarefae é trabalho do Agendador executar e gerenciar essas tarefas sempre que necessário; o Scheduler seleciona a tarefa a ser removida e atribuída à CPU para processamento, de acordo com o modelo de escalonamento utilizado.

Como o Scheduler sabe quais tarefas são prioritárias?



O Scheduler precisa executar um processo de seleção justo e eficiente, levando em consideração as solicitações de processamento dinâmicas e variáveis ​​e aproveitando ao máximo os ciclos da CPU.

As tarefas podem estar em dois estados durante o processamento:

  1. Em umCPU Burstonde a CPU está realizando cálculos para processar a tarefa (o período para um Burst da CPU varia de tarefa para tarefa e de programa para programa).
  2. Em umBurst de entrada / saída (I / O)aguardando que os dados sejam recebidos ou enviados do sistema.

Quando a CPU está ociosa, o Scheduler lê oFila prontae seleciona a próxima tarefa a ser executada. Então, é oExpedidorque dá à tarefa selecionada o controle da CPU, então ela precisa ser rápida! Qualquer tempo gasto pelo Dispatcher é conhecido comoLatência de despacho.



Existem diferentes estruturas e parâmetros personalizados para definir oFila pronta, bem como vários métodos que podem ser usados ​​para gerenciar as complexidades do processo de programação.

Geralmente, trata-se de otimizar e maximizar a utilização da CPU, rendimento, etc.

O Programador deve tomar uma decisão durante uma das seguintes etapas:

  1. Quando a tarefa muda de umCorridapara umEstado de espera(por exemplo, esperando durante uma solicitação de E / S).
  2. Quando a tarefa muda deCorridaparapronto(por exemplo, respondendo a uma interrupção).
  3. Quando a tarefa muda deEsperandoparapronto(por exemplo, uma solicitação de E / S foi concluída).
  4. Quando oTarefa



Uma nova tarefa deve ser selecionada se o estágio 1 ou 4 acontecer para garantir a utilização total da CPU, e nos dois estágios 2 e 3, a tarefa pode continuar em execução ou uma nova é selecionada.

Depois de entender como uma tarefa é processada, vamos examinar dois modelos de agendamento que lidam com interrupções de CPU.

Ambos têm recursos semelhantes com tarefas, estados de tarefas, filas e prioridades (estáticas ou dinâmicas):

  • Programação Não Preemptivaé quando uma tarefa é executada até parar (voluntariamente) ou terminar. O Windows tinha um agendamento não preemptivo até o Windows 3.x, após o qual foi alterado para preemptivo do Windows 95.
  • Agendamento preventivoé onde uma tarefa pode ser suspensa à força por uma interrupção da CPU, ao contrário de Não Preemptivo, onde a tarefa é executada até que libere o controle da CPU.

Programação Não Preemptiva

As tarefas em um sistema não preemptivo serão executadas até serem concluídas.

O Agendador verifica os estados de todas as tarefas e agenda a próxima tarefa de maior prioridade com umprontoEstado.

Com o Agendamento Não Preemptivo, uma vez que uma tarefa tenha sua atribuição à CPU, ela não pode ser retirada, mesmo que tarefas curtas tenham que esperar que tarefas mais longas sejam concluídas.

O gerenciamento de agendamento em todas as tarefas é “justo” e os tempos de resposta são previsíveis, pois as tarefas de alta prioridade não podem prejudicar as tarefas em espera na fila.

O Scheduler garante que cada tarefa receba sua parte da CPU, evitando qualquer atraso em qualquer tarefa. A 'quantidade de tempo' alocada para a CPU pode não ser necessariamente igual, pois depende de quanto tempo a tarefa leva para ser concluída.

Agendamento preventivo

Este modelo de agendamento permite que as tarefas sejam interrompidas - em contraste com o Agendamento Não Preemptivo que tem uma abordagem de “execução até a conclusão”.

As interrupções, que podem ser iniciadas a partir de chamadas externas, invocam o Scheduler para pausar uma tarefa em execução para gerenciar outra tarefa de prioridade mais alta - para que o controle da CPU possa ser antecipado.

A tarefa de maior prioridade em umprontoestado é executado, permitindo uma resposta rápida a eventos em tempo real.

Alguns dos contras do Agendamento preventivo envolvem o aumento de sobrecargas nos recursos ao usar interrupções e problemas podem ocorrer com duas tarefas compartilhando dados, já que uma pode ser interrompida durante a atualização de estruturas de dados compartilhadas e pode afetar negativamente a integridade dos dados.

Por outro lado, é prático ser capaz de pausar uma tarefa para gerenciar outra que pode ser crítica.

Em suma

Muitas variações e dependências em políticas diferentes podem ser definidas, como o uso de um“Política de Round Robin [Eu] 'onde cada tarefa (com prioridade igual) é executada uma vez e, em seguida, colocada no final da fila, para o próximo ciclo.

Outras políticas incluemPrimeiro a entrar, primeiro a sair,Shortest-Job-First,Shortest-Job-Next,Menor Tempo Restanteetc.

A análise de dados históricos pode fornecer informações sobre aspectos, como a taxa em que novas tarefas chegam, a CPU e Bursts de I / O etc, para que as distribuições de probabilidade possam calcular as características dos tempos de espera das tarefas, armando assim os administradores com dados relevantes para definir modelos de agendamento.

Publicações Populares

Operação Spring High: Thuds vs. SAMs

O primeiro ataque contra locais de mísseis SA-2 do Vietnã do Norte evoluiu para um desastre de alvos fictícios e aeronaves abatidas, mas forçou os líderes militares a encontrar maneiras de conter a nova ameaça

Diferença entre custo de vida e inflação

No passado recente, as pessoas gastavam mais do que gastariam há alguns anos para ter um estilo de vida semelhante. Isso pode ser interpretado como um alto custo de vida

Diferença entre Dilly Dally e Lollygagging

Dilly dally e lollygagging são expressões usadas em conversas para protestar contra a perda de tempo. Eles são usados ​​como sinônimos um do outro no

Declaração do presidente Obama sobre o tiroteio em Roseburg

O presidente Obama fez uma declaração esta noite sobre o tiroteio em massa no Umpqua Community College em Roseburg, Oregon, onde 10 pessoas morreram e outras sete ficaram feridas. 'Nossos pensamentos e orações não são suficientes, não são suficientes', disse o presidente Obama em seu discurso. 'Não captura a dor de coração, a tristeza e a raiva que deveríamos sentir. E não faz nada para impedir que a carnificina seja infligida em algum outro lugar da América na próxima semana ou daqui a alguns meses. Ainda não sabemos por que esse indivíduo fez o que fez. É justo dizer que qualquer pessoa que fez isso tem uma doença em sua mente, independentemente de quais possam ser suas motivações. ' A notícia do tiroteio - que, como Obama aponta, 'De alguma forma, isso se tornou rotina' - foi divulgada na tarde de quinta-feira. Localizada no sul do Oregon, Roseburg é uma cidade de apenas 22.000 habitantes. 'Cada vez que isso acontecer, direi que podemos realmente fazer algo a respeito, mas teremos que mudar nossas leis', disse Obama. 'De alguma forma, isso se tornou rotina ... O relatório é rotina. Minha resposta aqui neste pódio acaba sendo rotineira ... nos tornamos insensíveis a isso. '

Como os Rough Riders obtiveram seu nome

Um dos repórteres favoritos de Teddy Roosevelt escreveu o relato definitivo na década de 1920, mas suas memórias do episódio nunca foram publicadas - até agora

Diferença entre Percocet e Norco

Norco e Percocet são medicamentos combinados de prescrição em comprimidos, cápsulas e líquidos para ajudar a aliviar a dor moderada a intensa. Ambos contêm