Sistemas Operacionais Modernos - Gerenciamento de Memória Flashcards
O que é um gerenciador de memória?
Um gerenciador de memória é uma parte do sistema operacional responsável por alocar, gerenciar e liberar a memória utilizada pelos processos, garantindo que cada um tenha acesso a uma porção adequada de memória e evitando conflitos.
Como é o gerenciamento de memória em um modelo sem abstração de memória?
Em um modelo sem abstração de memória, os programas têm acesso direto ao hardware de memória, sem intermediários como o sistema operacional, o que exige que o desenvolvedor gerencie manualmente a alocação e liberação de memória, tornando o processo mais propenso a erros.
Como múltiplos programas podem ser executados simultaneamente em sistemas sem abstração de memória?
Em sistemas sem abstração de memória, múltiplos programas só podem ser executados simultaneamente se forem manualmente organizados para evitar conflitos de memória, o que geralmente envolve particionamento fixo da memória ou outros controles feitos diretamente pelo programador.
O que são espaços de endereçamento para abstração de memória?
Espaços de endereçamento são uma abstração que permite que cada processo no sistema operacional tenha sua própria visão isolada da memória, protegendo os dados entre processos e facilitando a alocação e gerenciamento de recursos.
Como funcionam os registradores-base e registradores-limite no gerenciamento de memória?
Os registradores-base e registradores-limite delimitam a área de memória que um processo pode acessar, com o registrador-base indicando o início e o registrador-limite definindo o tamanho do espaço. Isso protege a memória de outros processos e evita acessos indevidos.
O que é o conceito de swapping de memória?
Swapping de memória é uma técnica em que processos são temporariamente movidos da memória principal para o disco, liberando espaço para outros processos em execução. Quando necessário, os processos são trazidos de volta para a memória principal, permitindo uma gestão eficiente de recursos em sistemas com memória limitada.
O que é o gerenciamento de memória com mapa de bits?
O gerenciamento de memória com mapa de bits utiliza uma estrutura onde cada bit representa uma unidade de memória, indicando se ela está livre ou ocupada. Essa abordagem permite alocar e liberar memória de forma eficiente, especialmente em sistemas com blocos de tamanhos fixos.
O que é o gerenciamento de memória com lista encadeada?
No gerenciamento de memória com lista encadeada, os blocos de memória são organizados como uma lista, onde cada entrada indica se o bloco está livre ou ocupado, além do seu endereço inicial, tamanho do bloco e um ponteiro para o próximo. Esse método facilita a alocação e liberação de memória dinâmica, permitindo o uso eficiente do espaço disponível.
Como funciona a memória virtual?
A memória virtual cria uma abstração que permite que processos utilizem mais espaço de memória do que o disponível fisicamente, ao armazenar partes dos dados no disco rígido. Quando um processo acessa dados não presentes na memória principal, ocorre um page fault, e o sistema operacional carrega os dados necessários do disco.
Como funciona a paginação?
Na paginação, a memória física é dividida em quadros e a memória lógica (virtual) em páginas de mesmo tamanho. Quando um processo acessa uma página, o sistema operacional consulta a tabela de páginas para localizar o quadro correspondente na memória física. Se a página não estiver carregada, ocorre um page fault, e ela é trazida do disco para a memória.
Como funciona a tabela de páginas?
A tabela de páginas é uma estrutura usada pelo sistema operacional para mapear endereços lógicos de um processo para endereços físicos na memória. Cada entrada da tabela indica o quadro de memória onde a página correspondente está armazenada. Quando o processador acessa um endereço lógico, ele consulta a tabela para localizar a página na memória física, garantindo isolamento e eficiência.
O que são TLBs (Translation Lookaside Buffers) e qual sua importância na paginação?
TLBs (Translation Lookaside Buffers) são caches especiais que armazenam traduções recentes de endereços lógicos para físicos, evitando acessos frequentes à tabela de páginas na memória principal. Elas aceleram a paginação ao reduzir o tempo necessário para traduzir endereços, melhorando o desempenho do sistema e reduzindo a latência de acesso à memória.
O que é uma tabela de páginas multinível e qual sua importância?
A tabela de páginas multinível divide a tabela principal em níveis hierárquicos para reduzir o consumo de memória, armazenando apenas as partes ativamente utilizadas. Isso é importante porque evita a necessidade de alocar grandes tabelas contíguas, tornando a paginação mais eficiente, especialmente em sistemas com endereços virtuais grandes.
O que é uma tabela de páginas invertida e qual sua importância?
A tabela de páginas invertida armazena apenas uma entrada por quadro de memória física, em vez de uma por página virtual, reduzindo o consumo de memória. Isso é importante porque melhora a escalabilidade em sistemas com grandes espaços de endereçamento, embora possa aumentar o tempo de busca devido à necessidade de pesquisa por hashing.
O que são algoritmos de substituição de página?
São estratégias usadas por sistemas operacionais para decidir qual página deve ser removida da memória quando ocorre uma falta de página e não há espaço livre. Exemplos incluem FIFO (First-In, First-Out), LRU (Least Recently Used) e Clock, cada um com critérios diferentes para otimizar o uso da memória e minimizar falhas de página.