Sistemas Operacionais

Documentos relacionados
Organização e Arquitetura de Computadores

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. - Gerência de Memória -

SISTEMAS OPERACIONAIS

Prof. Adriano Maranhão

SSC0640 Sistemas Operacionais I

Gerência de Memória. Execução de um Programa (1) Introdução. Introdução


Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Introdução. Considerações:

Gerenciamento de Memória

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Arquitetura de Sistemas Operacionais. Francis Berenger Machado Luiz Paulo Maia. Capítulo 9 Gerência de Memória

Sistemas Opera r cionais Gerência de Memória

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

Sistemas Operacionais Aula 12: Gerência de Memória. Ezequiel R. Zorzal

MEMÓRIA LÓGICA E FÍSICA (1)

Sistemas Operacionais Gerência de Memória

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Sistemas de Computação. Gerenciamento de memória

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Gerenciamento de Memória

Gerência da Memória Memória Virtual. Adão de Melo Neto

Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Gerência de Memória. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 45

Capítulo 6 Nível do Sistema Operacional

ARQUITETURA DE COMPUTADORES

Gerência da Memória. Adão de Melo Neto

Gerência de Memória. Alocação

Sistemas de Informação. Sistemas Operacionais

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Gerenciamento de memória

SSC0640 Sistemas Operacionais I

Gerência da Memória. Adão de Melo Neto

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 9 Ge r ê n cia a de e M e m ór ia

Gerenciamento de Memória

Organização e Arquitetura de Computadores I

Gerência de Memória. Gerência de memória. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos. Memória: UCP. Unidade de controle

Aula 10 Gerenciamento de Memória

Sistemas Operacionais. Gerência de Memória

Gerenciamento de memória

Gerência de Recursos. Gerência de Memória

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência de memória III

Arquitetura e Organização de Computadores

Gerência de memória II

Sistemas Operacionais. Rômulo Silva de Oliveira Alexandre da Silva Carissimi Simão Sirineo Toscani

GERENCIAMENTO DE MEMÓRIA

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Segmentação com paginação Intel 386. Esquema de tradução de endereço Intel 386

Arquitetura de Sistemas Operacionais

Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

Gerência de Recursos. Gerência de Memória

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Organização e Arquitetura de Computadores I

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

Gerenciamento de Memória

Gerência de Memória. Paginação

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

( ) Sistemas de Computação - Unifacs Professor : Marco Antônio C. Câmara - Lista de Exercícios II - Dia 18/10/2009

Sistemas Operacionais Gerência de Memória. Thiago Leite

Infra-Estrutura de Software IF677

Memória Virtual. Ciclo 4 AT2. Prof. Hermes Senger

Sistemas Operacionais

IFPR Instituto Federal do Paraná. Curso Técnico em Informática GERÊNCIA DE MEMÓRIA. SO Sistemas Operacionais. Professora Elaine Augusto Praça

AULA 14 - Memória Virtual

Gerenciamento de Memória

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

LISTA DE EXERCÍCIOS 02

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Capítulo 11 Sistemas de Arquivos

Gerenciamento de Memória

Capítulo 4 Gerenciamento de Memória

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

GERÊNCIA DE MEMÓRIA. INF009 Laboratório de Sistemas Operacionais

Segmentação de Memória

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Gerência de Memória Memória Virtual e Paginação

Sistemas Operacionais I Memória Virtual

Arquitetura e Organização de Computadores

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Instituto de Ciência e Tecnologia - ICT

ENADE 2011 SISTEMAS OPERACIONAIS

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

( ) ( ) Auto Avaliação F ( ) M ( ) D ( ) Seqüência: Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Exercícios - Dia 20/04/2011

Sistemas operacionais P A G I N A Ç Ã O D E M E M Ó R I A

Organização e Arquitetura de Computadores I

Sistemas Operacionais

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade

Transcrição:

Sistemas Operacionais Gerência de Memória Introdução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Conceitos básicos Memória principal Central em sistemas de computador CPU e sistema de I/O interagem com a memória Conjunto de bytes ou palavras Cada um com seu próprio endereço CPU faz busca e armazenamento na memória Cada programa deve ser carregado na memória para ser executado

Conceitos básicos Memória principal (cont.) Uma palavra de memória Conjunto de células que podem ser lidas ou escritas Em geral é endereçada por byte Possui dois registradores para as operações básicas: Registrador de endereço de memória Registrador intermediário (buffer)

