Sistemas Operacionais



Documentos relacionados
Gerenciamento de Memória

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

Arquitetura de Computadores. Sistemas Operacionais IV

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

AULA 13 - Gerência de Memória

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Programação de Sistemas

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Capítulo 4 Gerenciamento de Memória

Organização de Computadores 1

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Gerenciamento de memória

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Sistemas Operacionais

Exercícios Gerência de Memória

AULA 5 Sistemas Operacionais

Sistema Operacional. Prof. Leonardo Barreto Campos 1

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Sistemas Operacionais. Prof. André Y. Kusumoto

Desenvolvimento de um Simulador de Gerenciamento de Memória

Gerenciamento de memória

Sistemas Operacionais Processos e Threads

Organização e Arquitetura de Computadores

Análises Geração RI (representação intermediária) Código Intermediário

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

Everson Scherrer Borges João Paulo de Brito Gonçalves

Exercícios Gerência de Memória

Sistemas Operacionais

Estruturas do Sistema de Computação

Fundamentos de Sistemas Operacionais

Orientação a Objetos

Sistemas Operativos I

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 10

1.2 Tipos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Sistemas Operacionais

Sistemas Operacionais

Gerenciamento de memória. Carlos Eduardo de Carvalho Dantas

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Infraestrutura de Hardware. Memória Virtual

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

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

Sistema de Arquivos FAT

3. Arquitetura Básica do Computador

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Visão Geral de Sistemas Operacionais

Capítulo 8: Gerenciamento de Memória

Memória Cache. Prof. Leonardo Barreto Campos 1

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

Sistemas Operacionais Gerência de Dispositivos

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Sistemas Operacionais

BARRAMENTO DO SISTEMA

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

SISTEMA DE ARQUIVOS. Instrutor: Mawro Klinger

Arquitetura de Sistemas Operacionais

Armazenamento Secundário. SCE-183 Algoritmos e Estruturas de Dados II

ROM-BIOS Inicialização Sistemas de Arquivos Formatação

Gerência do Sistema de Arquivos. Adão de Melo Neto

Processamento de Dados

EXEMPLO: Processo para atualização da hora Processo para monitoramento da necessidade de proteção de tela. Figura Exemplo

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Introdução aos Sistemas

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Processos e Threads (partes I e II)

Sistemas Operacionais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas de Arquivos. Sistemas Operacionais - Professor Machado

Memórias Prof. Galvez Gonçalves

Curso de Instalação e Gestão de Redes Informáticas

Simulação do Processo de Substituição de Páginas em Gerência de Memória Virtual

29/06/ :30 Leite Júnior QUESTÕES CESPE BACKUP

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

3 SCS: Sistema de Componentes de Software

Transcrição:

Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Sumário Introdução Funções básicas Alocação contígua simples Técnica de overlay Alocação Particionada Alocação Particionada Estática Alocação Particionada Dinâmica Estratégias de Alocação de Partição Swapping SO - Prof. Edilberto Silva 2

Introdução Memória: local onde se pode armazenar (temporária ou permanentemente) um determinado conteúdo. Memória de curto prazo (Volátil) é aquela que precisa ser constantemente alimentada, senão perderá as informações armazenadas nela. Exemplos: Memória Principal, Registradores e Cache. Memória de longo prazo (Não Volátil) é aquela que não necessita de alimentação constante para guardar as informações nela armazenadas. Exemplos: Discos Flexíveis e Rígidos, CD-ROM e Fitas. SO - Prof. Edilberto Silva 3

Introdução Códigos e Memórias UCP Fluxo de dados Memória Principal Código de Processo Fluxo de dados Memória Secundária Código de Programa SO - Prof. Edilberto Silva 4

Introdução Códigos e Memórias: Processos somente executam em memória principal; Programas podem estar guardados em memória secundária até sua execução; O próprio sistema operacional (ou parte dele) necessita executar na memória principal. O SO gerencia toda a utilização da memória, além da migração de programas da memória principal para a secundária e vice-versa. SO - Prof. Edilberto Silva 5

