dasd
A multiprogramação permite que a CPU possa ser compartilhada por um conjunto de processos, em benefício do desempenho global do computador. Entretanto, para obter esse ganho, é necessário compartilhar a memória entre múltiplos processos. Neste capítulo serão discutidas as várias formas de gerenciar a memória.
6.1 Introdução
A memória corresponde a um longo array de palavras ou bytes, cada um com o seu endereço. A CPU e os controladores dos dispositivos periféricos podem ler e escrever em posições da memória:
Mecanismos para gerência de memória:
Máquina pura
Monitor residente
Swapping
Partições múltiplas
Paginação
Segmentação
Segmentação com paginação
6.2 Máquina pura
Este é o esquema mais simples que se pode imaginar, ou seja, não existe gerência de memória. Neste caso, o usuário lida diretamente com o hardware e possui total controle sobre toda a memória. Este mecanismo é o que fornece maior flexibilidade para o usuário, máxima simplicidade e custo mínimo, uma vez que não exige nenhum software nem hardware especiais.
Por outro lado, o esquema apresenta uma série de problemas, que podem ser resumidos pela ausência de serviços: o sistema operacional não controla interrupções, não há monitor residente para processar chamadas de sistema ou erros, etc.
Considerando que o usuário pode alterar o código do próprio sistema operacional, nos endereços dos tratadores de interrupção, etc., esta opção é viável apenas em sistemas dedicados (por exemplo, sistemas embarcados), onde o computador controla um equipamento específico, como um eletrodoméstico, uma máquina de controle numérico, um míssil, um satélite, uma bomba de gasolina, etc.
6.3 Monitor Residente
Neste esquema a memória é dividida em duas partes: área do usuário e área do sistema operacional. A área do sistema operacional fica geralmente no início da memória porque a tabela de interrupção usualmente ocupa os primeiros endereços da memória.
Hardware de