Alternância de tarefas vs multitarefa

Vamos considerar o que significa multitarefa. Temos várias tarefas concorrentes que queremos que o computador execute. No entanto, a CPU está sendo compartilhada entre todas as tarefas: algumas estão esperando por isso, outras por isso, outras estão prontas para trabalhar e podem querer fazer algo como calcular os primeiros 5.000 dígitos do PI. Portanto, percebemos que precisamos compartilhar a CPU entre as tarefas do usuário. Uma maneira de fazer isso é com fatias de tempo. Execute uma tarefa por um tempo e, para ser justo e responsivo, a execução da CPU deve ser interrompida e a CPU comutada para funcionar em outra operação ou tarefa pendente. Quando uma tarefa termina, ela desaparece, mas pode não terminar em apenas um intervalo de tempo; portanto, devemos interrompê-la e mudar para outra tarefa que também está aguardando para terminar. Assim, a alternância de tarefas é um recurso necessário de todo sistema operacional multitarefa.

Por que a alternância de tarefas é um recurso necessário de um sistema operacional multitarefa?

Em primeiro lugar, a alternância de tarefas, no contexto da multitarefa, é pausar uma tarefa para que outra tarefa possa ser executada.

Suponha que você tenha apenas uma CPU. Como o seu sistema operacional executa várias tarefas simultaneamente, se ele possui apenas uma CPU? A resposta é que realmente não existe. O que acontece é que as tarefas são constantemente pausadas e retomadas, cada uma com seu intervalo de tempo. A troca é rápida o suficiente para dar a ilusão de que as tarefas estão sendo executadas simultaneamente.

Um sistema operacional sem alternância de tarefas seria capaz de executar apenas um número máximo de tarefas simultaneamente iguais ao número de CPUs.