O sistema operacional é o software mais importante e o coração do computador, que não apenas gerencia a memória e os processos dentro de um computador, mas também permite que os usuários executem o software aplicativo. É um conjunto coletivo de programas que abstraem o hardware do sistema e apresentam aos usuários uma máquina virtual completa. Além das tarefas básicas, como rastrear arquivos ou diretórios, controlar dispositivos periféricos, enviar saída para a tela do monitor, o sistema operacional também serve a propósitos mais altos, como multiprogramação e multitarefa, para garantir que os programas em execução simultaneamente não interfiram entre si. Os sistemas operacionais modernos não apenas facilitam o processamento paralelo, mas também o compartilhamento de tempo, que é apenas um conceito de multiprogramação. A multitarefa é apenas uma forma rudimentar de multiprogramação usada em um contexto diferente.
Multiprogramação é a capacidade de mais de um usuário usar o computador por vez, usando uma única CPU. A idéia é utilizar efetivamente o processador para criar vários processos prontos para execução, pois cada processo pertence a um usuário diferente. Se o processo atual parar por algum motivo, porque ele precisa aguardar algum evento específico, o sistema operacional alocará a CPU para outro processo na fila. Toda a operação é facilitada pela multiprogramação de sistemas operacionais para maximizar a utilização da CPU e reduzir o tempo ocioso da CPU. A idéia é manter a CPU ocupada o maior tempo possível.
Multitarefa significa execução simultânea de vários processos por um usuário no mesmo computador, utilizando várias CPUs. Por exemplo, em um sistema operacional multitarefa, você pode trabalhar em um documento do Word com um programa enquanto ouve música ao mesmo tempo em outro programa. A multitarefa é eficaz quando os programas de computação exigem um alto grau de paralelismo. Ele se baseia no conceito de compartilhamento de tempo, porque vários processos ou tarefas podem ser alternados de acordo em um intervalo de tempo regular, para que os usuários tenham a ideia de que eles são executados simultaneamente..
O termo multiprogramação é uma forma rudimentar de processamento paralelo, o que significa que vários processos são executados simultaneamente ao mesmo tempo em um único processador. O termo é usado em sistemas operacionais modernos quando vários programas ou processos são executados em um único processador e é tarefa do sistema operacional gerenciar todos os processos de maneira eficaz e eficiente. Multitarefa refere-se à capacidade do sistema operacional de executar várias tarefas ao mesmo tempo usando várias CPUs. Basicamente, usa duas ou mais CPUs em um único sistema para alocação de tarefas que compartilham recursos comuns, incluindo CPU e memória.
A multiprogramação é baseada no conceito de alternância de contexto, que é um procedimento padrão que facilita a alternância da CPU de um processo de encadeamento para outro utilizando uma única CPU. Ele armazena o estado de um processo ativo para a CPU no PCB (Process Control Block) para que o processo continue do mesmo estado. A multitarefa, por outro lado, é baseada no conceito de compartilhamento de tempo, que é uma técnica usada para fornecer a cada usuário uma parte do sistema de tempo compartilhado, permitindo que os usuários compartilhem os mesmos recursos simultaneamente. É uma extensão lógica da multiprogramação.
Ambos os termos compartilham quase o mesmo significado e são os termos comuns usados nos sistemas operacionais modernos, mas com objetivos diferentes. O conceito de multiprogramação baseia-se apenas na capacidade do computador de armazenar programas ou instruções por um longo período de tempo, a fim de reduzir o tempo ocioso da CPU. A alocação do processo é feita via algoritmo de agendamento. O sistema operacional executa parte de um programa por vez, seguido por parte de outro programa e assim por diante. Em um sistema operacional multitarefa, a CPU permite que vários processos sejam executados simultaneamente via compartilhamento de tempo e os executa de acordo..
No sistema operacional de multiprogramação, a idéia é fornecer total transparência entre os usuários, pois vários usuários compartilham a mesma CPU que muda rapidamente de um usuário para outro para melhorar a utilização da CPU. Permite alocação eficiente e eficaz de recursos sem a interação do usuário com o sistema. O sistema operacional executa parte de um programa seguido por outro programa, mas parece que todos os programas são executados simultaneamente. No sistema operacional multitarefa, os usuários são substituídos por programas ou processos e cada processo leva uma boa parte do tempo da CPU. O processo ocorre tão rápido que parece que várias tarefas estão sendo executadas simultaneamente.
Em poucas palavras, ambos os termos são frequentemente usados em conjunto para representar os sistemas operacionais modernos, mas com objetivos e funcionalidades diferentes. Enquanto um sistema operacional de multiprogramação permite que mais de um programa seja executado simultaneamente usando uma única CPU, um sistema operacional de multitarefa permite que vários processos ou tarefas sejam executados ao mesmo tempo, utilizando várias CPUs. A multiprogramação é baseada na alternância de contexto, o que não permite que a CPU fique ociosa, maximizando a utilização da CPU, enquanto a multitarefa é baseada no compartilhamento de tempo, pois várias tarefas podem ser alternadas de acordo com a prioridade em intervalos regulares de tempo para obter o máximo desempenho da CPU.