O que significa multiprogramação em sistemas operacionais?

Perguntado por: ualbuquerque3 . Última atualização: 20 de maio de 2023
4.6 / 5 10 votos

Em um sistema de multiprogramação a CPU fica se alternando entre a execução de vários processos, cada um por dezenas ou centenas de milisegundos.

Quais são os tipos de sistemas multiprogramáveis? Sistemas batch, sistemas de tempo compartilhado e sistemas de tempo real.

Multiprogramação é uma técnica utilizada em sistemas operacionais para maximizar o uso da CPU. Nesta técnica, a memória é dividida em várias partes que contém um job cada.

Uma razão para se ter multiprogramação é a maximização do uso da CPU obtida por esta técnica. Outra razão é o uso mais inteligente dos recursos de hardware (CPU, memória, E/S) que na época em que a técnica surgiu eram caros e não podiam ser desperdiçados.

Multitarefa (Multiprogramado) – mais de um programa na memória em execução. Exige técnicas de multiprogramação. As tarefas são executadas em ordem de chegada, mas pode não ser completada. Cada programa é executado dentro de sua fatia de tempo (time sharing – tempo compartilhado).

Sincronização e comunicação entre processos e threads. Escalonamento e controle dos processos e threads. Gerência de memória. Gerência do sistema de arquivos.

Os Sistemas Operativos podem ser divididos em 4 estruturas diferentes:

  • Monolítica;
  • Hierárquica;
  • Máquina Virtual;
  • Cliente-Servidor;

De acordo com (O' Brien, 2000), podemos dividir os sistemas de informação em quatro tipos: Sistemas de informação transacionais, sistemas de informações gerenciais, sistemas de apoio a decisão e sistemas de informações executivas.

Neste de sistema, o processador, a memória e os periféricos permanecem exclusivamente dedicados à execução de um único programa. Era muito clara a desvantagem deste tipo de sistema, no que diz respeito à limitação de tarefas (uma de cada vez), o que provocava um grande desperdício de recursos de hardware.

Qual é a diferença entre multiprogramação e multiprocessamento? A multiprogramação permite que múltiplos processos sejam executados em paralelo, enquanto o multiprocessamento permite que múltiplos processos sejam executados em sequência.

Nos sistemas multiprogramáveis ou multitarefa, os recursos computacionais são compartilhados entre os diversos usuários e aplicações. Enquanto em sistemas monoprogramáveis existe apenas um programa utilizando os recursos disponíveis, nos multiprogramáveis várias aplicações compartilham esses mesmos recursos.

Nos sistemas monoprogramáveis, apenas um único usuário pode interagir com o sistema, enquanto nos multiprogramáveis é permitido que mais de um usuário o utilize. A partir do número de usuários que interagem com o sistema, pode-se classificar os sistemas multiprogramáveis como monousuário e multiusuário.

Sem dúvida, o conceito de multiprogramação é um dos mais importantes nos sistemas operacionais modernos. Se existirem vários programas carregados na memória ao mesmo tempo, a CPU pode ser compartilhada entre eles, aumentando a eficiência da máquina e produzindo mais resultados em menos tempo.

O mecanismo de interrupção constitui a base para a implementação do esquema de paralelismo entre CPU e periféricos na multiprogramação. É um mecanismo usado para sinalizar à CPU a ocorrência de eventos importantes relacionados aos dispositivos periféricos e outros elementos do sistema.

O sistema operacional é um software, ou conjunto de softwares, cuja função é administrar e gerenciar os recursos de um sistema, desde componentes de hardware e sistemas de arquivos a programas de terceiros, estabelecendo a interface entre o computador e o usuário.

Em suma, o sistema operacional, tem as funções básicas de interpretar os comandos do usuário; controlar os periféricos (teclado, vídeo, discos, impressora, mouse, plotter, etc) e organizar arquivos em disco.