Conceitos básicos Memória principal (cont.) Registrador de endereço de mémória Contém o endereço de memória a realizar a operação Endereço pode conter dado ou instrução Registrador Intermediário (buffer) Leitura: recebe a palavra da memória Escrita: contém a informação a ser gravada na memória Seletor Seleciona o espaço da memória correspondente ao endereço

Seletor Conceitos básicos Memória Registrador de endereço 0 1 2 3 4 Registrador intermediário N-2 N-1

Requisitos de gerenciamento de memória Relocação Processo pode estar em qualquer posição da memória Proteção Processos tem de ter espaço reservado Compartilhamento Deve haver espaço comum entre processos Organização lógica Organização intemediária dada pela visão de hw e sw Organização física Organização a ser tomada para, por exemplo, transferência de dados entre a memória secundária e a principal

Relocação Quando o programa é carregado na memória o verdadeiro (absoluto) endereço de memória é determinado Um processo pode ocupar diferentes partições, ou seja, diferentes locais absolutos da memória durante a execução

Conceitos básicos Memória física: Memória real do sistema implementada com CIs Possui áreas reservadas (ex. vetor de interrupções) Endereço físico: Acessa posições da memória física Memória lógica (virtual): Memória que um processo pode acessar Utiliza endereços lógicos Necessita tradução dos endereços lógico para físicos Espaço de endereçamento do processo Conjunto de endereços que o processo pode acessar

Espaço de endereçamento

Conceitos básicos Unidade de gerenciamento de memória MMU (Memory Management Unit) Provê mecanismos básicos para gerência de memória Proteção de acesso Mapeamento de endereços lógicos em endereços físicos Normalmente está junto ao processador CPU sempre enxerga endereços lógicos 11

MMU

Relocação

Requisitos: Proteção Funcionalidade Evitar o acesso não desejado ou indevido de outros processos Acesso pode alterar bytes armazenados no espaço do processo Acesso pode ocorrer de forma acidental ou intencional Processos não devem ser capazes de referenciar lugares da memória que pertencem a outro processo sem permissão Impossível verificar endereços absolutos em tempo de compilação Relocação torna imprevisível a localização do processo

Proteção de acesso Garante espaço limitado de endereçamento Cada processo tem seu espaço de endereçamento Verifica se endereço a ser acessado é válido Recurso utilizado Registradores de limite inferior e superior Demarcam o início e o fim do espaço de endereçamento de um processo Funcionamento se (endereço a ser acessado < registrador de limite inferior) então gera interrupção - endereço ilegal se (endereço a ser acessado > registrador de limite superior) então gera interrupção - endereço ilegal acessa memória[end]

Proteção de acesso Recursos utilizados Registradores base e limite Todos programas são carregados com endereço inicial = 0 Funcionamento se (endereço a ser acessado > registrador limite) então gera interrupção - endereço ilegal senão end = end + regbase acessa memória[end]

Requisitos: Compartilhamento Funcionalidade Permitir a vários processos que acessem uma mesma porção de memória Casos de emprego de compartilhamento Processos que são cópias do mesmo programa Acessam o mesmo trecho de código, sem replicações na memória Permite reduzir a quantidade de memória alocada Processos que cooperam É importante que compartilhem uma mesma estrutura de dados Compartilhamento deve ser provido sem descuidar da proteção

Requisitos: Organização lógica Caracteríticas do hardware Memória é organizada linearmente (geralmente) Sequencia de bytes/palavras Característica do software Programas são escritos em módulos Módulos podem ser escritos e compilados independentemente A cada módulo pode-se aplicar diferentes níveis de proteção Imutáveis: Apenas leitura, apenas execução Mutáveis: Permite escrita Emprego da organização permite Escrita e compilação de módulos independentes Diferentes graus de proteção Compartilhamento de módulos entre processos

Requisitos: Organização física Funcionalidade Garantir o fluxo de processos entre as memórias principal e secundária Responsabilidade: Não pode ser deixada ao programador Memória disponível pode ser insuficiente para a carga de um processo Solução por parte do programador partiria da exploração de overlaying o Overlay: uso de um mesmo espaço de memória para diferentes módulos e dados, carregados conforme necessário Dinamicidade em ambientes de multiprogramação causa imprevisibilidade Em tempo de compilação o programador não sabe o Quanto espaço terá disponível em memória o Onde terá espaço disponível na memória

Monoprogramação Cenário Existe um único processo em execução na memória Permite o uso de toda a parte que resta da memória Esquema mais simples possível A memória é dividida Sistema operacional Processo do usuário

Monoprogramação Formas de organizar a memória

Multiprogramação Existem vários processos na memória Coexistência de processos Aptos à executar Em execução

