Alguém me disse que o Linux pode rodar em CPUs que não suportam múltiplas tarefas.
Mas se você possui apenas um núcleo que não suporta multitarefa, como o Linux implementa multitarefa?
Digamos que eu queira executar dois programas que precisam de 1h para terminar cada um. Como o Linux pausa o primeiro programa após aproximadamente 100 ms para mudar para o segundo programa?
Aqui estão dois cenários em que posso pensar:
- Não é possível executar várias tarefas ao mesmo tempo.
- O Linux usa um temporizador de hardware para interromper processos em execução.
Não está claro para mim o que você quer dizer com CPU que suporta múltiplas tarefas. Acho que você está pensando em CPUs multi-core, mas elas não são um pré-requisito para multitarefa; os sistemas operacionais multitarefa são anteriores aos sistemas com múltiplas CPUs (sem falar nas CPUs com vários núcleos).
No entanto, no que diz respeito a pausar um processo para executar outro, o Linux usa uma variedade de técnicas, incluindo temporizadores de hardware (indiretamente). Essencialmente, sempre que o kernel é invocado, ele pode decidir alterar o processo em execução. Veja as seguintes postagens para obter detalhes: