Please enable JavaScript.
Coggle requires JavaScript to display documents.
Memória Principal, MAPA MENTAL 8 DISCIPLINA: SO 2023/2 ALUNO: JOÃO PEDRO…
Memória Principal
Antecedentes.
Memória.
Array de bytes com endereços próprios.
Vê apenas fluxo de endereços.
CPU extrai instruções da memória.
Pode causar carga adicional.
Ciclo de execução típico.
CPU lê uma instrução da memória.
Instrução é decodificada.
Possíveis operandos são buscados na memória.
Instrução é executada.
Possíveis resultados são armazenados de volta na memória.
Hardware básico.
CPU só acessa RAM e registradores diretamente.
Cache é usado para lidar com diferença de velocidades
Proteção de memória.
Uso de registradores para definir o espaço de endereços lógicos.
Alteração ocorre apenas em modo kernel.
Registradores de base e limite.
CPU compara endereços gerados no modo user com esses registradores.
Acesso fora da região designada resulta em erro.
Vinculação de endereços.
Programas executáveis são arquivos binários no disco.
Programas precisam ser carregados na memória e inseridos em um processo.
Processos podem ser movidos entre disco e memória durante a execução (swap).
Processos de usuário podem residir em qualquer parte da memória física.
O primeiro endereço do processo de usuário não precisa ser 00000.
Processo de vinculação de endereços.
Programa de usuário passa por vários passos antes da execução.
Endereços do programa são simbólicos.
Vinculados pelo compilador a endereços relocáveis
Linkage editor vincula endereços relocáveis a endereços absolutos.
A vinculação é um mapeamento de um espaço de endereço para outro.
Pode acontecer em 3 estágios.
Tempo de compilação.
Tempo de carga.
Tempo de execução.
Endereçamento lógico
X
endereçamento físico.
Endereçamento lógico (virtual)
Gerado pela CPU.
Endereçamento físico.
Endereço visto pela unidade de memória.
Unidade de gerenciamento de memória (MMU).
Mapeia endereço virtual para físico.
Valor no registrador de relocação + endereços gerados pelo processo antes de serem enviados à memória.
Programa do usuário lida apenas com endereços lógicos.
Carga dinâmica.
Execução fracionada.
Não é necessário carregar todo o programa de uma vez.
Rotinas são carregadas apenas quando chamadas.
Formato de carga realocável.
Todas as rotinas são mantidas em disco nesse formato.
Processo principal.
Programa principal é carregado e executado na memória.
Chamada de rotina.
Rotina chamadora verifica se a rotina desejada está carregada.
Carregador de vinculação realocável é chamado conforme necessário.
Vantagens.
Melhor uso de espaço de memória.
Rotina não usada não é carregada.
Útil para casos de pouca frequência.
Responsabilidade do programador.
Nenhum suporte especial do sistema operacional necessário.
Vinculação dinâmica e bibliotecas compartilhadas.
Bibliotecas dinâmicas.
Vinculadas a programas durante a execução.
Alguns sistemas usam apenas vinculação estática.
Incorporam bibliotecas do sistema à imagem binária do programa.
Semelhança com carga dinâmica.
Vinculação dinâmica assemelha-se à carga dinâmica.
Vínculo adiado até o tempo de execução.
Código stub.
Pequeno código (stub) localiza a rotina na memória.
Stub é substituído pelo endereço da rotina quando carregada.
Sistema operacional verifica se a rotina está na memória.
Útil para bibliotecas de linguagens e APIs.
Bibliotecas compartilhadas.
Facilitam correções.
Requer suporte do sistema operacional.
Swapping.
Processo deve estar na memória para execução.
Troca temporária entre memória e armazenamento de apoio.
Aumenta a multiprogramação do sistema.
Permuta padrão.
Transferência entre memória principal e secundária.
Memória secundária deve ser rápida e grande.
Sistema mantém uma fila de processos prontos.
Na memória principal ou na memória secundária.
Escalonador decide executar um processo.
Dispatcher verifica se o próximo processo na fila está em memória.
Dispatcher troca um processo em memória com o próximo na fila.
Recarrega registradores e transfere controle ao processo selecionado.
Não usada nos sistemas modernos.
Permuta em sistemas móveis.
Raramente suportados.
Armazenamento "pequeno" e disputado.
Memória flash tem ciclos limitados e não é rápida.
IOS.
Solicita liberação voluntária de memória em escassez.
Dados de leitura são removidos e recarregados se necessário.
Dados modificados nunca são removidos.
Apps que não liberam memória podem ser encerrados.
Android.
Geralmente não suporta permuta.
Encerra processos sem memória.
Grava estado da aplicação na memória flash antes de encerrar.
MAPA MENTAL 8
DISCIPLINA: SO 2023/2
ALUNO: JOÃO PEDRO SPINASSÉ VIANA