Conceitos Fundamentais de Gerenciamento de Memória e I/O
Classificado em Computação
Escrito em em
português com um tamanho de 3,68 KB
Gerenciamento de Memória e Alocação
Alocação Contígua Simples
Memória principal dividida em duas partes: Sistema Operacional (SO) e Programa. Programas são limitados ao tamanho da memória principal. Foi implementado nos primeiros SOs.
Alocação Particionada Estática Absoluta
A memória é dividida em partições, e cada programa é alocado em sua partição específica.
Alocação Particionada Estática Relocável
O programa pode ser carregado em qualquer partição que esteja livre.
Fragmentação Interna
Ocorre quando o programa é menor que a partição, deixando um espaço desperdiçado dentro da partição alocada.
Alocação Particionada Dinâmica
Cada programa "cria" suas próprias partições de acordo com seu tamanho necessário.
Fragmentação Externa
Após o término dos processos, a memória fica cheia de "buracos" (espaços livres não contíguos), o que gera a fragmentação.
Compactação
Técnica que corrige a fragmentação externa, deslocando os programas para que fiquem juntos na memória.
Estratégias de Alocação
- Best-Fit: Aloca o programa no menor bloco livre disponível.
- Worst-Fit: Aloca o programa no maior bloco livre disponível.
- First-Fit: Aloca o programa no primeiro bloco livre encontrado.
Problemas de Desempenho
- Thrashing: Excessiva transferência de páginas e/ou segmentos entre a memória principal e a memória secundária.
- Swapping: Transferência temporária da memória principal para a secundária. Swap In: processo de retorno para a memória principal. Swap Out: processo de envio da memória principal para a secundária.
Memória Virtual
- Endereço Lógico: Gerado pela CPU; também chamado de endereço virtual.
- Endereço Físico: Endereço visto pela unidade de memória.
- Regra geral: 20% do programa deve estar na memória real.
Tabela de Páginas
Qual a finalidade da "Tabela de Páginas"? Fazer o mapeamento entre a memória virtual e real, informando sobre cada uma das páginas virtuais onde as mesmas estão alocadas na memória real ou se não estão alocadas.
Gerenciamento de Dispositivos de I/O
DMA (Acesso Direto à Memória)
Transferência direta de dados entre dispositivos de I/O e a memória sem participação da CPU.
Escalonamento de I/O
O escalonamento de um conjunto de pedidos de I/O requer a sua ordenação adequada em cada fila de espera de um dispositivo. Alguns sistemas operacionais tentam ser justos para que nenhum processo seja mal servido.
Buffer para Gravação ou Leitura
Utilizado para sincronizar dispositivos com velocidades diferentes.
Caching
Memória rápida que guarda cópia de dados para impedir demasiados acessos ao dispositivo de I/O.
Spooling
Buffer enorme aplicado a impressoras. Também inclui tratamento de erro, avisando quando não conseguiu gravar.
Drivers
Vantagem: Um novo periférico pode ser instalado sem que o desenvolvedor do SO precise desenvolver os códigos. Desvantagem: Pode comprometer a estabilidade do SO.
Estrutura de Arquivos
Estruturas Comuns
- Árvores: Estrutura hierárquica.
- Sequência de Registros: Utilizado para leitura de cartões (não muito utilizado atualmente).
- Sequência de Bytes: Utilizado pelo MS-DOS e Unix.