Buscar

Resumo Cap 9, 10 e 11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
Fábio Goulart de Matos Sistemas de Informação - UEMS SI/UEMS 
Acadêmico: Fábio Goulart de Matos RGM: 017707 
Sistemas Operacionais e Aplicações – Silberschatz 
Capítulo 9 – Gerência de Memória 
9.1 – Fundamentos: memória é fundamental para sistemas modernos. Consiste em um 
grande vetor de palavras ou bytes, cada qual com seu próprio endereço. CPU busca instruções 
da memória de acordo com o valor do contador de programas. Essas instruções podem causar 
carga e armazenamento em endereços específicos de memória. Para executar uma instrução, 
deve-se buscar a instrução na memória, decodifica-la e após isso os operandos são buscados 
na memória, depois os resultados podem ser armazenados na memória. A coleção de 
processos no disco que esta esperando para ser levada para a memória para a execução forma 
a fila de entrada. Assim os processos carregados na memória são executados e seu espaço na 
memória podem ser liberados. Carga dinâmica: uma rotina só é carregada quando é 
chamada. Ligação Dinâmica: semelhante a carga dinâmica, em vez de a carga ser adiada até 
o tempo de execução, a ligação é adiada. Overley: A ideia do overlay é manter na memória 
apenas as instruções e dados que são necessários em determinado momento. 
9.2 – Swapping: O sistema mantém uma fila de processos prontos consistindo em todos os 
processos cujas imagens de memória estejam no armazenamento auxiliar ou na memória 
principal e prontas para executar. Sempre que o escalonador de CPU executar um processo, 
ele chama o dispatcher. Esse verifica se o próximo processo na fila está na memória. Se o 
processo não estiver, e não houver região de memória livre, o dispatcher descarrega um 
processo que está na memória (stwap out) e carrega o processo desejado em seu lugar (swap 
in). Em seguida, ele recarrega os registradores da forma usual e transfere o controle para o 
processo selecionado. 
9.3 – Alocação contígua de Memória: Uma solução para o problema da fragmentação 
externa é a compactação. A meta é trocar de posição o conteúdo da memória para reunir toda 
memória livre em um grande bloco. Outra solução possível para o problema de fragmentação 
externa é permitir que o espaço de endereçamento lógico de um processo seja não-contíguo, 
possibilitando que um processo receba memória física onde ela estiver disponível. 
 
