Key Difference – Agendamento Preemptivo vs Não Preemptivo no SO
Um processo é um programa em execução. Um computador deve executar muitas tarefas ao mesmo tempo. Portanto, a CPU deve obter os 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 ao novo processo. Após a conclusão da tarefa, a CPU é alocada de volta ao processo anterior. O escalonamento de acordo com este mecanismo é conhecido como escalonamento preemptivo. Se o processo em execução não pode ser interrompido e é obrigatório executar o processo em execução, entã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 pelo 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 pelo qual um processo inicia a execução somente após o término do processo anterior. Essa é a principal diferença entre agendamento preemptivo e não preemptivo no SO.
O que é agendamento preventivo no SO?
Round Robin Scheduling é um exemplo de escalonamento preemptivo. Cada processo recebe 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, o processo é antecipado e adicionado ao final da fila de prontos. 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 Agendamento Round Robin
O processo P1 é executado até 20. F altam mais 33ms. Em seguida, o P2 é executado. Como o quantum de tempo é 20 e o tempo requerido P2 é 17ms, P2 será executado por 17ms. Assim, 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. Tem 4ms para completar o processo total. Novamente, o P1 será executado por 20ms. Tem mais 13ms para concluir o processo. A mudança é dada a 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 a P3. Ele tinha 13ms para ser concluído, então ele é concluído. Agora, o único processo restante é P3. Tem 28ms para completar. Então P3 será executado por 20ms. O resto é 8ms. Todos os outros processos já concluíram a execução. Portanto, novamente os 8ms restantes do P3 serão executados. Da mesma forma, cada processo tem a chance de ser executado.
O que é agendamento não preemptivo no SO?
O escalonamento por ordem de chegada (FCFS) pode ser tomado como um exemplo de escalonamento não preemptivo. O processo que solicita primeiro é alocado à CPU primeiro. Esse agendamento é facilmente gerenciado pela fila First In First Out (FIFO). Se houver processos em ordem como P1, P2 e P3, então a chance é dada primeiro a P1. Depois de concluído, 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 pico de CPU em milissegundos como segue.
Figura 02: Exemplo de Agendamento FCFS
De acordo com o acima, P1 será executado. Uma vez 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 agendamento preemptivo e não preemptivo no SO?
O escalonamento preemptivo e não preemptivo no SO são mecanismos para escalonar processos em um computador
Qual é a diferença entre agendamento preemptivo e não preemptivo no SO?
Agendamento Preemptivo vs Não Preemptivo no SO |
|
O escalonamento preemptivo é o mecanismo de escalonamento de processos através 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 pelo qual um processo inicia a execução somente após o término do processo anterior. |
Interrupção do processo | |
No escalonamento preemptivo, os processos podem ser interrompidos. | No escalonamento não preemptivo, os processos podem ser interrompidos. |
Utilização da CPU | |
No escalonamento preemptivo, a utilização da CPU é maior do que no escalonamento não preemptivo. | No escalonamento não preemptivo, a utilização da CPU é mínima em comparação com o escalonamento preemptivo. |
Flexibilidade | |
A programação preventiva é flexível. | A programação não preemptiva não é flexível. |
Resumo – Agendamento Preemptivo vs Não Preemptivo no SO
Existem vários processos em execução em um 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 escalonamento de processos podem ser preemptivos ou não preemptivos. O escalonamento preemptivo é o mecanismo de escalonamento de processos através 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 processos 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 SO.
Baixe o PDF do agendamento preventivo vs não preemptivo no SO
Você pode baixar a 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 agendamento preemptivo e não preemptivo no SO