Introdução Questões Típicas de Gerência de Memória: Onde colocar um novo processo sem destruir um outro que já está atualmente na memória? Como impedir que um processo em execução altere os dados de outro? O que acontece se um processo precisa ser executado, mas não há espaço na memória? Se um processo que não está na memória tem de ser executado, mas a memória está cheia, o que se pode remover da memória? SO - Prof. Edilberto Silva 6

Funções Básicas Manter o maior número de processos na memória Maximizar o compartilhamento da UCP e demais recursos Swapping Execução de programas maiores que memória disponível Proteção Compartilhamento SO - Prof. Edilberto Silva 7

Gerência de Memória Gerência de Memória: Os sistemas de gerência de memória podem ser divididos em duas grandes categorias; Aqueles que movem os processos entre a Memória Principal e disco (Swapping e Paginação); E aqueles que não movimentam os processos entre tais dispositivos de armazenamento. SO - Prof. Edilberto Silva 8

Alocação Contígua Simples Essa alocação foi implementada nos primeiros sistemas operacionais desenvolvidos; Nesse tipo de organização a memória principal é dividida em duas partes: uma para o sistema operacional e outra para o programa do usuário; Dessa forma, o programador deve desenvolver suas aplicações, preocupado, apenas em não ultrapassar o espaço de memória disponível; Nesse esquema o usuário tem controle sobre toda a memória principal, podendo acessar qualquer posição de memória; SO - Prof. Edilberto Silva 9

Alocação Contígua Simples Proteção M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l R e g i s t r a d o r Á r e a p a r a p r o g r a m a SO - Prof. Edilberto Silva 10

Alocação Contígua Simples Apesar de sua fácil implementação a alocação contígua simples não permite a utilização eficiente do processador e da memória; Em relação à memória, caso o programa do usuário não a preencha, existirá um espaço de memória sem utilização; Por outro lado, caso o programa fosse maior que a memória disponível esse não poderia ser executado; A solução encontrada foi dividir o programa em partes (módulos), de forma que pudessem executar independentemente uma da outra, utilizando uma mesma área de memória; Essa técnica é chamada de overlay (sobreposição); Suponha, por exemplo, um programa que tenha três módulos: um principal, um de cadastramento e outro de impressão, sendo os módulos de cadastramento e impressão independentes; SO - Prof. Edilberto Silva 11

Subutilização da memória Alocação Contígua Simples M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l P r o g r a m a d o u s u á r i o Á r e a l i v r e SO - Prof. Edilberto Silva 12

Técnica de Overlay Técnica de Overlay M e m ó r i a P r i n c i p a l 2 K b S i s t e m a O p e r a c i o n a l C a d a s t r a m e n t o 3 K b M ó d u l o p r i n c i p a l 4 K b 4 K b Á r e a d e o v e r l a y I m p r e s s ã o 1 K b Á r e a l i v r e 2 K b Á r e a n ã o u t i l i z a d a 2 K b SO - Prof. Edilberto Silva 13

Alocação Contígua Simples Apesar de executar apenas um programa aplicativo na memória, outros programas (ou partes deles) podem também habitar a memória; Os próprios sistemas operacionais consistem de programas residentes e transientes. Os programas residentes sempre estão presentes na memória. Os programas transientes só estão presentes na memória quando chamados (necessário). SO - Prof. Edilberto Silva 14

Alocação Particionada Existem alguns métodos que visam particionar a memória de maneira eficiente e segura. Dentre esses: Partições Fixas ou estáticas: tanto em sistemas monoprogramados quanto em multiprogramados, uma abordagem simples para gerenciamento de memória envolve a divisão da memória em regiões de tamanho fixo, denominadas partições. O SO manipula uma tabela que contém informações a respeito das partições (tabela de partições). Uma vez determinado o tamanho da partição, ele não poderá ser alterado. SO - Prof. Edilberto Silva 15