9.4 – Paginação 9.5 – Segmentação 9.6 – Segmentação com Paginação 
9.7 • Resumo 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
Fábio Goulart de Matos Sistemas de Informação - UEMS SI/UEMS 
Os algoritmos de gerência de memória para sistemas operacionais multiprogramados variam 
da abordagem de sistema monousuário simples a segmentação paginada. O maior fator 
determinante do método usado em um determinado sistema é o hardware existente. 'Iodo 
endereço de memória gerado pela CPU deve ser verificado em termos de legalidade e 
possivelmente ser mapeado em um endereço físico. A verificação não pode ser implementada 
(de modo eficiente) no software. Portanto, estamos limitados pelo hardware disponível. 
Os algoritmos de gerência de memória discutidos (alocação contígua, paginação, segmentação 
e combinações de paginação e segmentação) diferem em muitos aspectos. A seguir estão 
considerações importantes a serem usadas na comparação de diferentes estratégias de gerência 
de memória: 
• Suporte de hardware: Um registrador de base simples ou um par de registradores de base e 
de limite é suficiente para os esquemas de única e múltiplas partições, enquanto a paginação e 
a segmentação precisam de tabelas de mapeamento para definir o mapa de endereços. 
• Desempenho: A medida que o algoritmo de gerência de memória se torna mais complexo, o 
tempo necessário para mapear um endereço lógico em um endereço físico aumenta. Para os 
sistemas simples, precisamos apenas comparar ou adicionar ao endereço lógico - operações 
que são rápidas. A paginação e a segmentação também podem ser rápidas, se a tabela for 
implementada em registradores rápidos. Se a tabela estiver na memória, no entanto, os 
acessos à memória por parte do usuário podem ter seu desempenho muito afetado. Um 
conjunto de registradores associativos pode reduzir essa degradação de desempenho para um 
nível aceitável. 
• Fragmentaçâo: Um sistema multiprogramado geralmente terá um desempenho mais 
eficiente se tiver um nível mais alto de multiprogramação. Para determinado conjunto de 
processos, podemos aumentar o nível de mui ti programação somente colocando mais 
processos na memória. Para realizar essa tarefa, devemos reduzir o desperdício ou a 
fragmentação de memória. Os sistemas com unidades de alocação de tamanho fixo, como o 
esquema de partição única e paginação, sofrem de fragmentação interna. Os sistemas com 
unidades de alocação de tamanho variável, tais como o esquema de múltiplas partições e 
segmentação, sofrem de fragmentação externa. 
• Relocação: Uma solução ao problema de fragmentação externa é a compactação. A 
compactação implica mover um programa na memória sem que o programa perceba a 
diferença. Essa consideração requer que os endereços lógicos sejam relocados 
dinamicamente, no tempo de execução. Se os endereços forem relocados apenas no momento 
de carga, não será possível compactar a memória. 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
Fábio Goulart de Matos Sistemas de Informação - UEMS SI/UEMS 
• Swapping; Qualquer algoritmo pode ter a operação de swapping ou troca acrescentada a ele. 
em intervalos determinados pelo sistema operacional, geralmente determinados pelas políticas 
de escalonamento de CPU, os processos são copiados da memória principal para o 
armazenamento auxiliar, e mais tarde são copiados de volta para a memória principal. Esse 
esquema permite que mais processos sejam executados do que caberiam na memória de uma 
só vez. 
• Compartilhamento: Outro meio de aumentar o nível de multiprogramação é compartilhar 
código e dados entre diferentes usuários. Compartilhar geralmente requer que a paginação ou 
a segmentação sejam utilizadas, para fornecer pequenos pacotes de informação (páginas ou 
segmentos) que possam ser compartilhados. O compartilhamento é uma forma de executar 
muitos processos com uma quantidade limitada de memória, mas os programas e dados 
compartilhados devem ser projetados com cuidado. 
• Proteção: Se a paginação ou segmentação forem fornecidas, diferentes seções de um 
programa de usuário podem ser declaradas como somente de execução, somente de leitura ou 
de leitura-escrita. Essa restrição é necessária com código ou dados compartilhados e 
geralmente c útil em qualquer caso para fornecer verificações de tempo de execução para 
erros de programação comuns. 
 
Capitulo 10 – Memória Virtual 
10.1 – Fundamentos 10.2 – Paginação sobre demanda 10.3 – Substituição de 
página 10.4 – Alocação de quadros 10.5 – Trashing: falta de página, gasta 
mais tempo paginando do que executando. 
10.8 • Resumo 
 É desejável a possibilidade de executar um processo cujo espaço de endereçamento 
lógico seja maior do que o espaço de endereçamento físico disponível. O programador pode 
tornar esse processo executável reestruturando-o usando overlays, mas essa é geralmente uma 
tarefa de programação difícil. A memória virtual é uma técnica que permite o mapeamento de 
um espaço de endereçamento lógico grande em uma memória física menor. A memória 
virtual permite que processos extremamente grandes sejam executados, e que o grau de 
multiprogramação aumente, melhorando a utilização de CPU. Além disso, ela libera os 
programadores de aplicações da preocupação com a disponibilidade de memória. 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
FábioGoulart de Matos Sistemas de Informação - UEMS SI/UEMS 
 A paginação sob demanda pura nunca leva para a memória uma página até ela ser 
