SSC SISTEMAS OPERACIONAIS I Aula 10 – Gerenciamento de Memória

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Sistemas operacionais
Sistemas operacionais
Gerenciamento de Memória
Sistemas Operacionais
Gerenciamento de memória
Arquitetura de Sistemas Operacionais Francis Berenger Machado
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
SSC SISTEMAS OPERACIONAIS I Aula 1 – Apresentação da disciplina
SSC SISTEMAS OPERACIONAIS I Aulas 6 – Escalonamento de Processos
SSC SISTEMAS OPERACIONAIS I
SSC SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória 3
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
SSC SISTEMAS OPERACIONAIS I
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Capítulo 7 Multimídia 7.1 Introdução à multimídia
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Gerência de Memória.
Estruturas de Controle
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 –
Listas Encadeadas.
Sistemas Operacionais I
Sistemas Operacionais I
Sistemas Operacionais
Gerência de Memória.
Arquitetura de Sistemas Operacionais – Machado/Maia 10/1 Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência.
Arquitectura de Computadores II
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
SSC SISTEMAS OPERACIONAIS I Aula 11 – Gerenciamento de Memória 2
Fundamentos da Arquitetura de Computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
SISTEMAS OPERACIONAIS
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin
Memória virtual Professor Esp. Diego André Sant’Ana
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Gerenciamento de memória 1 Livro utilizado com base para conteúdo no slide, corram.
Gerenciamento de Memória Conceitos Básicos
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Sistemas Operacionais
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Faculdade Pernambucana - FAPE
Bruno Iran Ferreira Maciel
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
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.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

SSC 140 - SISTEMAS OPERACIONAIS I Aula 10 – Gerenciamento de Memória Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC 140 - SISTEMAS OPERACIONAIS I Turmas A e B Aula 10 – Gerenciamento de Memória Profa. Sarita Mazzini Bruschi Regina Helena Carlucci Santana Marcos José Santana Slides adaptados de Luciana A. F. Martimiano baseados nos livros Sistemas Operacionais Modernos de A. Tanenbaum

Programa Introdução aos Sistemas Operacionais Processos Deadlocks – Final!!! Gerência de Memória Sistemas de Arquivos Entrada/saída Segurança Exemplos de Sistemas Operacionais

Gerênciamento de Memória Hierarquia de Memória Alocação particionada estática e dinâmica Gerenciamento dos espaços Swapping Memória virtual Paginação e segmentação

Gerenciamento de Memória Memória - recurso muito importante; Tendência atual do software Lei de Parkinson: “Os programas se expandem para preencher a memória disponível para eles” (adaptação); Requisitos: Muito grande; Rápida; Não volátil; Baixo custo.

Gerenciamento de Memória Hierarquia de Memória: Cache – vários sub-níveis Memória Principal Disco

Gerenciamento de Memória Hierarquia de Memória: Cache Pequena quantidade – k/M bytes Alto custo por byte Muito rápida Volátil Memória Principal Disco

Gerenciamento de Memória Hierarquia de Memória: Cache Memória Principal Quantidade intermediária – M/G bytes Custo médio por byte Velocidade média Volátil Disco

Gerenciamento de Memória Hierarquia de Memória: Cache Memória Principal Disco Grande quantidade – G/T bytes Baixo custo por byte Lenta Não volátil

Gerenciamento de Memória Hierarquia de Memória: Para cada tipo de memória: gerenciar espaços livres/ocupados Alocar processos/dados na memória Localizar dado Entre os níveis de memória: Gerenciar trocas

Gerenciamento de Memória Gerenciador de memória: responsável por alocar e liberar espaços na memória para os processos em execução; também responsável por gerenciar chaveamento entre os níveis de memória: principal e disco; principal e cache.

Gerenciamento de Memória Tipos básicos de gerenciamento: Com paginação (chaveamento): Processos são movidos entre a memória principal e o disco; artifício usado para resolver o problema da falta de memória; Se existe MP suficiente não há necessidade de se ter paginação; Sem paginação: não há chaveamento;

Gerenciamento de Memória Monoprogramação: Sem paginação: gerenciamento mais simples; Apenas um processo na memória; 0xFFF... S.O. DRIVERS ROM ROM USUÁRIO USUÁRIO RAM RAM RAM USUÁRIO S.O. S.O. Grande porte Sem Uso Computadores de mão Sistemas embarcados MS-Dos BIOS

Gerenciamento de Memória Modelo de Multiprogramação: Múltiplos processos sendo executados; Eficiência da CPU; Processo Necessidade de Particionamento da Memória Principal Memória Principal - RAM

Gerenciamento de Memória Multiprogramação: vários processos na memória: como proteger os processos uns dos outros? e kernel de todos os processos? como tratar a realocação? Todas as soluções envolvem equipar a CPU com um hardware especial: MMU (memory management unit);

Gerenciamento de Memória Realocação: Quando um programa é montado (link), i.e. programa principal + rotinas do usuário + rotinas da biblioteca  executável, o montador (linker) deve saber em que endereço o programa irá iniciar na memória; Nesse caso, para que o montador não escreva em um local indevido (por exemplo na área do SO), é preciso de realocação: #100 +   que depende da partição!!!

Gerenciamento de Memória Proteção: Com várias partições e programas ocupando diferentes espaços da memória é possível acontecer um acesso indevido; Solução para ambos os problemas: 2 registradores  base e limite Quando um processo é escalonado o registrador-base é carregado com o endereço de início da partição e o registrador-limite com o tamanho da partição; O registrador-base torna impossível a um processo uma remissão a qualquer parte de memória abaixo de si mesmo.

Gerenciamento de Memória 2 registradores  base e limite automaticamente, a MMU adiciona o conteúdo do registrador-base a cada endereço de memória gerado; endereços são comparados com o registrador-limite para prevenir acessos indevidos;

Gerenciamento de Memória Registradores base e limite

Gerenciamento de Memória Partições Particionamento da memória pode ser realizado de duas maneiras: Partições fixas (alocação estática); Partições variáveis (alocação dinâmica); Partições Fixas: Tamanho e número de partições são fixos (estáticos); Não é atrativo, porque partições fixas tendem a desperdiçar memória (Qualquer espaço não utilizado é literalmente perdido) Mais simples;

Gerenciamento de Memória Partições Fixas Filas múltiplas: Problema: filas não balanceadas; Fila única: Melhor utilização da memória, pois procura o melhor processo para a partição considerada; Problema: processos menores são prejudicados;

Gerenciamento de Memória Partições Fixas Divisão da Memória em Partições Fixas: partição 4 partição 3 partição 2 partição 1 S.O. 100 k 200 k 400 k 700 k Filas Múltiplas Fila Única ... (a) (b)

Gerenciamento de Memória Partições Fixas Partições Fixas: problemas com fragmentação: Interna: desperdício dentro da área alocada para um processo; Ex.: processo de tamanho 40K ocupando uma partição de 50k; Externa: desperdício fora da área alocada para um processo; Duas partições livres: PL1 com 25k e PL2 com 100k, e um processo de tamanho 110K para ser executado; Livre: 125K, mas o processo não pode ser executado;

Gerenciamento de Memória Partições Variáveis Tamanho e número de partições variam; Otimiza a utilização da memória, mas complica a alocação e liberação da memória; Partições são alocadas dinamicamente; SO mantém na memória uma lista com os espaços livres; Menor fragmentação interna e grande fragmentação externa; Solução: Compactação;

Gerenciamento de Memória Partições Variáveis Tempo SO A (a) (b) B (c) C (d) (e) D (f) (g) Memória livre

Gerenciamento de Memória Minimizar espaço de memória inutilizados: Compactação: necessária para recuperar os espaços perdidos por fragmentação; no entanto, muito custosa para a CPU; Técnicas para alocação dinâmica de memória: Bitmaps; Listas Encadeadas;

Gerenciamento de Memória Técnica com Bitmaps: Memória é dividida em unidades de alocação em kbytes; Cada unidade corresponde a um bit no bitmap: 0  livre 1  ocupado Tamanho do bitmap depende do tamanho da unidade e do tamanho da memória; Ex.: unidades de alocação pequenas  bitmap grande; unidades de alocação grandes  perda de espaço;

Gerenciamento de Memória Técnica com Bitmaps: 8 16 A B C ... Memória 1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 Bitmap Memória ocupada Memória livre

Gerenciamento de Memória Técnica com Listas Encadeadas: Uma lista para os espaços vazios e outra para os espaços cheios, ou uma lista para ambos! “espaço  segmento” começa tamanho 5 com zero ....... P 5 H 5 3 P 8 6 H 29 3 x Processo Hole tamanho 3 (espaço vazio) começa com 5

Gerenciamento de Memória Algoritmos de Alocação  quando um novo processo é criado: FIRST FIT 1º segmento é usado; Rápido, mas pode desperdiçar memória por fragmentação; NEXT FIT Mas na próxima alocação inicia busca do ponto que parou anteriormente; Possui desempenho inferior;

Gerenciamento de Memória BEST FIT Procura na lista toda e aloca o espaço que mais convém; Menor fragmentação; Mais lento; WORST FIT Aloca o maior espaço disponível; QUICK FIT Mantém listas separadas para os espaços mais requisitados;

Gerenciamento de Memória Cada algoritmo pode manter listas separadas para processos e para espaços livres: Vantagem: Aumenta desempenho; Desvantagens: Aumenta complexidade quando espaço de memória é liberado – gerenciamento das listas; Fragmentação;

Gerenciamento de Memória O que fazer quando não existe espaço suficiente para todos os processos ativos? Swapping Chaveamento de processos inteiros entre a memória principal e o disco Overlays  Memória Virtual Programas são divididos em pedaços menores Pedaços são chaveados entre a memória principal e o disco

Gerenciamento de Memória Swapping: chaveamento de processos inteiros entre a memória principal e o disco; Transferência do processo da memória principal para a memória secundária (normalmente disco): Swap-out; Transferência do processo da memória secundária para a memória principal: Swap-in; Pode ser utilizado tanto com partições fixas quanto com partições variáveis;

Gerenciamento de Memória Memória Virtual (MV) Programas maiores que a memória eram divididos em pedaços menores chamados overlays  programador; Desvantagem: custo muito alto; Memória Virtual: Sistema operacional é responsável por dividir o programa em overlays; Sistema operacional realiza o chaveamento desses pedaços entre a memória e o disco;