SISTEMAS OPERACIONAIS

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


Introdução. Considerações:

Fundamentos de Sistemas Operacionais

Prof. Adriano Maranhão

Gerenciamento de Memória

Sistemas Opera r cionais Gerência de Memória

Sistemas Operacionais

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

SSC0640 Sistemas Operacionais I

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

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

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

Aula 10 Gerenciamento de Memória

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Gerência de Memória

GERENCIAMENTO DE MEMÓRIA

Sistemas Operacionais Gerência de Memória

Sistemas Operacionais

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

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

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

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

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

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

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

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

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

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais

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

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

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

Organização e Arquitetura de Computadores

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

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

SISTEMAS OPERACIONAIS

Sistemas de Informação. Sistemas Operacionais

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

Gerenciamento de memória

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

Segmentação de Memória

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

Aula 06. Slots para Memórias

Arquitetura e Organização de Computadores

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

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

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

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

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

Infra-Estrutura de Software IF677

Organização e Arquitetura de Computadores I

Capítulo 6 Nível do Sistema Operacional

Sistemas Operacionais

Sistemas Operacionais. Sistema de entrada e Saída

Gestão de Memória. Espaço de Endereçamento

Arquitetura e Organização de Computadores

Arquitetura de Sistemas Operacionais

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

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

Introdução aos Sistemas Operacionais

Gerenciamento de Memória

Gestão de Memória. Espaço de Endereçamento

Sistemas Operacionais

Gerência de memória III

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

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Gerência de Memória. Carlos Gustavo A. da Rocha. Sistemas Operacionais

Organização e Arquitetura de Computadores I

ENADE 2011 SISTEMAS OPERACIONAIS

7 Mecanismos de gestão de memória. Prof. Ricardo Silva

ICET CURSO: Ciência da Computação e Sistemas de Informação (Sistemas Operacionais Abertos) Estudos Disciplinares. Campus: Data: / / Nome: Questão 1:

SSC0640 Sistemas Operacionais I

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

Gerenciamento de memória

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

Sistemas Operacionais I Memória Virtual

Sistemas Operacionais

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

Sistemas Operacionais. Gerenciamento de memória

LICENCIATURA EM COMPUTAÇÃO. Resenha Livro Sistemas Operacionais 4ª edição Capítulo quatro: Gerencia do processador

( ) ( ) 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

Sistemas Operacionais. Gerência de Processador

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

Gerência de memória II

Disciplina: Sistemas Operacionais

Prof. Kleber R. Rovai

Capítulo 4 Gerenciamento de Memória

Sistemas Operativos: Gestão de Memória

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

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

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

Modelo de Von Neumann: conceito do programa armazenado

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

Transcrição:

SISTEMAS OPERACIONAIS Gerência de Memória Andreza Leite andreza.leite@univasf.edu.br

Plano da Aula 2 Introdução Necessidade gerenciador de memória Sistemas gerenciais de memória Alocação contínua n Máquina simples n Monitor residente n Participações múltiplas n Tamanho fixo n Tamanho variável

Memória 3 Sem abstração de memória os programas consideravam memória física

Memória 4 Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes na memória principal, melhor será o compartilhamento do processador; Necessidade de uso otimizado; O S.O. não deve ocupar muita memória; É um dos fatores mais importantes em um projeto de S.O..

Memória 5 Sistema operacional deve: controlar quais regiões de memória são utilizadas e por qual processo decidir qual processo deve ser carregado para a memória, quando houver espaço disponível alocar e desalocar espaço de memória

6 Memória

Memória 7 Algumas funções do Gerenciador de memória: Controlar quais as unidades de memória estão ou não estão em uso, para que sejam alocadas quando necessário; Liberar as unidades de memória que foram desocupadas por um processo que finalizou; Tratar do Swapping entre memória principal e memória secundária. n Transferência temporária de processos residentes na memória principal para memória secundária.

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

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

Memória 10 Em um ambiente multiprogramado, é necessário: Tradução de endereços Relocação Proteção Compartilhamento Organização física / lógica

Memória 11 Código Fonte Endereços simbólicos (x) Programa objeto (em ling. de montagem) Executável (programa em ling. de máquina) Relocação Endereços lógicos relativos ($10 y $200) - O programa pode ser carregado em qualquer posição da memória. Deve haver uma tradução de endereços (ou relocação de endereços) absolutos ($5010 y $5200) - Endereços relativos ao início da memória (endereços reais). { ($A010) = #3 call $A200 } Endereços físicos ($A010 y $A200)

Memória Tradução de endereços 12 Uma das funções mais importantes do sistema de gerenciamento de memória é a tradução dos endereços lógicos utilizados pelos processos para endereços físicos reais. A MMU (Memory-Managment Unit) é o modulo hardware responsável por realizar a conversão entre os endereços lógicos e físicos

Memória Tradução de endereços 13 Tradução de endereços Uma das funções mais importantes do sistema de gerênciamento de memória é a tradução dos endereços lógicos utilizados pelos processos para endereços físicos reais. A MMU (Memory-Managment Unit) é o modulo hardware responsável por realizar a conversão entre os endereços lógicos e fisicos

Memória Tradução de endereços 14 Memória Lógica - é aquela que o processo enxerga, o processo é capaz de acessar. Memória Física - é aquela implementada pelos circuitos integrados de memória, pela eletrônica do computador (memória real)

Memória Tradução de endereços 15 Funções MMU: Verificar a posibilidade de conversão. Comprovar as permissões de acesso do processo ao endereço de memória. Converter endereços lógicos em físicos. O mecanismo de tradução da MMU depende do sistema de gerência de memória utilizado e vice-versa.

Memória Relocação 16 Capacidade de mover um programa de uma região da memória principal para uma outra sem invalidar as referências de memória dentro do programa; 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. O hardware do processador e o SO devem ser capazes de traduzir os endereços de referência de memória no código do programa para o endereço físico da memória

Memória Relocação 17 A relocação pode ocorrer sempre: No momento de lançar o programa em memória. Dinamicamente, durante a execução do processo. A MMU deve ser reajustada para cada processo de forma que a relocação possa ocorrer corretamente.

Memória Relocação 18 Relocação estática em tempo de compilação. Se conhece/estabelece em que posição de memória se situará o processo, por tanto, o código gerado contém o endereço físico. Endereços lógicos se igualam com os físicos. Relocação estática em tempo de execução. O código é gerado utilizando endereços de memória lógicos uma vez que não é possível conhecer a posição final do processo na memória. Quando o processo é alocado, se realizam tarefas de tradução de endereços lógicos à físicos.

Memória Relocação 19 Relocação dinâmica em tempo de execução. A correspondência entre o espaço de endereços lógicos e físicos se realiza em tempo de execução. Este sistema permite que o processo, durante sua execução possa mover-se de uma zona de memória à outra.

Memória Proteção 20 Proteção O sistema de gerência de memória deve assegurar a proteção do código e dos dados dos processos contra acessos acidentais ou intencionados de outros processos. Também deve proteger o código e dados do S.O. Processos não devem poder referenciar posições de memória em outros processos sem permissão prévia.

Memória Proteção 21 Proteção Em virtude da relocação, não é possível testar endereços em programas. Logo, com suporte de hardware, o teste deverá ser em tempo de execução... End. lógico S End. físico N Exceção ao S.O.

Memória Compartilhamento 22 Compartinhamento: Existem grandes áreas dos programas (código e dados) que podem ser compartilhados por diferentes processos para reduzir os requisitos de memória e aumentar a multi-programação do sistema. n Deve-se permitir que vários processos acessem a mesma área de memória principal n Deve-se permitir o compartilhamento sem comprometer o requisito de proteção

Memória Compartilhamento 23 Proveitos: Processos que são executados em um mesmo programa podem acessar a mesma cópia do programa, e Processos que estão cooperando em uma mesma tarefa podem compartilhar acesso a uma mesma estrutura de dados processo 1 Editor Código dados memória Código processo 1 Editor Código dados memória Código processo 2 Editor Código dados dados dados processo 2 Editor Código dados Código dados

Memória Organização 24 A memória física de um sistema se organiza como um espaço de endereços linear e unidimencional definido por uma sequência de palavras. Entretanto, esta organização não se corresponde à utilizada pelos programas, os quais, em geral, se organizam em módulos (código, dados, pilha, etc.). O sistema de gerência de memória deve suportar a organização lógica requerida pelos programas e garantir a conversão até o formato organizacional real da memória.

Memória Organização 25 Organização: Física n Organizada como uma hierarquia n Uso de memória n Cache (extremamente rápida, volátil, alto custo) n Principal (rápida, volátil, custo mediano) n Sencundária (lenta, armazenamento permanente e barata) n Gerenciamento deverá ser feito de forma transparente

Memória Organização 26 Organização: Lógica n Programas são normalmente separados em módulos, que podem ser escritos e compilados separadamente. n referências de um módulo para o outro são resolvidas em tempo de execução; n Diferentes graus de proteção (read only, execute only) podem ser atribuídos aos diferentes módulos. n É possível introduzir mecanismo de compartilhamento entre módulos

Sistemas de Gestão de Memória 27 Alocação contínua Alocação não contínua

Sistemas de Gestão de Memória Alocação Contínua

Sistemas de Gestão de Memória 29 Máquina Simples (Monoprogramação) Não existe um sistema de gestão da memória definido. O usuário tem o controle completo sobre todo o espaço de memória. Espaço de endereçamento lógico é igual ao espaço de endereçamento físico 0 1024 K

Sistemas de Gestão de Memória 30 Máquina Simples (Monoprogramação) Características: Vantagens: n Maior flexibilidade n Simplicidade n Não requer hardware / software específico Desvantagens: n processos e o kernel do S.O. compartilham o mesmo espaço de endereçamento n Não existe proteção n Pouco eficiente 0 1024 K

Sistemas de Gestão de Memória 31 Monitor Residente Divide a memória em duas seções diferentes: n Uma área de memória específica para o monitor residente (núcleo) do S.O. n Pode estar situado indefinidamente na parte alta ou baixa de memória. n Uma zona para o usuário. n Apenas um único processo de um usuário n O processo de um usuário só pode utilizar endereços de memória que não são referentes ao monitor. Registro límite

Sistemas de Gestão de Memória 32 Registro límite CPU Endereço Físico Endereço limite? Sim Memória Não Erro de endereçamento Exceção para S.O.

Sistemas de Gestão de Memória 33 E se o tamanho do programa for maior do que a memória disponível? Neste caso utiliza-se a técnica conhecida como overlay: n O programa é dividido em módulos que são executados independentemente na mesma área de memória

Sistemas de Gestão de Memória 34 Técnica Overlay Parte I Sistema Operacional 2 kb 4 kb Módulo principal 3 kb Área de Overlay 4 kb Parte II 2 kb Área livre 1 kb Área não utilizada 2 kb

Sistemas de Gestão de Memória 35 Inconvenientes Monitor Residente Apesar da utilização das técnicas de swapping para suportar a multi-tarefa este sistema tem dois inconvenientes principais: n Multiprogramação limitada: n Somente é permitido um processo em memória de forma simultânea. n Ineficiente utilização da memória: n Grande parte da memória permanece mal aproveitada, quando os processos de usuário são pequenos.

Sistemas de Gestão de Memória 36 Monitor Residente (Relocação) Registro Base 2500H Endereço lógico CPU + 3800H Endereço físico 5D00H

Memória Swapping 37 Intercambio (Swapping) Consiste em transferir o código e os dados de um processo completo da memória para o sistema de armazenamento, para dar lugar a outro processo previamente armazenado. Neste mecanismo, cada vez que um processo é retirado da CPU e é gerada Swapping: n O processo que está em memória e deixa a CPU é enviado ao disco. n O processo selecionado para tomar a CPU e que atualmente se encontra no disco é copiado na memória principal.

Memória Swapping 38 Swapping: Registro límite swap out Swapping swap in Usuario 1 Usuario 3 Usuario 2 Armazenamento Secundário

Memória Swapping 39 Tempo de swapping O principal inconveniente associado ao sistema de swapping é o aumento do tempo requerido para a troca de contexto dos processos. Para reduzir o tempo de swapping foram propostos: n Levar ao disco somente a parte de memória do usuário que não está sendo utilizada. n Swapping sobreposto. Dispõe-se dos buffers dentro do espaço de memória do núcleo do SO. Sobrepõe-se o swapping de um processo com a execução de outro, conseguindo que a CPU não fique inativa enquanto se realiza o swapping.

Memória Swapping 40 Tempo de swapping Registro límite 1024 K 0 2 núcleo Buffer 1 (usuario 3) Buffer 2 (vazio) Espaço Usuario 2 3 swapping in 1 5 swapping out 4 Usuario 1 Usuario 2 Usuario 3 Armazenamento Secundario A área de memória do 1 usuário 2, que deixa a CPU, é salva no buffer 2 2 A área de memória do usuário 3 é copiada do buffer 1 p/ a área de usuario 3 O processo do usuário 3 contínua com sua execução 4 A área do usuário 2 é envíado ao disco É c a r r e g a d a e m 5 memória (buffer1) o seguinte usuário que tomará a CPU

Memória Múltiplas Partições 41 O sistema de gestão de memória é baseado na divisão da memória em um certo número de regiões ou partições. Cada uma das partições pode conter um processo em execução. Quando um processo finaliza sua execução libera sua partição, a qual pode ser utilizada por outro processo da fila de trabalhos. Existem duas vertentes deste sistema: n Múltiplas partições de tamanho fixo n Múltiplas partições de tamanho variável

Memória Múltiplas Partições 42 Partições de tamanho fixo A área do usuário é dividida em diversas regiões onde o tamanho não varia durante a execução. Pode-se utilizar tamanhos iguais para todas as regiões ou regiões com tamanhos diferentes que permitam um melhor ajuste aos diferentes requisitos dos processos. 0 Núcleo 0 Núcleo Região 1 (200K) Região 1 (64K) Região 2 (200K) Região 2 (128K) Região 3 (200K) Região 3 (256K) 1024 K Região 4 (200K) 1024 K Região 4 (524K)

Memória Múltiplas Partições 43 Hardware de Proteção Registro límite inferior Registro límite superior 2000H 3000H CPU Endereço 2200H limite? Sim < limite? Sim Endereço 2200H Não Não Erro de Endereçamento Erro de Endereçamento Exceção para S.O. Exceção para S.O.

Memória Múltiplas Partições 44 Escalonamento (tamanho fixo =) Quando um processo se inicia o escalonador de longo prazo deve decidir qual das partições será utilizada. Existem duas políticas básicas para escalonar os processos entre as distintas partições: Sistema baseado em diferentes filas. Sistema baseado em uma única fila.

Memória Múltiplas Partições 45 Sistema baseado em diferentes filas. Cada partição tem uma fila de trabalho associada, os quais não podem utilizar outra partição. A localização dos processos nas filas é feita em função dos seus requisitos de memória. Sistema baseado em uma única fila. Existe uma única fila de trabalhos para todas as partições. Os processos não estão restritos a uma única partição. É necessária uma política para selecionar a partição.

Memória Múltiplas Partições 46 Escalonamento ( filas) Núcleo 0 52K 10K 34K 52K 10K 34K Região 1 (64K) 214K 75K 118K 75K 118K Região 2 (128K) 336K 131K 214K 131K Região 3 (256K) 336K Região 4 (524K) 1024 K Desvantagens: n Trabalho não balanceado: Determinadas partiçoes podem ficar sem tarefas, enquanto outras tarefas ficam esperando em fila. Vantagens: n Mais eficiente: Melhor utilização dos recursos de memória n Hardware mais simples: Só necessita relocação estática em tempo de compilação.

Memória Múltiplas Partições 47 Escalonamento (fila única) Núcleo 0 Región 1 (64K) Región 2 (128K) 75K 336K 214K 10K 131K Región 3 (256K) Vantagens: Región 4 (524K) 1024 K n Maior grau de multi-programação: Permite executar um maior número de processos de forma simultânea n Melhor balanceamento de carga. Desvantagens: n Incrementa a quantidade de memória desaproveitada. n Novos Requerimentos: Relocação estática em tempo de execução e políticas de seleção de partição.

Memória Múltiplas Partições 48 Políticas de seleção de partição: Primeira partição livre (First-Fit). É escolhida a primeira partição disponível com espaço suficiente para o processo. Somente a que melhor se adapta (Best-fit-only) Em função do tamanho do processo é decidido qual a partição que permite minimizar o espaço mal aproveitado (fragmentação). Se está ocupada, espera que fique livre. A partição livre que melhor se adapta (Bestavailable-fit). De todas as partições livres, é escolhida a que ocupa menos espaço de memória mal aproveitado.