Prévia do material em texto
SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DO RIO GRANDE CENTRO DE CIÊNCIAS COMPUTACIONAIS DISCIPLINA Sistemas Operacionais PROFESSORA Karina S. Machado Lista de Exercícios de Revisão – 3º Bimestre – Gerenciamento de Memória e Introdução a sistemas de arquivos (Essa lista não precisa ser entregue) 1. Defina Paginação, Segmentação e Swapping. 2. Explique como um endereço gerado na CPU é dividido, quando se trabalha com páginas. Faça um esquema que mostre como o Sistema operacional localiza o conteúdo de uma determinada página que é necessária para a execução de um processo. 3. Como funcionam as páginas compartilhadas? Quando são utilizadas? 4. Explique as três formas de estruturar as páginas: paginação hierárquica, tabelas hash e páginas invertidas. 5. Sobre paginação, explique como o sistema operacional pode oferecer suporte de hardware para a implementação de um sistema de paginação eficiente: conjunto de registradores dedicados, tabela de página na memória principal, cache especial TLB,. 6. Explique o método básico de implementação de gerência de memória com segmentação. 7. Quais as principais vantagens da gerência de memória com segmentação? E quais as principais desvantagens? 8. O que é a memória virtual? Quais as vantagens de trabalhar com essa técnica? 9. O que é paginação por demanda? E Lazy swapper? 10. Explique o algoritmo de falha de página (você pode utilizar um esquema para descrever melhor esse algoritmo) e como funciona a substituição de páginas. 11. Explique o algoritmo de substituição de páginas “aproximação LRU- Algoritmo da Segunda Chance”. 12. Resuma a gerência de memória no Linux. 13. Como funciona o algoritmo de paginação de memória no Windows? 14. Considere um sistema de memória virtual que implemente paginação, onde o limite de frames por processo é igual a três. Descreva para a string de referencia abaixo, o número total de falhas de página (page fault) para as estratégias de realocação de páginas FIFO, Ótimo, LRU, LFU e MFU. Indique qual a mais eficaz para cada item. a) 1 / 2 / 3 / 1 / 4 / 2 / 5 / 3 / 4 / 3 b) 1 / 2 / 3 / 1 / 4 / 1 / 3 / 2 / 3 / 3 15. Um sistema operacional implementa o gerenciamento da memória virtual com paginação, com frames de 2Kb. A partir da tabela descrita a seguir, que representa o mapeamento de páginas de um processo em um determinado instante de tempo, responda: a. Qual o endereço físico de uma variável que ocupa o último byte da página 3? b. Qual o endereço físico de uma variável que ocupe o primeiro byte da página 2? c. Qual o endereço físico de uma variável que tenha deslocamento 10 na página 3? 16. Um sistema possui quatro frames. A tabela abaixo apresenta, para cada página, o momento da carga (Carga), o momento do último acesso (Referência), o bit de referência e o bit de modificação a. Qual página será substituída utilizando o algoritmo FIFO? b. Qual página será substituída utilizando o algoritmo LRU? c. LRU modificado – algoritmo da segunda chance melhorado (que utiliza os bits BR e BM)? 17. Considere um processo com limite de páginas reais igual a quatro e um sistema que implemente a política de substituição FIFO. Quantos pages faults ocorrerão considerando que as páginas virtuais são referenciadas na seguinte ordem: 0172327103. Repita o problema utilizando a política LRU. 18. Conceitue arquivo? Cite 3 requisitos para armazenar informação a longo prazo? 19. Fale sobre nomeação de arquivos e sua importância nos sistemas de arquivos atuais. 20. Algumas operações de arquivo são: criar, escrever, ler e excluir. Descreva os passos executados pelo Sistema operacional para realizar essas operações. (você pode precisar do livro para esta questão) 21. Existem basicamente 3 formas de estruturar um arquivo: sequência desestruturada de bytes, registros de tamanho fixo e árvore de registros. Descreva essas estruturas utilizando exemplos. 22. Cite e explique as 3 principais métodos de acesso a arquivo: seqüencial, aleatório direto e aleatório com uso de índice. 23. Quais os principais atributos de um arquivo? 24. O que são diretórios? Quais suas funções? 25. No âmbito de sistemas operacionais, a Anomalia de Belady é um conceito relacionado à gerência de a) threads. b) deadlocks. c) memória. d) processos. e) coordenação distribuída. 26. Sistemas operacionais fazem o controle de acesso à memória primária, protegendo as áreas de memória de uma aplicação do acesso por outra aplicação. Esse mecanismo de controle utiliza técnicas de paginação e segmentação de memória. Certo Errado 27. O sistema operacional, através do gerenciador de memória, deve tentar manter na memória principal o maior número de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais. Mesmo na ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados. A técnica de swapping foi introduzida para contornar o problema de insuficiência de memória principal, e consiste de: a) dividir o programa em módulos, de forma que seja possível a execução independente de cada módulo, utilizando uma mesma área de memória. b) dividir a memória principal em pedaços de tamanho fixo, chamados partições, onde o tamanho das partições é estabelecido na fase de inicialização do sistema. c) dividir a memória em pedaços de tamanho variável, de modo que cada programa utilize apenas o espaço necessário para sua execução. d) escolher um processo residente, a ser transferido da memória principal para a memória secundária (swap out), sendo que, posteriormente, o processo é carregado de volta da memória secundária para a memória principal (swap in) e) desenvolver as aplicações de modo a não ultrapassar o espaço de endereçamento de memória disponível. 28. Um sistema operacional é uma camada de software que atua entre o hardware e os diversos aplicativos existentes em um sistema computacional, executando diversas atividades, de modo a garantir a disponibilidade de recursos entre todos os programas em execução. O gerenciador de memória é uma atividade do sistema operacional, responsável por: a) distribuir a capacidade de processamento de forma justa entre as aplicações, evitando que uma aplicação monopolize o processador. b) implementar a interação com cada dispositivo, através de drivers, criando modelos abstratos que permitam agrupar vários dispositivos distintos sob a mesma interface de acesso. c) definir usuários e grupos de usuário, bem como identificar usuários que se conectam ao sistema, através de procedimentos de autenticação. d) criar as abstrações de arquivos e diretórios, definindo interface de acesso e regras para o seu uso. e) disponibilizar, para cada aplicação, um espaço de memória próprio, independente e isolado dos demais, inclusive do núcleo do sistema operacional. 29. Na alocação particionada dinâmica de memória A) ocorre fragmentação externa. B) ocorre fragmentação interna. C) não ocorre fragmentação externa. D) não ocorre nenhuma fragmentação. E) utilizam-se partições de tamanho fixo. 30. Em relação à segmentação no gerenciamento de memória, é correto afirmar: A) Há apenas um espaço de endereço linear. B) O espaço de endereço virtual não pode ser maior do que o tamanho da memória. C) O programador não precisa estar ciente de que há segmentação. D) A segmentação não manipula tabelas de tamanhos variáveis. E) Os segmentos não têm tamanho fixo. 31. No gerenciamento de memória, são características típicas da segmentação: A) Segmentos do programa sempre do mesmo tamanho. B) Programas normalmente separados em módulos. C)Segmentos de tamanho máximo inexistentes. D) Segmentos sem possibilidade de controle pelo usuário. E) Eliminações de qualquer tipo de fragmentações. 32. No contexto de gerenciamento de memória, é correto afirmar: A) Cada entrada em uma tabela de segmentos possui a “base”, que contém o endereço físico inicial do segmento residente na memória e o “limite”, que especifica o tamanho do segmento. B) O swapping é uma técnica utilizada para mudar a localização dos processos na memória, agrupando-os em um único segmento e, assim, otimizar a execução dos processos concorrentes. C) O hardware MMU (Unidade de Gerência de Memória) tem como função mapear os endereços físicos em endereços virtuais para serem vistos pela memória. D) Na realocação dinâmica, todas as rotinas são carregadas na memória principal e aquelas que não são usadas são agrupadas em segmentos contíguos da memória. E) A alocação contígua à memória principal é dividida em duas partes: a parte alta para o sistema operacional e o vetor de interrupções, e parte baixa para os processos do usuário. 33. Para controlar os arquivos, os sistemas operacionais têm, em regra, diretórios ou pastas que também são arquivos. Certo Errado Lista de Sistemas Operacionais - 3º bimestre 1) Paginação: Esquema de gerenciamento de memória que permite que o espaço de endereços físicos de um processo seja não-contíguo.. Consiste: Dividir a memória física em blocos de tamanho fixo (Quadros) Dividir a memória lógica em blocos do mesmo tamanho (Páginas) Mapear os endereços virtuais em endereço de memória física pela MMU (Unidade de gerenciamento de memória) através de Tabelas (Job Table, Page Map Table e Memory Map Table). Evita a segmentação externa mas não a interna. Segmentação: Outro esquema de gerenciamento de memória, consiste em dividir os processos em segmentos que refletem sua estrutura funcional, para que o S.O. possa realocá-los mais facilmente na memória e auxiliar o compartilhamento de memória entre processos. Evita a fragmentação interna mas não a externa. Swapping: Técnica criada para melhorar a eficiência do gerenciamento de memória e resolver o problema de falta de memória, através do uso de certa quantidade de disco como memória principal e fazendo a troca dos processos que estarão ocupando a memória. I. Swap-out: Da memória principal para o disco II. Swap-in: Do disco para a memória Alternativa - Swapping: Processo no qual uma área do disco é separada para ser utilizada como extensão da memória. O processo que está na memória executa e então é mandado para o disco e um processo em disco é enviado para a memória para ser executado. - Paginação: técnica de gerência de memória que permite que o espaço de endereço físico de um processo seja não contíguo. - Segmentação: Técnica de gerenciamento de memória onde programas são divididos em segmentos de tamanhos variados. Alternativa - paginação divide a memória em espaços de tamanhos iguais, segmentação divide o programa em espaços relativos a sua lógica interna. 2) É dividido em número da página (P) e Deslocamento da página (D). Alternativa A CPU envia o endereço lógico, que consiste em 2 partes: o número da página (P) e um deslocamento (D). Com essas informações, é disparada uma busca na tabela de páginas pela página em questão, a mesma aponta para um endereço físico de memória e nesse endereço é aplicado o deslocamento. 3) É uma técnica da paginação que permite que uma página seja compartilhada, ou seja, um trecho de código pode ser compartilhado (read-only) entre vários processos, estando no mesmo espaço de endereçamento lógico de todos os processos, proporcionando economia de espaço. São utilizados em compiladores, sistemas de janelas, SGBDs, Editores de texto, etc. 4) Paginação hierárquica (multinível): Como forma de evitar que haja uma tabela de páginas muito grande na memória, nós dividimos essa tabela grande em várias tabelas, sendo que a tabela de primeiro nível irá referenciar todas as outras que estarão no disco. Apenas a página de primeiro e segundo nível precisam estar na memória (o restante estará em disco). Tabelas Hash: O número da página virtual é usado para função Hash. Cada entrada na tabela contém uma lista encadeada que contém: O número da página virtual, o frame e um ponteiro para o próximo elemento. Páginas Invertidas: 5) Um conjunto de registradores dedicados pode ser muito eficiente numa situação onde haja uma tabela de páginas pequena (com 256 entradas). Nos dias atuais, a demanda de dados é muito grande e, portanto, uma tabela de páginas desse tamanho não é suficiente. Registradores dedicados para essa tarefa se tornam inviáveis, sendo necessário aplicar a tabela de páginas na memória principal. Consequentemente, o tempo de acesso aos endereços se torna demasiadamente grande. Para resolver o problema, surgiu o TLB (Translation Lookaside Buffer), um pequeno dispositivo de alta velocidade capaz de relacionar endereços virtuais com endereços físicos sem usar, a todo instante, a memória principal. 6) O mecanismo de mapeamento da segmentação é muito semelhante ao da paginação. Além do endereço do segmento na memória física, cada entrada na tabela possui informações sobre o tamanho do segmento e se ele está ou não na memória. Uma diferença notável está em como é definido o tamanho de cada bloco na memória física. A divisão de um programa está correlacionada com a sua própria estrutura, permitindo blocos com tamanhos diferentes dentro da memória. 7) O método da segmentação facilita o compartilhamento de métodos e dados entre os processos e também a proteção de dados. 8) Memória virtual é uma técnica utilizada para gerenciar uma grande quantidade de dados onde não há uma memória principal com tamanho suficiente. Através dessa técnica, é possível utilizar outros dispositivos de armazenamento (geralmente o disco rígido) para trabalhar junto à memória principal. 9) Paginação por demanda consiste em carregar as páginas de um processo na memória principal, a medida em que forem sendo necessários, ou seja, as páginas que não são necessárias nunca serão carregadas na memória, evitando o uso desnecessário. Lazy Swapper é o mesmo que paginação por demanda, a principal diferença com o “Swap” comum é que este carrega apenas as páginas e não o processo todo. 10) Confirmem se é isso mesmo, tá no slide aula 25 mas ta mal explicado. a. A página não foi encontrada (page fault) b. Encontra o local da página no disco c. Encontra um local livre na tabela de páginas i. Livre: Usa o local para inserir a página. ii. Não livre: Usa um algoritmo de substituição de página 1. Remove a página “vítima” d. Atualiza a tabela de páginas e. Lê a página que entrou e atualiza a tabela novamente 11) 12) A. Memória virtual paginada, B. Segmentos de códigos compartilhado, C. O sistema monitora o uso de memória física, e mapeia conforme necessário, D. Três zonas de memórias diferentes: ZONE_DMA (acesso direto), ZONE_NORMAL (mapeadas regularmente) e ZONE_HIGHMEN (páginas que não são mapeadas), E. Swap: Parte do disco é utilizada como memória principal 13) 14) 15) 16) 17) 18) Arquivo é um mecanismo de abstração de disco, que oferece meios de armazenar informações e lê-las quando necessário, e também pode ser utilizado pelos processos. Isso é feito de forma a isolar o usuário dos detalhes de armazenamento e do funcionamento dos discos. 19) Na minha visão, a nomeação dos arquivos possui duas funções principais: A primeira é ajudar o usuário do sistema operacional na manutenção da abstração do espaço de disco, ou seja, permitir ao usuário controlar seus arquivos de forma simples. Já a segundaé ajudar a compiladores e programas a se “comunicarem” com o arquivo, por exemplo, um compilador de C só irá compilar um arquivo que possua a extensão .c, mesmo que o sistema operacional não se importe. Outro ponto importante é lembrar que os sistemas operacionais modernos diferem na convenção dos nomes dos arquivos, devido a diferença do seu sistema de arquivos (FAT-32, NFTS, etc.) o que difere nos possíveis caracteres na nomeação e também na extensão dos arquivos. 20)Criar: O arquivo é criado sem dados, estabelecendo alguns atributos. Ler: Dados são lidos do arquivo, os bytes vem da posição atual. Deve-se oferecer um buffer para armazenar os dados e especificar a quantidade de dados necessária. Excluir: Uma chamada de sistema remove o arquivo e libera o espaço no disco. 21)Sequencia de bytes: O sistema operacional trata o arquivo como uma sequência de bytes, os programas podem colocar qualquer coisa nos arquivos e nomea-los de qualquer forma (flexibilidade). Sequencia de registros: O arquivo é uma sequência de registro de tamanho fixo, as leituras e escritas retornam registros. Árvore de registros: Existe um campo chave que remove a linearidade da busca, permite uma melhor busca de chaves específicas. 22) 23)Varia de acordo com o sistema, mas os principais são: Nome, Tipo, Local, Data, Tamanho, Proteção e algumas flags de controle. 24) Diretórios são arquivos do sistema. Sua principal função é manter a estrutura do sistema de arquivos. Ou seja, organizar o disco rígido, CDs, DVDs, PenDrives, etc. Os diretórios são ramificações e os arquivos são as folhas (utiliza-se da estrutura Árvore). 25) C - É quando a curva de quantidade de page faults se comporta de maneira inesperada, indicando que existam mais page faults para 4 frames do que para 3 utilizando o algoritmo de substituição de páginas FIFO. Esse é um problema relacionada a memória e ocorre no esquema de memória virtual realizando paginação. 26) Certo 27) D 28)E 29) A 30) E 31)? 32) A 33) Certo