referenciada. A primeira referência causa uma falta de página para o monitor residente do 
sistema operacional. O sistema operacional consulta uma tabela interna para determinar onde 
a página está localizada no armazenamento auxiliar. Em seguida, encontra um quadro livre e 
lê a página do armazenamento auxiliar. A tabela de página é atualizada para refletir essa 
mudança, e a instrução que causou a falta de página é reiniciada. Essa abordagem permite que 
um processo execute mesmo que sua imagem de memória completa não esteja na memória 
principal de uma vez. Desde que a taxa de falta de página seja razoavelmente baixa, o 
desempenho será aceitável. Podemos usar a paginação sob demanda para reduzir o número de 
quadros alocados a um processo. Esse arranjo pode aumentar o grau de multiprogramação 
(permitindo que mais processos estejam disponíveis para execução ao mesmo tempo) e, ao 
menos em teoria, aumenta a utilização de CPU do sistema. Permite também que os processos 
sejam executados mesmo que suas exigências de memória superem a memória física total 
disponível. Tais processos executam na memória virtual. 
 Se os requisitos de memória total excederem a memória física, pode ser necessário 
substituir as páginas da memória para liberar quadros para novas páginas. Vários algoritmos 
de substituição de página são usados. A substituição de página FIFO é fácil de programar, 
mas sofre da anomalia de Belady (falta de página a partir do aumento de quadros). A 
substituição de página ótima requer conhecimento futuro. A substituição LRU é uma 
aproximação da substituição ótima, mas mesmo ela pode ser difícil de implementar. A 
maioria dos algoritmos de substituição de página, tais como o de segunda chance, são 
aproximações da substituição LRU. 
 Além de um algoritmo de substituição de página, é necessária uma política de 
alocação de quadros. A alocação pode ser fixa, sugerindo a substituição de página local, ou 
dinâmica, sugerindo a substituição global. O modelo de conjunto de trabalho assume que os 
processos executam em localidades. O conjunto de trabalho é o conjunto de páginas na 
localidade atual. Da mesma forma, cada processo deve receber um número de quadros 
suficientes para seu conjunto de trabalho atual. 
 Se um processo não tiver memória suficiente para seu conjunto de trabalho, ele entrará 
em thrashing. Fornecer quadros suficientes para cada processo a fim de evitar o thrashing 
pode exigir swapping e o escalonamento de processos. 
Além de exigir a resolução dos principais problemas de substituição de página e alocação de 
quadros, o projeto adequado de um sistema de paginação requer que consideremos o tamanho 
de página, I/O, travamento, pré-paginação, estrutura dos programas e outros tópicos. A 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
Fábio Goulart de Matos Sistemas de Informação - UEMS SI/UEMS 
memória virtual pode ser considerada um nível de uma hierarquia de níveis de 
armazenamento em um sistema de computação. Cada nível tem seu próprio tempo de acesso, 
tamanho e parâmetros de custo. 
 
Capítulo 11 – Sistemas de Arquivos 
11.1 – Conceito de Arquivo 11.2 – Métodos de acesso 11.3 - Estrutura de 
diretórios 11.4 – Proteção 11.5 – Estrutura do sistema de arquivos 11.6 – 
Métodos de alocação 11.7 – Gerencia de espaço livre 11.8 – Implementação de 
diretórios 11.9 – Eficiência e desempenho 11.10 - Recuperação 
11.11 • Resumo 
 Um arquivo é um tipo abstrato de dados definido e implementado pelo sistema 
operacional. É uma sequência de registros lógicos. Um registro lógico pode ser um byte, uma 
linha (de tamanho fixo ou variável) ou um item de dados mais complexo. O sistema 
operacional pode suportar especificamente vários tipos de registro ou pode deixar o suporte ao 
programa aplicativo. 
 A principal tarefa do sistema operacional é mapear o conceito de arquivo lógico em 
dispositivos de armazenamento físico tais como fita ou disco magnético. Como o tamanho do 
registro físico do dispositivo talvez não seja igual ao tamanho do registro lógico, pode ser 
necessário encaixar registros lógicos em registros físicos. 
Mais uma vez, essa tarefa pode ser suportada pelo sistema operacional ou deixada para o 
programa aplicativo. 
 Os sistemas de arquivos baseados em fita são limitados; a maioria dos sistemas de 
arquivos são baseados em disco. As fitas são comumente usadas para transporte de dados 
entre máquinas, ou para armazenamento de backup ou arquivamento. 
 Cada dispositivo em um sistema de arquivos mantêm um índice de volume ou 
