Sistema operacional multiprogramado
Um sistema operacional multiprogramado é um tipo de sistema em que vários programas podem ser carregados e executados na memória principal simultaneamente.
O principal objetivo desse modelo é maximizar o uso eficiente da CPU, reduzindo o tempo de ociosidade e permitindo que múltiplos processos compartilhem os recursos do sistema de forma mais equilibrada.
Principais características
- Execução concorrente: Em um sistema multiprogramado, diversos programas são mantidos na memória ao mesmo tempo, e a CPU alterna entre eles, processando um enquanto o outro aguarda, por exemplo, a conclusão de uma operação de E/S.
Warning
Lembrando que executar de forma concorrente é diferente de paralelo, uma vez que no inícios dos sistemas multiprogramados os computadores ainda eram single-thread.
-
Maximização do uso da CPU: Como as operações de E/S são mais lentas, a multiprogramação permite que a CPU trabalhe em outro processo enquanto um programa está aguardando pela conclusão de uma operação de E/S. Isso reduz significativamente os períodos de ociosidade da CPU, aumentando sua eficiência.
-
Gerenciamento de recursos: O sistema operacional precisa gerenciar os recursos da máquina, como memória e tempo de CPU, de forma eficiente. Ele faz isso por meio de escalonamento de processos, que decide qual processo deve ser executado a seguir, e troca de contexto, que permite alternar entre diferentes programas sem perder o progresso de cada um.
-
Isolamento e segurança: Embora vários programas estejam rodando simultaneamente, cada um opera em sua própria área da memória. O sistema operacional garante que os processos não interfiram uns nos outros, utilizando técnicas como proteção de memória.
Exemplo
Se um programa está aguardando uma operação de leitura de um disco rígido (o que pode demorar vários milissegundos), o sistema multiprogramado pode alocar esse tempo de espera para outro programa, fazendo com que a CPU nunca fique ociosa.
Esse modelo é a base dos sistemas operacionais modernos, que podem gerenciar vários processos e tarefas ao mesmo tempo, como o Windows, Linux e macOS. A multiprogramação foi um avanço significativo em relação aos sistemas monoprogramados, pois aumentou drasticamente a eficiência e o desempenho dos computadores.