Podcast
Questions and Answers
Qual é a principal diferença entre endereços virtuais e endereços reais?
Qual é a principal diferença entre endereços virtuais e endereços reais?
Qual é o método de gestão de memória virtual mais utilizado?
Qual é o método de gestão de memória virtual mais utilizado?
O que caracteriza o endereçamento virtual em relação ao swapping?
O que caracteriza o endereçamento virtual em relação ao swapping?
Qual dos seguintes itens é um exemplo de linguagem que utiliza garbage collectors?
Qual dos seguintes itens é um exemplo de linguagem que utiliza garbage collectors?
Signup and view all the answers
Qual é o papel do sistema operacional na conversão de endereços virtuais em endereços reais?
Qual é o papel do sistema operacional na conversão de endereços virtuais em endereços reais?
Signup and view all the answers
Quais são as vantagens da gestão de memória segmentada?
Quais são as vantagens da gestão de memória segmentada?
Signup and view all the answers
Qual é uma desvantagem da segmentação na gestão de memória?
Qual é uma desvantagem da segmentação na gestão de memória?
Signup and view all the answers
O que caracteriza um esquema misto na gestão de memória?
O que caracteriza um esquema misto na gestão de memória?
Signup and view all the answers
Qual é uma desvantagem do esquema misto?
Qual é uma desvantagem do esquema misto?
Signup and view all the answers
O que é um descritor de segmento?
O que é um descritor de segmento?
Signup and view all the answers
O que é necessário para definir segmentos maiores que a memória física?
O que é necessário para definir segmentos maiores que a memória física?
Signup and view all the answers
O que o sistema operacional Multics utilizou na gestão de memória?
O que o sistema operacional Multics utilizou na gestão de memória?
Signup and view all the answers
Qual das opções abaixo não é uma vantagem da segmentação?
Qual das opções abaixo não é uma vantagem da segmentação?
Signup and view all the answers
Qual dos seguintes algoritmos busca o primeiro buraco na lista que tem dimensão suficiente para carregar um programa?
Qual dos seguintes algoritmos busca o primeiro buraco na lista que tem dimensão suficiente para carregar um programa?
Signup and view all the answers
No contexto dos sistemas multi-programados, o que representa o valor '1' em um bitmap?
No contexto dos sistemas multi-programados, o que representa o valor '1' em um bitmap?
Signup and view all the answers
Qual das seguintes opções é uma característica do algoritmo 'Worst fit'?
Qual das seguintes opções é uma característica do algoritmo 'Worst fit'?
Signup and view all the answers
O que acontece com um processo quando ele necessita de mais memória em tempo de execução?
O que acontece com um processo quando ele necessita de mais memória em tempo de execução?
Signup and view all the answers
Qual é a função do algoritmo 'Next fit' em sistemas multi-programados?
Qual é a função do algoritmo 'Next fit' em sistemas multi-programados?
Signup and view all the answers
O que representa o valor '0' em um bitmap?
O que representa o valor '0' em um bitmap?
Signup and view all the answers
Qual é o objetivo principal do algoritmo 'Best fit'?
Qual é o objetivo principal do algoritmo 'Best fit'?
Signup and view all the answers
Como a memória é representada em sistemas multi-programados?
Como a memória é representada em sistemas multi-programados?
Signup and view all the answers
Qual dos seguintes algoritmos não é considerado um método de alocação de memória?
Qual dos seguintes algoritmos não é considerado um método de alocação de memória?
Signup and view all the answers
O que caracteriza a compactação em sistemas de memória?
O que caracteriza a compactação em sistemas de memória?
Signup and view all the answers
O que significa 'swap-out' de um processo?
O que significa 'swap-out' de um processo?
Signup and view all the answers
Qual é a função do bit R (Referenced) na gestão de páginas na memória?
Qual é a função do bit R (Referenced) na gestão de páginas na memória?
Signup and view all the answers
Na classificação de páginas, qual classe representa uma página que não foi acedida e não foi modificada?
Na classificação de páginas, qual classe representa uma página que não foi acedida e não foi modificada?
Signup and view all the answers
Qual é o principal problema do algoritmo FIFO na gestão de páginas?
Qual é o principal problema do algoritmo FIFO na gestão de páginas?
Signup and view all the answers
O que acontece a uma página com bit R igual a 1 no algoritmo de segunda chance?
O que acontece a uma página com bit R igual a 1 no algoritmo de segunda chance?
Signup and view all the answers
Qual das seguintes afirmações sobre as classes de páginas não é correta?
Qual das seguintes afirmações sobre as classes de páginas não é correta?
Signup and view all the answers
Qual função do sistema operativo é responsável por libertar a memória?
Qual função do sistema operativo é responsável por libertar a memória?
Signup and view all the answers
O que caracteriza um sistema mono-programado?
O que caracteriza um sistema mono-programado?
Signup and view all the answers
Qual é o impacto da técnica de overlays em sistemas mono-programados?
Qual é o impacto da técnica de overlays em sistemas mono-programados?
Signup and view all the answers
Como é medida a taxa de ocupação da CPU em sistemas multi-programados?
Como é medida a taxa de ocupação da CPU em sistemas multi-programados?
Signup and view all the answers
Qual é uma desvantagem das partições fixas na gestão de memória?
Qual é uma desvantagem das partições fixas na gestão de memória?
Signup and view all the answers
O que representa o grau de multi-programação?
O que representa o grau de multi-programação?
Signup and view all the answers
Qual das seguintes opções é uma característica de sistemas multi-programados?
Qual das seguintes opções é uma característica de sistemas multi-programados?
Signup and view all the answers
Qual é a função do registo fronteira em sistemas mono-programados?
Qual é a função do registo fronteira em sistemas mono-programados?
Signup and view all the answers
Qual fator afeta a probabilidade de a CPU estar desocupada em sistemas multi-programados?
Qual fator afeta a probabilidade de a CPU estar desocupada em sistemas multi-programados?
Signup and view all the answers
O que é a fragmentação interna em sistemas de gestão de memória?
O que é a fragmentação interna em sistemas de gestão de memória?
Signup and view all the answers
Qual é a função do bit de presença em um descritor de página?
Qual é a função do bit de presença em um descritor de página?
Signup and view all the answers
O que acontece durante uma page fault?
O que acontece durante uma page fault?
Signup and view all the answers
O que é uma tabela de páginas?
O que é uma tabela de páginas?
Signup and view all the answers
Qual é o propósito das tabelas de páginas multi-nível?
Qual é o propósito das tabelas de páginas multi-nível?
Signup and view all the answers
Em uma tabela de páginas, o que representa o campo da moldura?
Em uma tabela de páginas, o que representa o campo da moldura?
Signup and view all the answers
O que é o TLB (Translation Lookaside Buffer)?
O que é o TLB (Translation Lookaside Buffer)?
Signup and view all the answers
Qual é a relação entre endereços virtuais e físicos na memória virtual?
Qual é a relação entre endereços virtuais e físicos na memória virtual?
Signup and view all the answers
Ao ocorrer uma page fault, que procedimento deve ser realizado?
Ao ocorrer uma page fault, que procedimento deve ser realizado?
Signup and view all the answers
Qual dos seguintes não é um componente típico de um descritor de página?
Qual dos seguintes não é um componente típico de um descritor de página?
Signup and view all the answers
Por que é necessário transferir uma página para a memória secundária durante uma page fault?
Por que é necessário transferir uma página para a memória secundária durante uma page fault?
Signup and view all the answers
O que indica o deslocamento dentro de um endereço virtual?
O que indica o deslocamento dentro de um endereço virtual?
Signup and view all the answers
Qual das seguintes opções é verdadeira sobre as molduras na memória?
Qual das seguintes opções é verdadeira sobre as molduras na memória?
Signup and view all the answers
Qual é o impacto do TLB na eficiência do sistema de memória virtual?
Qual é o impacto do TLB na eficiência do sistema de memória virtual?
Signup and view all the answers
Qual a principal função do campo de proteção em um descritor de página?
Qual a principal função do campo de proteção em um descritor de página?
Signup and view all the answers
Study Notes
Sistemas Operativos - Gestão de Memória
- O sistema operativo é responsável por gerir a memória disponível no sistema.
- Isso inclui a representação do estado da memória, a atribuição de memória aos processos e a libertação da memória.
- Também envolve a conjugação entre a memória principal e secundária.
- Componentes da gestão de memória incluem: Registos, Cache, Memória principal (Discos/Tapes - Memória Secundária)
- Microprogramação.
- Sistema Operativo.
- Software de Backup
Sistemas Mono-programados
- Os programas são executados um de cada vez.
- O sistema operativo carrega um programa por comando para a memória principal e este corre até terminar.
- Os programas têm um limite na dimensão de memória.
- Surgiu a técnica dos overlays para minorar o problema da limitação de memória.
- As partes de programas (definidas pelo programador) são carregadas em memória.
- O sistema operativo protege a memória ocupada.
- Um registo fronteira é usado para definir o limite de endereços ocupados pelo sistema operativo.
Sistemas Multi-programados - Grau de Multi-programação
- Uma medida que aproxima a utilização do CPU quando vários programas correm simultaneamente.
- Os processos passam por uma fracção de tempo, p, bloqueados em operações de I/O.
- Se n processos estiverem a correr, a probabilidade de o CPU estar desocupado é p"
- A probabilidade de o CPU estar ocupado é (1- p").
- n designa-se como o grau de multi-programação.
- A taxa de ocupação do CPU é de aprox 80-90% considerando a probabilidade de I/O.
Sistemas Multi-programados - Partições Fixas
- A memória é dividida em várias partições de dimensão fixa.
- As partições são definidas pelo gestor de sistema.
- Cada programa é carregado em um partição adequada.
- Há fragmentação da memória.
- Fragmentação Interna: espaço desperdiçado dentro de uma partição.
- Fragmentação Externa: partições inteiras desperdiçadas.
Sistemas Multi-programados - Formas de Implementação
- Formas de implementação das partições podem incluir Múltiplas filas ou Fila Única.
Sistemas Multi-programados - Colocação e Protecção
- A multi-programação trouxe problemas de colocação e protecção.
- Colocação: garantir que os endereços referenciados por um programa são os correctos, mesmo que o programa seja carregado em posições diferentes na memória.
- Registo Base: Para cada endereço referenciado pelo programa, soma-se o endereço base da partição onde o programa foi carregado.
- Protecção: impedir que um programa aceda aos endereços de um programa diferente.
- Registo Limite: Checar se o endereço referenciado por um programa está dentro do limite da sua partição atribuída.
- Exemplos de Base e Limite para uma partição incluem verificação de acesso a um endereço End, limite = 384k e base = 128k.
Sistemas Multi-programados - Partições Variáveis
- Esta estratégia atribui partições com dimensões dinâmicas ajustáveis aos programas.
- Evita a fragmentação interna, mas mantém a fragmentação externa.
- Para resolver a fragmentação, utiliza-se de tempos em tempos uma compactação de memória.
- Uma compactação agrupa os endereços contiguos e libera espaços.
Sistemas Multi-programados - Swapping
- É um esquema que envolve a memória principal e memória secundária (disco).
- A ideia principal é transferir os processos da memória principal para o disco e vice-versa.
- Um critério para o swapping é transferir um processo bloqueado para o disco, e trazer um processo que pode tornar-se ativo para a memória RAM.
- Este método é utilizado em conjunto com partições de dimensões variáveis.
- Pode causar proliferação de buracos.
- A compactação da memória é necessário.
Sistemas Multi-programados - Representação da Memória
- Memória estruturada em unidades (blocos) com dimensões fixas.
- Representação do estado da memória pode ser através de Listas Ligadas.
- Estrutura com Listas Ligadas com as posições disponíveis (P), e as posições ocupadas (L).
- A utilização de Bitmaps ajuda na visualização de blocos ocupados e livres na memória principal, onde (1) - representa bloco ocupado e (0)- representa bloco livre
- Também listas ligadas de posições ocupadas, (L) e livres (P).
Sistemas Multi-programados - Algoritmos
- Algoritmos para o carregamento de programas na memória incluem First fit, Next fit, Best fit e Worst fit.
- First-fit procura o primeiro buraco grande o suficiente para carregar o programa.
- Próximo ajuste: variação do primeiro ajuste, partindo do ponto onde foi encontrado um buraco.
- Melhor ajuste: Procura o buraco com o tamanho que melhor se ajusta ao programa.
- Pior ajuste: Procura o maior buraco disponível, esperando que o espaço restante seja usado por outros programas.
- Quick-fit mantém várias listas de buracos, agrupados de acordo com as dimensões.
Sistemas Multi-programados - Memória Dinâmica
- Um processo pode precisar de mais memória em tempo de execução.
- Uma solução é transferir para o disco, e depois introduzir com uma nova dimensão.
- O que pode consumir tempo demais, então reservar antecipadamente espaço para a variável.
- RÁPIDO, mas envolve desperdício de memória
Sistemas Multi-programados - Linguagens de Programação (e.g., C/C++)
- Funções para manipulação de memória dinâmica em C e C++.
- malloc(size_t m): aloca um bloco de m bytes e devolve um apontador para o bloco.
- calloc(size_t n, size_t m): aloca um conjunto de n elementos com m bytes cada, e o apontador para o bloco.
- free(*ptr): Liberta o espaço apontado por ptr, que foi alocado por malloc ou calloc.
Sistemas Multi-programados - Linguagens de Programação (e.g. C++)
- Operadores para reserva e libertação de memória dinâmica em C++.
- new: para reserva dinâmica de memória .
- delete: para libertação de memória.
- invocam construtores e destrutores.
- Linguagens como Java usam garbage collectors para a gestão de memória.
Memória Virtual - Conceitos
- Espaço de endereçamento virtual engloba a memória primária e secundária.
- O endereçamento virtual difere do swapping, visto que cada processo pode ter partes da memória principal ou secundária, ou em ambos.
- Métodos para Gestão de memória virtual incluem: paginação e segmentação.
Memória Virtual - Endereços
- Endereços reais: endereços físicos para acesso direto a dispositivos.
- Endereços virtuais: endereços usados internamente pelo sistema, que não são ligados diretamente aos dispositivos físicos; um endereço virtual pode ser muito diferente de um endereço real.
- Converter para endereços reais, o sistema operativo usa estruturas e algoritmos, e uma unidade de hardware (MMU).
Memória Virtual - MMU
- A função da MMU é converter endereços virtuais em físicos.
- Notifica o sistema se um acesso a um endereço virtual não existir fisicamente na memória principal (page fault).
Memória Virtual - Paginação
- Método comum para gestão de memória virtual.
- Páginas/Blocos de dimensão fixa designadas por páginas.
- A dimensão de paginas é uma potência de 2.
- A memória principal é dividida em molduras (page frames) com capacidade de comportar uma página.
- Endereços virtuais incluem páginas e deslocamento, e endereços físicos incluem molduras e deslocamento.
- Tabelas de páginas (Page Tables): Estrutura que relaciona endereços virtuais com molduras para endereços reais.
- Descritores usados nas Page Tables:
- Bit de presença: indica se a página está na memória principal.
- Moldura: índice da moldura onde a página está localizada.
- Protecção: bits para controlar o acesso à página (e.g., leitura/escrita).
- Controlo: bits auxiliares para o funcionamento dos algoritmos de substituição de páginas.
Memória Virtual - Tabelas Multi-Nível
- Para reduzir o espaço ocupado pelas tabelas de páginas.
- Organizados numa estrutura hierárquica, incluindo uma tabela principal e tabelas de níveis.
Memória Virtual - TLB
- TLB (Translation Lookaside Buffer): cache para páginas, para diminuir o tempo de acesso.
Memória Virtual - Paginação - Algoritmos de Substituição
- Algoritmos para substituir páginas em memória principal quando não há espaço.
- Alguns algoritmos incluem NRU , FIFO, Segundas chances, Relojóio e LRU (Least Recently Used).
- NRU: classifica as páginas com base em bits que indicam se foram acessadas ou modificadas.
- FIFO(First In, First Out): descarta a página que esteve mais tempo na memória.
- Segunda Chance: Variante de FIFO que considera os bits de referência para evitar descartar páginas em uso.
- Relógio: Variante de segunda chance, mas com uma estrutura circular.
- LRU: descarta a página que não foi usada mais recentemente.
- NFU(Not Frequently Used): Algoritmo que tenta aproximar-se do LRU com um contador para cada página carregada em memória.
- Aging: Variante de NFU, desloca o conteúdo do contador.
Memória Virtual - Paginação - Page Faults
- Uma page fault indica que uma página solicitada não está na memória principal, causando bloqueio ao processo.
- O sistema precisa carregar a página da memória secundária para a principal e atualizar as tabelas.
- Page fault pode ocorrer quando o acesso a um endereço virtual não corresponde fisicamente a um espaço na memória principal.
Memória Virtual - Paginação - Working Set
- O working set é o conjunto de páginas que um processo está a utilizar num determinado momento.
- Se todo o working set estiver na memória, não há page faults.
- Algoritmos de substituição de paginação podem utilizar e prever o Working Set para gerenciar melhores decisões de paginação.
Memória Virtual - Paginação - Políticas de Paginação
- O sistema opta por criar a página a pedido quando ela é necessária (Demand Paging), ou carregando um conjunto de páginas antecipadamente (Prepaging).
Memória Virtual - Segmentação
- Método que divide os espaços de endereçamento virtual em segmentos.
- Endereços são lineares (de 0 até um máximo), o que permite segmentos de tamanhos distintos.
- Desvantagens: mais probabilidade de fragmentação.
- Vantagens: fácil compartilhamento de dados.
- Processo dividido em segmentos (código, heap, pilha) em espaços de endereçamento linear diferentes entre um processo e outro.
Memória Virtual - Segmentação - Estruturas
- Tabelas de descritores de segmentos: relacionam os selectores (endereço virtual) com os endereços físicos.
- Estrutura de descritores contém: Bit de presença, Base, Limite, Protecção e Controlo (todos para organização e funcionamento melhorados).
Memória Virtual - Misto
- Combina paginação e segmentação para aproveitar as vantagens de ambos os métodos.
- Um esquema misto era usado no sistema operativo Multics e no processador Pentium.
- Vantagem: elimina desvantagens do esquema puro de segmentação.
- Desvantagem: maior complexidade das MMUs, acessos extras à memória; mas mantém as vantagens do esquema de segmentação de melhor organização e acesso
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Teste seus conhecimentos sobre gestão de memória virtual, endereços virtuais e reais, e segmentação. Este quiz aborda conceitos fundamentais relacionados ao funcionamento dos sistemas operacionais e suas técnicas de gerenciamento de memória. Prepare-se para responder perguntas desafiadoras!