Gerência de Memória e Sistemas de Arquivos: Conceitos
Classificado em Computação
Escrito em em
português com um tamanho de 10,5 KB
Gerenciamento de Memória
Quais as funções básicas da gerência de memória?
- Permitir a execução de programas residentes em memórias secundárias.
- Possibilitar um maior número de processos residentes na memória principal.
- Maximizar o compartilhamento do processador e de outros recursos.
Defina alocação contígua simples
Neste método, a memória principal é subdividida em duas áreas: uma para o Sistema Operacional e outra para o programa do usuário. O programa do usuário tem controle total sobre a sua área de memória.
O que é a técnica de overlay?
Consiste em dividir o programa em módulos, permitindo que cada módulo seja executado de forma independente, utilizando a mesma área de memória sequencialmente.
Defina alocação particionada estática
A memória é dividida em partições de tamanho fixo, estabelecidas na inicialização do sistema. Caso seja necessário alterar o tamanho das partições, o sistema deve ser desativado e reinicializado.
Diferencie alocação particionada estática absoluta e relocável
- Alocação Particionada Estática Absoluta: Os programas são carregados e executados em uma única partição específica. Os compiladores geravam apenas código absoluto, com endereços de memória fixos.
- Alocação Particionada Estática Relocável: As referências de memória dos programas são relativas ao início do código, permitindo que eles sejam executados a partir de qualquer partição livre que os comporte.
Qual a diferença entre fragmentação interna e externa?
- Fragmentação Interna: Ocorre quando um espaço de memória alocado a um processo é maior do que o necessário. O espaço excedente dentro da partição fica inutilizado, pois não pode ser alocado a outros processos.
- Fragmentação Externa: Ocorre quando existem espaços livres entre as partições alocadas, mas esses espaços são muito pequenos para atender a novas solicitações de alocação. A memória total disponível pode ser suficiente, mas não está contígua.
Qual a principal limitação da alocação estática absoluta?
A principal limitação é a falta de flexibilidade. Um programa compilado para uma partição específica só pode ser carregado naquela partição. Na alocação relocável, o programa pode ser carregado em qualquer partição disponível que tenha tamanho suficiente, otimizando o uso da memória.
Defina alocação particionada dinâmica
As partições não são definidas previamente. Cada programa recebe exatamente o espaço de memória que necessita, e essa área se torna sua partição. Isso elimina o conceito de partições fixas e reduz a fragmentação interna.
Quais são as estratégias de alocação dinâmica?
- Best-fit: Procura na memória a menor partição livre que seja grande o suficiente para o processo. A desvantagem é que pode gerar fragmentos de memória muito pequenos e difíceis de reutilizar.
- Worst-fit: Aloca o processo na maior partição livre disponível. A vantagem é que o espaço restante tende a ser grande o suficiente para outros processos.
- First-fit: Aloca o processo na primeira partição livre encontrada que seja grande o suficiente. Em média, é a estratégia mais rápida.
O que é swapping e para que serve?
É uma técnica que move temporariamente um processo da memória principal para a memória secundária (disco) para liberar espaço para outros processos. O swapping permite um maior compartilhamento da memória e uma melhor utilização dos recursos do Sistema Operacional (SO).
Memória Virtual
Quais os benefícios da memória virtual?
- Permite que programas maiores que a memória principal disponível sejam executados.
- Aumenta o grau de multiprogramação, permitindo que mais processos compartilhem a memória simultaneamente.
- Minimiza o problema da fragmentação, pois o espaço de endereçamento não precisa ser contíguo na memória física.
Como um endereço virtual é traduzido para um endereço real?
Quando um programa é executado, apenas uma parte dele reside na memória principal. O processador gera endereços virtuais, que são traduzidos para endereços reais (físicos) pela Unidade de Gerenciamento de Memória (MMU). Se a parte do programa referenciada não estiver na memória principal, ocorre uma falha (page fault) e o sistema operacional a carrega da memória secundária.
O que é mapeamento de memória?
É o mecanismo, geralmente implementado pela MMU, que traduz um endereço do espaço virtual de um processo para o endereço correspondente no espaço real (memória física). Cada processo possui seu próprio espaço de endereçamento virtual, o que lhe dá a ilusão de possuir sua própria memória exclusiva.
Qual a diferença entre paginação e segmentação?
A principal diferença está na forma como o espaço de endereçamento virtual é dividido:
- Na paginação, ele é dividido em blocos de tamanho fixo chamados páginas.
- Na segmentação, ele é dividido em blocos de tamanho variável chamados segmentos, que correspondem a unidades lógicas do programa (ex: código, dados, pilha).
Defina memória virtual por paginação
É uma técnica de gerência de memória na qual os espaços de endereçamento (virtual e real) são divididos em blocos de tamanho fixo. Os blocos do espaço virtual são chamados de páginas, e os do espaço real (memória física) são chamados de frames. Cada processo possui sua própria tabela de páginas para mapear suas páginas virtuais para os frames físicos.
Explique as políticas de busca de páginas
Determinam quando uma página deve ser carregada para a memória principal.
- Paginação por Demanda: As páginas de um processo são transferidas da memória secundária para a principal apenas no momento em que são referenciadas pela primeira vez.
- Paginação Antecipada: O sistema tenta prever quais páginas serão necessárias em breve e as carrega para a memória principal proativamente, junto com a página referenciada.
Explique as políticas de alocação de páginas
Determinam quantos frames um processo pode manter alocados na memória principal.
- Alocação Fixa: Define-se um número máximo de frames que um processo pode manter na memória principal durante sua execução.
- Alocação Variável: O número de frames alocados a um processo pode variar, dependendo da sua taxa de page fault e da ocupação geral da memória.
Explique as políticas de substituição de páginas
Determinam qual página na memória deve ser removida para dar lugar a uma nova quando ocorre um page fault e não há frames livres.
- Política de Substituição Local: A escolha da página a ser substituída é restrita ao conjunto de páginas do próprio processo que causou o page fault.
- Política de Substituição Global: A página a ser substituída pode ser qualquer uma na memória principal, independentemente do processo a que pertence.
Defina memória virtual por segmentação
Nesta técnica, o espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes, chamados segmentos. Cada segmento corresponde a uma unidade lógica do programa (como código, dados, pilha) e é alocado na memória principal (MP).
Defina memória virtual por segmentação com paginação
É uma abordagem híbrida onde o espaço de endereçamento é primeiro dividido em segmentos (visão lógica) e, em seguida, cada segmento é dividido em páginas de tamanho fixo. Esta técnica combina as vantagens da proteção e compartilhamento da segmentação com a eficiência de gerenciamento de memória da paginação.
Sistemas de Arquivos
O que são sistemas de arquivos?
É o componente do Sistema Operacional (SO) responsável por organizar, armazenar e gerenciar arquivos em dispositivos de armazenamento (como discos). Ele facilita o acesso dos usuários ao conteúdo, permite ler e gravar grandes volumes de dados e possibilita o compartilhamento de arquivos entre processos.
Quais são os métodos de acesso a arquivos?
- Acesso Sequencial: Os registros são lidos na mesma ordem em que foram gravados, um após o outro.
- Acesso Direto (ou Aleatório): Permite a leitura ou gravação de um registro diretamente em sua posição, sem a necessidade de percorrer os registros anteriores.
- Acesso Indexado (ou por Chave): Utiliza uma tabela de índices (chaves) que contém ponteiros para a localização dos registros, permitindo acesso rápido e direto a eles.
Explique a alocação contígua de espaço em disco
Neste método, um arquivo é armazenado em um conjunto de blocos sequenciais e contíguos no disco. Para localizar o arquivo, o sistema precisa apenas do endereço do primeiro bloco e do seu tamanho total (número de blocos).
Explique a alocação encadeada de espaço em disco
Um arquivo é organizado como uma lista de blocos que podem estar espalhados pelo disco. Cada bloco contém, além dos dados, um ponteiro para o próximo bloco do arquivo, formando uma cadeia.
Explique a alocação indexada de espaço em disco
Este método permite o acesso direto aos blocos de um arquivo. Todos os ponteiros para os blocos de dados do arquivo são reunidos em uma única estrutura, chamada bloco de índice. Para acessar o arquivo, o sistema primeiro consulta o bloco de índice.
Tópicos Adicionais
O que é Thrashing?
Ocorre quando o sistema gasta a maior parte do seu tempo transferindo páginas entre a memória principal (MP) e a memória secundária, em vez de executar processos. Isso geralmente acontece quando não há memória suficiente para manter os conjuntos de trabalho de todos os processos ativos, resultando em uma taxa excessiva de page faults.