diretório de dispositivo listando a posição dos arquivos no dispositivo. Além disso, é útil criar 
diretórios para permitir a organização dos arquivos. Um diretório de nível único em um 
sistema multiusuário causa problemas de nomeação, já que cada arquivo deve ter um nome 
exclusivo. Um diretório de dois níveis resolve esse problema criando um diretório separado 
para cada usuário. Cada usuário tem seu próprio diretório, que contém seus próprios arquivos. 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
Fábio Goulart de Matos Sistemas de Informação - UEMS SI/UEMS 
 O diretório lista os arquivos por nome, e inclui informações como a posição do 
arquivo no disco, seu tamanho, tipo, proprietário, hora da criação, hora da última utilização 
etc. 
 A generalização natural de um diretório de dois níveis é um diretório estruturado em 
árvore. Um diretório em árvore permite que o usuário crie subdiretórios para organizar seus 
arquivos. Estruturas de diretórios de grafos acíclicos permitem o compartilhamento de 
arquivos e diretórios, mas complicam a pesquisa e exclusão. Uma estrutura de grafo genérico 
permite flexibilidade total no compartilhamento de arquivos e diretórios, mas às vezes requer 
o uso da coleta de lixo para recuperar espaço em disco não utilizado. 
 Como os arquivos são o principal mecanismo de armazenamento de informações na 
maioria dos sistemas de computação, a proteção de arquivo é necessária. O acesso aos 
arquivos pode ser controlado de forma separada para cada tipo de acesso: ler, gravar, 
executar, anexar, listar diretório e assim por diante. A proteção de arquivo pode ser fornecida 
por senhas, listas de acesso, ou por técnicas especiais ad hoc. 
 O sistema de arquivos reside permanentemente no armazenamento secundário, que 
tem como exigência principal o fato de poder armazenar grandes quantidades de dados de 
forma permanente. O meio de armazenamento secundário mais comum é o disco. 
Os sistemas de arquivos são muitas vezes implementados em uma estrutura em camadas ou 
modular. Os níveis inferiores tratam das propriedades físicas dos dispositivos de 
armazenamento. Os níveis superiores lidam com nomes de arquivo simbólicos e as 
propriedades lógicas dos arquivos. Os níveis intermediários mapeiam os conceitos de arquivo 
lógico em propriedades de dispositivos físicos. 
 Os vários arquivos podem ser alocados no disco de três formas: através de alocação 
contígua, encadeada ou indexada. A alocação contígua pode sofrer de fragmentação externa. 
O acesso direto é muito ineficiente com a alocação encadeada. A alocação indexada pode 
exigir custo substancial para seu bloco de índice. Existem muitas formas nas quais esses 
algoritmos podem ser otimizados. O espaço contíguo pode ser ampliado por meio de 
extensões para aumentar a flexibilidade e diminuir a fragmentação externa. A alocação 
indexada pode ser feita em clusters de múltiplos blocos para aumentar o throughput e reduzir 
o número de entradas de índice necessárias. A indexação em clusters grandes é semelhante à 
alocação contígua com extensões.Os métodos de alocação de espaço livre também influenciam a eficiência de uso do 
espaço em disco, o desempenho do sistema de arquivos, e a confiabilidade do armazenamento 
secundário. Os métodos usados incluem vetores de bits e listas encadeadas. As otimizações 
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL 
 
Fábio Goulart de Matos Sistemas de Informação - UEMS SI/UEMS 
incluem agrupamento, contadores e a FAT, que coloca a lista encadeada em uma área 
contígua. 
 As rotinas de gerência de diretórios devem considerar os aspectos de eficiência, 
desempenho e confiabilidade. Uma tabela de hash é o método mais frequentemente usado; é 
rápido e eficiente. Infelizmente, danos à tabela ou uma falha no sistema podem fazer com que 
as informações do diretório não correspondam ao conteúdo do disco. Um verificador de 
consistência - um programa de sistema como f sck no UNIX, ou chkdsk no MS-DOS - pode 
ser usado para reparar o dano.

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes