Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJoão Henrique Assunção Terra Alterado mais de 7 anos atrás
1
Professor: Felipe Lopes M. Faria Disciplina: Sistemas Operacionais 1
2
2 Situação atual das Memórias Pequena quantidade de memória cache; Memória RAM; Memória Secundária. SO coordena a utilização dessas memórias Função: ◦ manter o controle de quais partes da memória estão em uso e quais não estão, alocando memória aos processos quando eles precisam e liberando a memória quando eles terminam ◦ gerenciar a troca de processos entre memória e disco
3
3 Gerenciamento básico de memória Sistemas Operacionais que durante a execução levam e trazem processos entre a Memória Principal e o Disco Sistemas Operacionais mais simples que não fazem essas trocas Gerenciamento de memória: ainda será necessário para os próximos anos? R= Crescimento de programa e memória é desproporcional!
4
4 Monoprogramação sem troca de processos Execução de uma tarefa por vez Memória compartilhada entre o programa do usuário e o SO Somente um programa é executado por vez Praticamente não é mais utilizado, a não ser em sistemas menores como para palmtops... Overlay: partes do programa disputando mesmo espaço de memória
5
5 Multiprogramação com partições fixas Vários programas ativos ao mesmo tempo Técnica utilizada para melhorar a ocupação da CPU (quanto mais programas na memória, melhor!) Maneira mais comum para se implementar o uso de multiprogramação na memória => Divisão da memória em diversas partes 2 formas: Múltiplas filas e Fila única
6
6 Múltiplas Filas: podem fazer com que um programa tenha que esperar por deslocação de memória mesmo havendo memória disponível. Endereço da memória no programa.
7
7 Fila Única: resolve o problema anterior, mas gera outros. Nem sempre faz a melhor escolha da partição, pois escolhe de acordo com a ordem. A primeira que couber. Endereço do programa na memória a partir do endereço inicial onde se encontra.
8
8 Realocação e Proteção: problemas de multiprogramação Realocação: não se sabe de antemão em qual região de memória o processo vai ser executado (Não se sabe onde um programa é carregado em RAM) – Endereço de variáveis e do código não podem ser absolutos
9
9 Realocação e Proteção: problemas de multiprogramação Proteção: A priori nada impede um programa mal intencionado de ler/escrever em uma área de memória que não lhe “pertence”. A proteção visa que cada processo acesse somente sua área de alocação;
10
10 Realocação e Proteção: problemas de multiprogramação Possível solução para Proteção: uso de Registradores Registrador base delimitam limite inferior e superior da área de memória alocada ao processo Registrador limite Nessa abordagem, todas as referências à memória são referentes a esses registradores Assim, a todo endereço é somado o valor do Registrador da base e o Registrador limite é verificado Ex.: Se a referência é ao endereço 100 e o Registrador Base é 100k, então o endereço será 100 + 100.
11
11 Multiprogramação com Partições Variáveis - Troca de processos Necessidade de manter alguns processos em disco e trazê-los dinamicamente para a memória no momento da execução.
12
12 Formas de gerenciamento de memória Troca de processos: os processos são movimentados como um todo entre memória e disco; A principal diferença entre partições fixas e partições variáveis é que o número, a localização e o tamanho das partições variam dinamicamente ao longo do tempo.
13
13 Formas de gerenciamento de memória - Troca de processos Duas maneiras: ◦ Mapa de Bits ◦ Lista de Disponíveis
14
14 Gerenciamento de memória com Mapa de Bits Memória é dividida em unidades de alocação Associado a cada unidade de alocação existe um bit no Mapa de Bits, o qual vale 0 se a respectiva unidade de alocação estiver disponível e 1 se estiver ocupada (ou vice-versa). Tamanho da unidade de alocação: ◦ Quanto menor a unidade de alocação para o bit, maior será o Mapa de Bits (menor o desperdício) ◦ Se a unidade de alocação for muito grande, o Mapa de Bits será menor, mas pode ser que desperdice muita memória ◦ Vantagem: simples de implementar
15
15 Gerenciamento de memória com Mapa de Bits Problema: quando se decide carregar na memória um processo com tamanho K unidades, o gerenciador de memória precisa encontrar espaço disponível na memória procurando no Mapa de Bits uma sequência de K Bits consecutivos em 0. Essa busca é muito lenta => Fator contra o Mapa de Bits
16
16 Gerenciamento de memória com Mapa de Bits
17
17 Gerenciamento de memória com Listas de Disponíveis ou Listas Encadeadas Manter a lista ordenada de segmentos de memória alocados e segmentos de memória disponíveis Lista de segmentos é mantida ordenada por endereços Permite atualização rápida e simples
18
18 Gerenciamento de memória com Listas de Disponíveis ou Listas Encadeadas
19
19 Fragmentação Desperdício de páginas de memória alocadas. Pode ser de dois tipos: interna e externa. Interna: Ocorre quando o processo não ocupa inteiramente os blocos de memória (páginas) reservados para ele. Geralmente acontece pois o tamanho do processo não é um múltiplo do tamanho da página de memória, o que acarreta sobra de espaço na última página alocada. Externa: Ocorre à medida que os programas vão terminando e deixando lacunas cada vez menores de espaços entre as páginas. Dependendo do tamanho que precisa ser escrito em memória, estes espaços podem ser pequenos demais para serem úteis, e assim ficam inutilizados. Estratégias para "atacar" o problema com os algoritmos First-fit, Best-fit, Worst-fit e Next-fitFirst-fitBest-fitWorst-fitNext-fit
20
20 First-fit Aloca o processo no primeiro espaço de memória que couber Next-fit Aloca o processo no próximo espaço que couber a partir da última alocação Best-fit Aloca o processo no espaço que melhor couber Worst-fit Aloca o processo no pior espaço que couber Está técnica, apesar de aproveitar primeiro as partições maiores, acaba deixando espaços livres grandes o suficiente para que outros programas utilizem da memória, diminuindo ou retardando a fragmentação.
21
21 Memória Virtual Espaço em disco que é alternado com a memória principal. Solução para programas maiores do que a memória disponível O SO mantém partes ativas do programa na memória e o restante no disco Divide um único programa em partes Permanece na memória apenas a parte necessária
22
22 Memória Virtual A maioria dos SOs que implementam memória virtual, utiliza o conceito de paginação Neste esquema o espaço virtual da memória é dividido em páginas e o espaço real é divido em molduras de páginas As páginas e as molduras são divididas sempre do mesmo tamanho de forma que uma seja colocada na outra Programas (processos): páginas de mesmo tamanho Memória: moldura do tamanho das páginas Tamanho das Páginas = tamanho das Molduras
23
23 Memória Virtual Aumento do grau de multiprogramação Capacidade de executar programas maiores que a capacidade disponível de memória
24
24 Memória Virtual - Formas de Implementá-la 1) Página por Demanda: 2) Página por Demanda:
25
25 Memória Virtual - Formas de Implementá-la Substituição de páginas de Web
26
26 Memória Virtual - Formas de Implementá-la Substituição de páginas de Web Primeiro a chegar primeiro a ser atendido
27
27 Memória Virtual - Formas de Implementá-la Bits auxiliares
28
Transparências: Profa. Roberta N. S. Carvalho Sistemas Operacionais Modernos Andrew S. Tanenbaum Andrew S. Tanenbaum Arquitetura de Sistemas Operacionais Francis Berenger Machado/ Luiz Paulo Maia Francis Berenger Machado/ Luiz Paulo Maia 28
29
E-mail para contato: felipelopesmelofariasi@gmail.com 29
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.