Diferença principal - programação preemptiva vs não preemptiva no sistema operacional
Um processo é um programa em execução. Um computador deve realizar várias tarefas ao mesmo tempo. Portanto, a CPU deve obter processos e executá-los. Às vezes, é necessário executar alguns processos do que outros processos. 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. A programação de acordo com esse mecanismo é conhecida como programação preemptiva. Se o processo em execução não puder ser interrompido e for obrigatória a execução do processo em execução, é conhecido como escalonamento não preemptivo. Este artigo discute a diferença entre o agendamento preemptivo e não preemptivo em um sistema operacional. O escalonamento preemptivo é o mecanismo de escalonamento de processos por meio do qual um processo pode ser interrompido por outro processo no meio de sua execução. O escalonamento não preemptivo é o mecanismo de escalonamento do processo por meio do qual um processo inicia a execução somente após o término do processo anterior. Essa é a principal diferença entre o agendamento preemptivo e não preemptivo no sistema operacional.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é escalonamento preemptivo no sistema operacional
3. O que é escalonamento não preemptivo no sistema operacional
4. Semelhanças entre escalonamento preemptivo e não preemptivo no sistema operacional
5. Comparação lado a lado - escalonamento preemptivo vs não preemptivo no sistema operacional na forma tabular
6. Resumo
O que é agendamento preventivo no sistema operacional?
A programação de Round Robin é um exemplo de programação preventiva. Cada processo obtém uma pequena quantidade de tempo de CPU. Geralmente é de 10 a 100 milissegundos. Essa pequena unidade de dados também é conhecida como quantum de tempo. Após esse tempo ter decorrido, o processo é interrompido e adicionado ao final da fila pronta. Suponha que existam 4 processos como P1, P2, P3 e P4. Os tempos de intermitência da CPU em milissegundos são os seguintes. O quantum de tempo é 20.
Figura 01: Exemplo de programação Round Robin
O processo P1 é executado até 20. Restam mais 33ms. Em seguida, o P2 é executado. Como o quantum de tempo é 20 e o tempo necessário P2 é de 17 ms, P2 executará por 17 ms. Assim, o processo P2 está concluído. Então a chance é dada a P3. Ele será executado por 20ms. O resto são 48ms. Em seguida, o P4 será executado por 20ms. Tem 4ms para completar o processo total. Novamente, o P1 será executado por 20ms. Demora mais 13ms para concluir o processo. A mudança é dada a P3. Vai ser executado por 20ms, e tem mais 28ms para terminar completamente. O P4 é executado. Tem apenas 4ms. Portanto, P4 completa a execução. P2 e P4 já terminaram. Os demais processos são P1 e P3. A chance é dada a P3. Ele tinha 13 ms para ser concluído, então ele é concluído. Agora, o único processo restante é P3. Tem 28ms para ser concluído. Portanto, o P3 será executado por 20ms. O resto são 8ms. Todos os outros processos já concluíram a execução. Portanto, novamente o restante de 8ms de P3 será executado. Da mesma forma, cada processo tem a chance de ser executado.
O que é programação não preemptiva no sistema operacional?
A programação por ordem de chegada (FCFS) pode ser considerada um exemplo de programação não preemptiva. O processo que solicita primeiro é alocado para a CPU primeiro. Essa programação é facilmente gerenciada pela fila Primeiro a Entrar, Primeiro a Sair (FIFO). Se houver processos em ordem como P1, P2 e P3, a chance é dada primeiro para P1. Depois de concluído, o P2 será executado. Quando P2 for concluído, o P3 será executado. Suponha que existam 3 processos como P1, P2 e P3 com tempos de burst de CPU em milissegundos, conforme a seguir.
Figura 02: Exemplo de programação FCFS
De acordo com o acima, P1 será executado. Depois de concluído, o processo P2 é executado por 3ms. Agora, o processo restante é P3. Em seguida, 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 chegaram na ordem P2, P3 e P1, então P2 será concluído primeiro. O próximo P3 será concluído e, finalmente, o P1 será concluído.
Qual é a semelhança entre o agendamento preemptivo e não preemptivo no sistema operacional?
Tanto a programação preemptiva quanto a não preemptiva no sistema operacional são mecanismos para programar processos em um computador
Qual é a diferença entre o agendamento preemptivo e não preemptivo no sistema operacional?
Artigo Diff meio antes da tabela
Programação preemptiva vs não preemptiva no sistema operacional |
|
O escalonamento preemptivo é o mecanismo de escalonamento de processos por meio do qual um processo pode ser interrompido por outro processo no meio de sua execução. | O escalonamento não preemptivo é o mecanismo de escalonamento de processo por meio do qual um processo inicia a execução somente após o término do processo anterior. |
Interrupção de Processo | |
No agendamento preventivo, os processos podem ser interrompidos. | No escalonamento não preemptivo, os processos podem ser interrompidos. |
Utilização de CPU | |
No escalonamento preemptivo, a utilização da CPU é maior do que no escalonamento não-preemptivo. | Na programação não preemptiva, a utilização da CPU é mínima em comparação com a programação preemptiva. |
Flexibilidade | |
O agendamento preventivo é flexível. | A programação não preemptiva não é flexível. |
Resumo - Programação preemptiva vs não preemptiva no sistema operacional
Existem vários processos em execução em um computador. Quando cada processo é executado, a CPU é alocada para aquele 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 preemptivos ou não preemptivos. O escalonamento preemptivo é o mecanismo de escalonamento de processos por meio do qual o processo pode ser interrompido por outro processo no meio de sua execução. O escalonamento não preemptivo é o mecanismo de escalonamento do processo pelo qual um processo inicia a execução somente após o término do processo anterior. Esta é a diferença entre o agendamento preemptivo e não preemptivo no sistema operacional.
Baixe o PDF de agendamento preventivo vs não preemptivo no sistema operacional
Você pode baixar a versão em PDF deste artigo e usá-la para fins off-line de acordo com a 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