Particionamento da memória Dá suporte à multiprogramação Permite aumentar a utilização do processador Para tirar vantagem da multiprogramação, vários processos precisam estar na memória

Partições fixas Memória dividida em partições de tamanhos fixos Tamanhos podem ser os mesmos ou não Quando programa é carregado Entra em uma fila de processos para utilizar uma partição livre O número máximo de processos concorrentes é baseado no número de partições Exemplo: Particionamento de uma máquina com 32 KBytes de memória 4KBytes: processos pequenos 6KBytes: processos médios 12KBytes: processos grandes 10KBytes: kernel

Partições fixas Problema: Tamanho do processo a ser carregado e otamanho da partição não são equivalentes Consequência Fragmentação interna: Ocorre quando o tamanho da partição é maior que o tamanho do processo Espaço que sobra dentro da partição quando processo é alocado na partição Fragmentação externa: Detectado quando existem partições livres que, se combinadas, poderiam ser usadas por um processo que está aguardando

Partições fixas Proposta de solução para fragmentações Emprego de partições de tamanhos distintos, mas fixos Diminui ambos problemas Mas não resolve completamente Exemplo da figura Processos de até 16M podem ser acomodados Processos menores podem ser acomodados nas partições menores, reduzindo a fragmentação interna

Partições fixas Algoritmo de alocação Partições de tamanho equivalentes Trivial: Havendo espaço disponível, aloca-se para o processo em carga Partições de tamanho equivalentes Pode associar cada processo com a menor partição na qual ele cabe Processos devem ser alocados de tal maneira que minimizem o desperdício de memória em cada partição Pode-se empregar uma fila para cada tamanho de partição Garante a redução/eliminação da ocorrência de fragmentação interna Pode causar mal uso de partições o Partições maiores não utilizadas poderiam ser alocadas para processos menores Pode-se empregar uma única fila para todas as partições No caso de não existência de de espaço, swap pode ser requerido

Partições fixas

Partições fixas Vantagens Provêem esquema simples para gerenciamento Requerem baixo desperdício de tempo de processamento do sistema operacional Desvantagens O número de processos ativos é limitados pelo número de partiçoes Partiçoes são definidas durante o tempo de geração do sistema Processos muito pequenos não usam o espaço eficientemente Em ambos os métodos (tamanhos iguais ou diferentes) Técnica em desuso atualmente IBM OS/MFT empregava tal técnica MFT: Multiprogramming with a fixed number of Tasks

Partições variáveis/dinâmicas Objetivo: Superar dificuldades do uso de partições fixas Partições de tamanhos e quantidade distintos Tamanho das partições é ajustado dinamicamente Processo carregado na memória ocupa o espaço referente ao seu tamanho SO contém lista de espaços livres na memória física Mapa de bits ou lista encadeada

Partições variáveis OS (8M) P2 (14M) P1 (20M) Empty (6M) Empty P4(8M) P2 (56M) (14M) Empty (6M) P3 (18M) Fragmentação Externa Memória externa a todos os processos é fragmentada Pode ser resolvido com compactação OS move os processos Permite juntar áreas livres Consome tempo e gasta tempo de CPU Empty (4M)

Partições variáveis Alocação de partições Sistema operacional deve decidir qual bloco livre será associado a um processo Algoritmos de alocação Best-fit First-fit Next-fit Worst-fit

Partições variáveis Best-fit Escolhe-se a partição onde o processo deixa o menor espaço sem utilização Escolhe o bloco cujo tamanho é o mais próximo do requisitado Nesse algoritmo Desempenho ruim quando todos os blocos tem de ser avaliados Objetivo é garantir a melhor escolha de partição livre Otimização A lista de áreas livres está ordenada por tamanho Diminuindo o tempo de busca por uma área desocupada. Desvantagem do algoritmo Escolha da partição mais aproximada resulta em pequenas partições livres Tendência é ter grande quantidade de pequenas áreas livres não-contíguas Aumentando o problema da fragmentação. Solução pode ser o emprego de Compactação de memória Pode ser necessária mais frequentemente

Partições variáveis Worst-fit Escolhe-se a partição onde o processo deixa o maior espaço sem utilização Escolhe o maior espaço livre na memória Nesse algoritmo A lista de áreas livres deve estar ordenada por tamanho para otimizar busca Comparado ao best-fit Reduz (não elimina) o problema da fragmentação

