Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Parte 1: Organização de Computadores
Sistemas Operacionais
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Sistemas Operacionais – Sérgio Fernando Parte 7 – Gerência de Memória1 Sistemas Operacionais Prof. Sérgio Fernando Adaptado do livro: Arquitetura de Sistemas.
Gerenciamento de Memória
Ambientes Operacionais
Gerenciamento de memória
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Sistemas Operacionais
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 10 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Gerência de Memória.
Gerência de Memória Sistemas Operacionais I
Arquitetura de Computadores
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Claudio de Oliveira – Gerência de Memória 09/03/10 20:13 Claudio de Oliveira –
Sistemas Operacionais I
Gerência de Memória.
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Sistemas Operacionais Gerenciamento de Memória
Sistemas Operacionais
SSC SISTEMAS OPERACIONAIS I Aula 11 – Gerenciamento de Memória 2
Fundamentos da Arquitetura de Computadores
Representação de Instruções
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Programação concorrente:
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
SISTEMAS OPERACIONAIS
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Gerenciamento de Memória (Paginação e Memória Virtual)
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
Capítulo 8: Memória principal
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 11: Implementação de Sistemas de Arquivos.
Gerenciamento de Memória Conceitos Básicos
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Sistemas Operacionais
Capítulo 8: Memória Principal
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
SISTEMAS OPERACIONAIS
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Gerenciamento de Memória Sistemas Recentes
Bruno Iran Ferreira Maciel
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Memória Virtual.
Zeque - Grad. CC1 Sistemas Operacionais Gerenciamento do Espaço Prof. José Queiroz - ZEQUE.
Gerência de Memória Sidney Cunha de Lucena Baseado no livro
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
Sistemas Operacionais Gerência de Memória Funções básicas (número, tamanho e segurança) Alocação contígua simples Técnica de overlay Alocação particionada.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Arquitetura de Computadores-S.O.
Transcrição da apresentação:

Sistemas Operacionais Gerenciamento de memória Capítulos 7 Operating Systems: Internals and Design Principles W. Stallings IC - UFF

Gerenciador de Memória O problema Em um ambiente multiprogramado, é necessário: subdividir a memória para acomodar múltiplos processos mas se poucos processos estão na memória, em boa parte do tempo estarão esperando por E/S UCP sub-utilizada então, deve-se alocar memória de forma eficiente ao maior número de processos Gerenciador de Memória IC - UFF

Alguns requisitos do GM Relocação o programador não deve se preocupar com o local onde o programa (processo) será carregado para execução durante a execução, o processo poderá sair da memória e retornar para um local diferente referências devem ser resolvidas para endereços de memória física p. ex. - bloqueado para suspenso IC - UFF

Alguns requisitos do GM Proteção processos não devem poder referenciar posições de memória em outros processos sem permissão em virtude da relocação, não é possível testar endereços em programas com suporte de h/w, o teste deverá ser em tempo de execução IC - UFF

Alguns requisitos do GM Compartilhamento deve-se permitir que vários processos possam acessar a mesma porção de memória o mecanismo de proteção deve ter flexibilidade caso por exemplo, exclusão mútua IC - UFF

Alguns requisitos do GM Organização lógica programas são normalmente separados em módulos, que podem ser escritos e compilados separadamente graus diferentes de proteção podem ser atribuídos aos módulos compartilhamento de módulos manipulação de diferentes módulos de um mesmo executável pode ser melhor realizada através de segmentação IC - UFF

Alguns requisitos do GM Organização física memória é organizada como uma hierarquia se um programa precisa de mais memória do que o disponível na MP, a MS deverá ser utilizada uso de memória cache este gerenciamento deverá ser feito de forma transparente pelo SO IC - UFF

Particionamento fixo Particionamento da memória em regiões fixas Se partições idênticas processos menores que o tamanho da partição podem ser carregados diretamente. Processos maiores exigirão overlay. Se processos menores fragmentação interna desperdício de MP IC - UFF

Particionamento fixo Partições de tamanhos distintos diminuem a ineficiência (não a elimina)‏ associa o processo à partição menor possível aumenta a sobrecarga do gerenciamento (e.g., uma fila por partição ou fila única?)‏ De qualquer forma: o número de partições determina o número de processos no sistema processos pequenos utilizam de maneira ineficiente a memória relocação IC - UFF

Particionamento fixo – tamanho variável IC - UFF

Particionamento fixo – tamanho variável IC - UFF

Particionamento dinâmico Número e tamanho das partições é variável Cada processo recebe a quantidade de memória que necessita Gerenciando buracos e processos SO SO SO SO SO SO SO P4 128k - sem espaço - SO faz swap out - SO escolhe P1 P2 224k P3 288k P1 320k P1 P1 P1 P2 P2 P3 IC - UFF

Particionamento dinâmico SO SO buracos começam a ser formados tamanhos tentem a ser pequenos necessidade de rearrumar os espaços P4 P2 P3 IC - UFF

Particionamento dinâmico IC - UFF