Alocação Particionada Estática Alocação Particionada Estática M e m ó r i a P r i n c i p a l T a b e l a d e p a r t i ç õ e s S i s t e m a O p e r a c i o n a l P a r t i ç ã o T a m a n h o P a r t i ç ã o 1 2 K b 1 2 K b 2 5 K b 3 8 K b P a r t i ç ã o 2 5 K b P r o g r a m a s a s e r e m e x e c u t a d o s : P a r t i ç ã o 3 8 K b E D C B A 3 K b 6 K b 1 K b 4 K b 2 K b SO - Prof. Edilberto Silva 16

Alocação Particionada Estática Alocação Particionada Estática Absoluta M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l C A P a r t i ç ã o 1 2 K b 1 K b 2 K b E B P a r t i ç ã o 2 5 K b 3 K b 4 K b D P a r t i ç ã o 3 8 K b 6 K b SO - Prof. Edilberto Silva 17

Alocação Particionada Estática Alocação Particionada Estática Relocável M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l P r o g r a m a C 2 K b D E P r o g r a m a A 5 K b 6 K b 3 K b P r o g r a m a B 8 K b SO - Prof. Edilberto Silva 18

Alocação Particionada Estática Tabela de Alocação de Partições M e m ó r i a P r i n c i p a l P a r t i ç ã o T a m a n h o L i v r e S i s t e m a O p e r a c i o n a l 1 2 K b N ã o 1 P r o g r a m a C 2 5 K b S i m 3 8 K b N ã o 2 Á r e a l i v r e 3 P r o g r a m a B SO - Prof. Edilberto Silva 19

Alocação Particionada Estática - Sempre que um programa é carregado para a memória, o SO examina a tabela de partições e se há uma entrada indicando uma partição vazia, o SO armazena nela o código do processo; O SO também deve alterar a entrada na tabela para refletir a modificação das novas partições ocupadas. Isso deve acontecer tanto quando o processo inicia, quanto quando o processo termina seu processamento. SO - Prof. Edilberto Silva 20

Alocação Particionada Estática Proteção M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l E n d e r e ç o i n i c i a l E n d e r e ç o f i n a l SO - Prof. Edilberto Silva 21

Alocação Particionada Estática Proteção Registradores de Limites: maneira de verificar se as referências à memória são válidas ou não; São utilizados dois registradores que contêm os endereços superior e inferior (limites) da área alocada para um determinado processo; A idéia é que valores maiores do que o conteúdo do registrador superior ou menores que o conteúdo do registrador inferior sejam inválidos. SO - Prof. Edilberto Silva 22

Alocação Particionada Estática Proteção (Considerações): Um endereço inválido causa um Trap (interrupção) que transfere o controle para uma rotina de manipulação especial; É melhor armazenar os valores dos limites nos registradores da CPU do que na memória, pois isso reduz o tempo necessário para executar cada instrução. Referências extras à memória fazem o processo ser executado mais lentamente. Caso a proteção não seja implementada de maneira eficaz, pode ocorrer o colapso do sistema (system crash). SO - Prof. Edilberto Silva 23

Fragmentação Interna Alocação Particionada Estática M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l P r o g r a m a C 1 K b D B P r o g r a m a A 6 K b 4 K b 3 K b P r o g r a m a E 5 K b SO - Prof. Edilberto Silva 24

Alocação Particionada Estática Partições muito grandes podem criar muito desperdício de memória, provocando a chamada fragmentação interna de memória. Uma alternativa é criar partições que não possuam tamanhos fixos, e sim variáveis; Alternativa: Partições Dinâmicas! SO - Prof. Edilberto Silva 25

Alocação Particionada Dinâmica - Organização onde não se definem as partições antecipadamente; O SO as define dinamicamente, com base nas necessidades dos processos correntes. O SO cria uma partição cujo tamanho corresponde exatamente às necessidades de memória do processo; Não há fragmentação interna; Cada programa utiliza o espaço de que necessita, passando esse pedaço a ser sua partição; Aumenta a complexidade da tabela de gerenciamento da memória; A tabela não possui mais um número fixo de entradas, variando de acordo com o número de partições. SO - Prof. Edilberto Silva 26

