Um processo é um programa em execução. Um computador deve executar muitas tarefas ao mesmo tempo. Portanto, a CPU deve obter processos e executá-los. Às vezes é necessário executar alguns processos do que outros. Nesse ponto, o processo em execução é interrompido e a CPU é alocada para o novo processo. Após a conclusão da tarefa, a CPU é alocada de volta ao processo anterior. O agendamento de acordo com esse mecanismo é conhecido como agendamento preventivo. Se o processo em execução não puder ser interrompido e for obrigatório executar o processo em execução, é conhecido como agendamento não-preventivo. Este artigo discute a diferença entre o agendamento preventivo e não preventivo em um sistema operacional. O planejamento preventivo é o mecanismo de planejamento do processo através do qual um processo pode ser interrompido por outro processo no meio de sua execução. O planejamento não-preventivo é o mecanismo de planejamento do processo através do qual um processo inicia a execução somente após o término do processo anterior.. Esse é o diferença chave entre Agendamento Preemptivo e Não Preemptivo no SO.
1. Visão geral e principais diferenças
2. O que é Agendamento Preemptivo no SO
3. O que é agendamento não-preventivo no SO
4. Semelhanças entre agendamento preemptivo e não preemptivo no SO
5. Comparação lado a lado - programação preventiva versus não-preventiva no SO em forma de tabela
6. Resumo
O agendamento Round Robin é um exemplo de agendamento preventivo. Cada processo recebe uma pequena quantidade de tempo da CPU. Geralmente é de 10 a 100 milissegundos. Essa pequena unidade de dados também é conhecida como quantum de tempo. Após esse tempo, o processo é antecipado e adicionado ao final da fila de espera. Suponha que existem 4 processos como P1, P2, P3 e P4. Os tempos de explosão da CPU em milissegundos são os seguintes. O quantum de tempo é 20.
Figura 01: Exemplo de agendamento de round robin
O processo P1 é executado até 20. Restam outros 33ms. Então o P2 é executado. Como o quantum de tempo é 20 e o tempo requerido P2 é 17ms, P2 será executado por 17ms. Portanto, o processo P2 está concluído. Então a chance é dada a P3. Ele será executado por 20ms. O resto é 48ms. Então o P4 será executado por 20ms. Possui 4ms para concluir o processo total. Novamente, o P1 será executado por 20ms. Ele tem mais 13ms para concluir o processo. A mudança é dada em P3. Ele será executado por 20ms e tem outros 28ms para terminar completamente. O P4 é executado. Tem apenas 4ms. Portanto, P4 conclui a execução. P2 e P4 já terminaram. Os processos restantes são P1 e P3. A chance é dada ao P3. Ele tinha 13ms para concluir, então é concluído. Agora, o único processo restante é P3. Tem 28ms para concluir. Então, o P3 funcionará por 20ms. O resto é 8ms. Todos os outros processos já concluíram a execução. Portanto, novamente o restante dos 8ms de P3 será executado. Da mesma forma, cada processo tem a chance de executar.
O planejamento FCFS (Primeiro a chegar, primeiro a ser servido) pode ser tomado como um exemplo de agendamento não-preventivo. O processo que solicita primeiro é alocado para a CPU primeiro. Esse agendamento é facilmente gerenciado pela fila FIFO (First In First Out). Se houver processos ordenados como P1, P2 e P3, então a chance será dada a P1. Depois de concluído, o P2 será executado. Quando o P2 for concluído, o P3 será executado. Suponha que existam 3 processos como P1, P2 e P3 com tempos de burst da CPU em milissegundos da seguinte maneira.
Figura 02: Exemplo de agendamento de FCFS
De acordo com o acima, P1 será executado. Uma vez concluído, o processo P2 é executado por 3ms. Agora o processo restante é P3. Então ele será executado. O tempo de espera para P1 é zero. O processo P2 teve que esperar 24ms e o processo P3 teve que esperar 27ms. Se os processos chegarem na ordem P2, P3 e P1, o P2 será concluído primeiro. O próximo P3 será concluído e, finalmente, o P1 será concluído.
Programação Preemptiva vs Não Preemtiva no SO | |
O agendamento preventivo é o mecanismo de agendamento do processo pelo qual um processo pode ser interrompido por outro processo no meio de sua execução. | O planejamento não-preventivo é o mecanismo de planejamento do processo através do qual um processo inicia a execução somente após o término do processo anterior.. |
Interrupção do processo | |
No planejamento preventivo, os processos podem ser interrompidos. | No planejamento não-preventivo, os processos podem ser interrompidos. |
Utilização da CPU | |
No agendamento preventivo, a utilização da CPU é maior que no agendamento não preventivo. | No agendamento não preventivo, a utilização da CPU é mínima comparada ao agendamento preventivo. |
Flexibilidade | |
O agendamento preventivo é flexível. | O planejamento não-preventivo não é flexível. |
Existem vários processos em execução no computador. Quando cada processo é executado, a CPU é alocada para esse processo específico. Às vezes, é necessário interromper a execução do processo atual e dar prioridade a outro processo. Os mecanismos de agendamento de processos podem ser preventivos ou não preventivos. O planejamento preventivo é o mecanismo de planejamento do processo através do qual o processo pode ser interrompido por outro processo no meio de sua execução. O planejamento não-preventivo é o mecanismo de planejamento do processo, no qual um processo inicia a execução somente após o término do processo anterior. Essa é a diferença entre Agendamento Preemptivo e Não Preemptivo no SO.
Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui: Diferença entre programação preemptiva e não preemptiva no sistema operacional
1.O que é agendamento preventivo e não preventivo ?. Disponivel aqui
2.Point, Tutoriais. “Algoritmos de agendamento do sistema operacional.”, Ponto de Tutoriais. 8 de janeiro de 2018. Disponível aqui
3. “O que são termos preventivos e não preventivos no contexto do sistema operacional?” Perguntas e respostas sobre o GeeksforGeeks. Disponivel aqui