Particionamento dinâmico Políticas de alocação primeiro encaixe (o melhor) - first fit seleciona o primeiro que encaixa, a partir do início mais simples, mais rápido e melhor na maioria das vezes próximo encaixe (um pouco pior) – next fit seleciona o primeiro que encaixa, a partir da última partição selecionada usualmente seleciona para o final da MP melhor encaixe (o pior!) - best fit de todas as partições, seleciona aquela imediatamente maior mais custoso, maior grau de fragmentação externa IC - UFF

Particionamento dinâmico Buracos na memória: fragmentação externa Compactação: tempo perdido e relocação dinâmica (melhoria com swapping)‏ Sobrecarga maior que método fixo Em qualquer caso, relocação Então, o que fazer? IC - UFF

Gerenciando buracos e processos Mapas de bits (b): simples; ineficiência Listas encadeadas (c)‏ Buddy System IC - UFF

Realocação Mapeamento de endereços virtuais em reais necessário, pois processos são alocados em espaço de MP dinamicamente Ex.: processo P1 P1: P1 em end. de MP 500 novo pronto executando bloqueado P1 passa para suspenso Ao voltar para MP  P1 vai para end. 1024 IC - UFF

Realocação Mapeamento eficiente Registradores: endereço físico só calculado quando acesso a MP endereços definidos: lógico, relativo, físico Registradores: base – armazena o endereço inicial de MP do processo (quando o processo passa para executando)‏ limite – armazena endereço final do processo Acesso ao endereço Z no programa if (Z + base <= limite) acesse Z+base senão “trap” IC - UFF

Relocação PCB endereço relativo registrador de base somador programa registrador limite comparador int programa imagem do processo na memória endereço absoluto dados pilha IC - UFF

Paginação Problemas tanto em particionamento fixo quanto dinâmico: fixo – fragmentação interna dinâmico – fragmentação externa e realocação dinâmica Solução: Processo é dividido em páginas (blocos de processos)‏ MP é dividida em quadros de mesmo tamanho Páginas/quadros são de pequeno tamanho (e.g., 1K): fragmentação interna pequena Elimina fragmentação externa SO mantém uma tabela de páginas por processo IC - UFF

Paginação Processos A, B, C estão prontos Exemplo: número de páginas/processo C4 C3 C2 C1 B3 B2 B1 A4 A3 A2 A1 5 D 4 C 3 B A IC - UFF

Paginação B termina D é submetido IC - UFF C4 C3 C2 C1 A4 A3 A2 A1 D4

Paginação Processo não precisa estar completamente na MP (veremos mais tarde em Memória Virtual)‏ Processo não precisa ocupar área contígua em memória Endereços são gerados dinamicamente em tempo de execução Somente um registrador então, não é suficiente Tabela de Páginas IC - UFF

Paginação: suporte de h/w Cada processo tem sua tabela de páginas (TP)‏ TP: mapeamento página x quadro Bit de presença Bit de modificação Como funciona? endereço lógico Z - no da pagina + offset dentro da página IC - UFF

Paginação: suporte de h/w Ex.: processo tem 8 endereços, 4 endereços por página 0 00 0 01 0 10 0 11 1 00 1 01 1 10 1 11 1 2 3 4 5 6 7 pág. 1 pág. 2 IC - UFF

Paginação: suporte de h/w Ex.: endereço lógico (16 bits) – 1502 tamanho da página 1K bytes (cada endereço armazena 1 byte)‏ 1502  0000010111011110 Tabela de Páginas 210 endereços/página  10 bits para especificar o offset (478) dentro de uma página 000001 0111011110 Logo, restam 6 bits do end. lógico para especificar a página  página 1 1 2 3 4 5 y w z Endereço real = 1K * w + 478  frame tem 1K IC - UFF

Segmentação Programas são normalmente separados em módulos: unidade lógica Segmentos de um programa não precisam ser do mesmo tamanho Existe um tamanho máximo para o segmento Usuário tem controle elimina fragmentação interna (mas pode haver, externa) IC - UFF

Segmentação Tabela de Segmentos entrada = endereço inicial na MP e tamanho do segmento cálculo do endereço real similar a paginação. Como? IC - UFF

Exercício Considere um espaço de endereçamento lógico de oito páginas de 1024 palavras cada, mapeado em um memória física de 32 quadros. Quantos bits existem no endereço lógico? E no endereço físico? Considere um sistema em que a memória é gerenciada por uma lista encadeada de blocos disponíveis, de diferentes tamanhos. Essa lista é definida por uma estrutura de dados contendo o endereço base do bloco, o tamanho de cada bloco e um apontador para o próximo elemento da lista. Existem dois apontadores, um para o primeiro elemento da lista, e outro para o último. Escreva o procedimento addr = allocmem (n), onde n é o tamanho do bloco que deve ser alocado e addr contém, no retorno da chamada, o endereço base do bloco alocado. A técnica de alocação a ser utilizada é First-Fit. Escreva também o procedimento free(addr). IC - UFF