Alocação Particionada Dinâmica Alocação Particionada Dinâmica M e m ó r i a P r i n c i p a l M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l S i s t e m a O p e r a c i o n a l P r o g r a m a B 4 K b P r o g r a m a C 1 K b A E C B 1 5 K b P r o g r a m a E 3 K b 2 K b 3 K b 1 K b 4 K b P r o g r a m a A 2 K b 5 K b SO - Prof. Edilberto Silva 27

Estratégias de Alocação Estratégias para Escolha da Partição: Essas estratégias tentam evitar, ou diminuir o problema da fragmentação antes que ele ocorra; Os sistemas operacionais adotam basicamente três estratégias para determinar em qual área livre um programa será carregado para execução: Best-fit Worst-fit First-fit A melhor estratégia depende de uma série de fatores, sendo o mais importante o tamanho dos programas processados; SO - Prof. Edilberto Silva 28

Estratégias de Alocação Estratégias para Escolha da Partição: Best-fit: esse mecanismo escolhe a melhor partição, ou seja, aquela em que o programa deixa o menor espaço sem utilização; Worst-fit: esse mecanismo escolhe a pior partição, ou seja, aquela em que o programa deixa o maior espaço sem utilização; First-fit: esse mecanismo escolhe a primeira partição livre, de tamanho suficiente para carregar o programa; SO - Prof. Edilberto Silva 29

Estratégias de Alocação Best-fit S i s t e m a O p e r a c i o n a l 4 K b M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l P r o g r a m a C ( a ) B e s t - f i t P r o g r a m P r o g r a m a C a A F 1 K b 5 K b P r o g r a m a F Á r e a l i v r e 2 K b P r o g r a m a A 3 K b SO - Prof. Edilberto Silva 30

Estratégias de Alocação Worst-fit M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l S i s t e m a O p e r a c i o n a l 4 K b F 1 K b 5 K b P r o g r a m a C ( b ) W o r s t - f i t P r o g r a m a C P r o g r a m a F Á r e a l i v r e 4 K b P r o g r a m a A P r o g r a m a A 3 K b SO - Prof. Edilberto Silva 31

Estratégias de Alocação First-fit M e m ó r i a P r i n c i p a l S i s t e m a O p e r a c i o n a l 4 K b S i s t e m a O p e r a c i o n a l P r o g r a m a F P r o g r a m a C Á r e a l i v r e 3 K b ( c ) F i r s t - f i t F 1 K b 5 K b P r o g r a m a C P r o g r a m a A 3 K b P r o g r a m a A SO - Prof. Edilberto Silva 32

Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível; O swapping é uma técnica aplicada à gerência de memória, para programas que esperam por memória livre para serem processados; Nessa situação, o sistema escolhe um programa residente, que é levado da memória para o disco (swap out), retornando posteriormente para a memória principal (swap in), como se nada tivesse ocorrido. SO - Prof. Edilberto Silva 33

Visão esquemática do swapping SO - Prof. Edilberto Silva 34

Swapping Um dos problemas gerados pelo swapping é a relocação dos programas; O loader permite que um programa seja colocado em qualquer posição da memória, porém a relocação é realizada no momento do carregamento; No caso de um programa que saia e volte muitas vezes para a memória é necessário que a relocação seja realizada pelo loader a cada carregamento; A melhor solução para esse problema é uma implementação no hardware dos computadores para permitir que a relocação seja realizada durante a execução do programa; SO - Prof. Edilberto Silva 35

Swapping Esse tipo de mecanismo é denominado relocação dinâmica e é realizada através de um registrador especial, denominado registrador de relocação; No momento em que o programa é carregado na memória, o registrador recebe o endereço inicial da região de memória que o programa irá ocupar; Toda vez que ocorrer uma referência a algum endereço, o endereço contido na instrução será somado ao conteúdo do registrador; Dessa forma, um programa pode ser carregado em qualquer região da memória. SO - Prof. Edilberto Silva 36

Swapping Relocação Dinâmica R e g i s t r a d o r d e R e l o c a ç ã o I n s t r u ç ã o E n d e r e ç o i n c i a l d a p a r t i ç ã o C ó d i g o d e o p e r a ç ã o E n d e r e ç o E n d e r e ç o d e m e m ó r i a SO - Prof. Edilberto Silva 37