Partições variáveis First-fit Busca por espaço livre Varre a memória do início Escolhe o primeiro bloco disponível que seja grande o suficiente Método tenta primeiro utilizar as áreas livres de endereços mais baixos Boa chance de se obter uma grande partição livre nos endereços mais altos Algoritmo mais rápido dos três (best / worst / first) A lista de áreas livres está ordenada por endereços crescentemente Consome menos recursos para a busca Next-fit Similar ao First-fit Diferença está na busca, que ocorre a partir do endereço da última posição alocada

Exercícios 1) Considere um sistema cuja gerência de memória é feita através de partições variáveis. Nesse momento, existem as seguintes lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem. Quais espaços serão ocupados pelas solicitações: 5k, 10k e 6k, nessa ordem, se: a) First-fit for utilizado? b) Next-fit for utilizado? c) Best-fit for utilizado? d) Worst-fit for utilizado? 37

Resposta 1 Lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k Solicitações: 5k, 10k e 6k First-fit: * 5k, 4k, 20k, 18k, 7k, 9k, 12k e 13k * 5k, 4k, 10k, 18k, 7k, 9k, 12k e 13k * 5k, 4k, 4k, 18k, 7k, 9k, 12k e 13k Next-fit: * 5k, 4k, 20k, 18k, 7k, 9k, 12k e 13k * 5k, 4k, 10k, 18k, 7k, 9k, 12k e 13k * 5k, 4k, 10k, 12k, 7k, 9k, 12k e 13k Best-fit: *10k, 4k, 20k, 18k, 2k, 9k, 12k e 13k *(0k), 4k, 20k, 18k, 2k, 9k, 12k e 13k *(0k), 4k, 20k, 18k, 2k, 3k, 12k e 13k Worst-fit: * 10k, 4k, 15k, 18k, 7k, 9k, 12k e 13k * 10k, 4k, 15k, 8k, 7k, 9k, 12k e 13k * 10k, 4k, 9k, 8k, 7k, 9k, 12k e 13k

Exercícios 2) Considere novamente um sistema cuja gerência de memória é feita através de partições variáveis. Nesse momento, existem as seguintes lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k, nessa ordem. Quais espaços serão ocupados pelas solicitações: 15k, 4k e 8k, nessa ordem, se: a) First-fit for utilizado? b) Next-fit for utilizado? c) Best-fit for utilizado? d) Worst-fit for utilizado?

Resposta 2 Lacunas: 10k, 4k, 20k, 18k, 7k, 9k, 12k e 13k Solicitações: 15k, 4k e 8k First-fit: * 10k, 4k, 5k, 18k, 7k, 9k, 12k e 13k * 6k, 4k, 5k, 18k, 7k, 9k, 12k e 13k * 6k, 4k, 5k, 10k, 7k, 9k, 12k e 13k Next-fit: * 10k, 4k, 5k, 18k, 7k, 9k, 12k e 13k * 10k, 4k, 5k, 14k, 7k, 9k, 12k e 13k * 10k, 4k, 5k, 14k, 7k, 1k, 12k e 13k Best-fit: * 10k, 4k, 20k, 3k, 7k, 9k, 12k e 13k * 10k, 0k, 20k, 3k, 7k, 9k, 12k e 13k * 10k, 0k, 20k, 3k, 7k, 1k, 12k e 13k Worst-fit: * 10k, 4k, 5k, 18k, 7k, 9k, 12k e 13k * 10k, 4k, 5k, 14k, 7k, 9k, 12k e 13k * 10k, 4k, 5k, 6k, 7k, 9k, 12k e 13k

Exercício Um sistema utiliza alocação particionada dinâmica como mecanismo de gerência de memória. O sistema operacional aloca uma área de memória total de 50Kb e possui, inicialmente, os processos da tabela a seguir: Realize as operações abaixo seqüencialmente, mostrando o estado da memória após cada uma delas. Resolva a questão utilizando as estratégias best-fit, worst-fit e first-fit. a) alocar uma área para o programa D que possui 6 Kb; b) liberar a área do programa A; 5 Kb Processo A 3 Kb Processo B 10 Kb Livre 6 Kb Processo C 26 Kb Livre c) alocar uma área para o programa E que possui 4 Kb.

Buddy System Alternativa aos particionamentos fixos e variáveis Todo o espaço disponível é tratado como um único bloco 2 U Se requisição de tamanho s é tal que 2 U-1 < s <= 2 U Todo o bloco é alocado Senão, bloco é dividido em dois buddies iguais Processo continua até que um menor bloco maior ou igual ao tamanho s seja gerado

Exemplo 1 M 512 K Processo A requesita 100 K 512 K 256 K 256 K 512 K 128 A K 128 K 256 K 512 K

Exemplo

Árvore de representação do Buddy