SlideShare uma empresa Scribd logo
Gerenciamento de Memória
              Walter Fetter Lages
               w.fetter@ieee.org


   Universidade Federal do Rio Grande do Sul
             Escola de Engenharia
     Departamento de Engenharia Elétrica
      ENG04008 Sistemas de Tempo Real




                                          Copyright (c) Walter Fetter Lages – p.1
Introdução

•   Alocação e desalocação de memória
     • Estática
     • Dinâmica

•   Memória virtual
     • Overlay
     • Paginação

•   Segmentação de memória




                                        Copyright (c) Walter Fetter Lages – p.2
Sistemas Monotarefa
•   Um único programa na memória
     • O programa utiliza toda a memória
     • O programa deve ter todos os drivers de I/O

•   Divisão da memória entre o programa e o sistema
    operacional




                                      Copyright (c) Walter Fetter Lages – p.3
Sistemas Multitarefa
•   Partições fixas
     • Partições definidas manualmente pelo
       operador
     • Uma partição de tamanho suficiente é alocada
       para cada tarefa
     • Em geral, o número de tarefas > número de
       partições =>diversas politicas para utilização
       das partições
     • Uma fila de tarefas para cada partição
        • Uma fila única
        • Fila única com best-fit
        • Fila única com best-fit e máximo de
          skip-over
                                        Copyright (c) Walter Fetter Lages – p.4
Partições Fixas




                  Copyright (c) Walter Fetter Lages – p.5
Partições Variáveis

•   O tamanho das partições varia conforme a
    criação/destruição das tarefas
•   Fragmentação de memória
•   Compactação de memória
     • Consome muito tempo -> normalmente feito
        durante a alocação/desalocação de memória
        em sistemas não tempo real
•   Espaço para a memória das tarefas crescer
     • Alocação dinâmica de memória para dados




                                      Copyright (c) Walter Fetter Lages – p.6
Lay-out de Memória das Tarefas




                         Copyright (c) Walter Fetter Lages – p.7
Métodos de Gerenciamento
•   Bit-map
     • Memória dividida em unidades de alocação
     • Existe um bit-map para sinalizar se cada
        unidade de alocação está alocada ou livre
     • Procura por espaços livres não é eficiente




                                       Copyright (c) Walter Fetter Lages – p.8
Métodos de Gerenciamento
•   Listas ligadas
     • Existe uma lista ligada que relaciona os
       blocos de memória alocados e livres
     • Normalmente a lista é ordenada por endereço

•   Algoritmos de Alocação de memória
     • First-fit
     • Next-fit
     • Best-fit
     • Worst-fit
     • Quick-fit



                                      Copyright (c) Walter Fetter Lages – p.9
Métodos de Gerenciamento
•   Buddy System
     • Utiliza o fato dos endereços serem binários
     • Existe uma lista de blocos livres de tamanho
       1, 2, 4, 8 ... tamanho da memória
     • Ineficiente no uso da memória
     • Fragmentação interna




                                       Copyright (c) Walter Fetter Lages – p.10
Buddy System




               Copyright (c) Walter Fetter Lages – p.11
Relocação

•   Em sistemas multitarefa, cada tarefa terá um
    endereço inicial diferente. Como o
    programador/compilador/linker saberá o
    endereço inicial (e endereços de subrotinas,
    dados, etc...) da tarefa?
     • Problema da relocação
     • Gerar apenas código com endereços relativos
       • Código relocável
     • Relocação durante a carga da tarefa na
       memória



                                      Copyright (c) Walter Fetter Lages – p.12
Segmentação

•   Associa-se a cada área de memória um valor de
    base e um valor de limite
•   base=endereço inicial
•   limite=endereço máximo ou tamanho
•   Todas as tarefas são codificadas assumindo que a
    sua área de memória começa em 0
•   Quando a tarefa é selecionada para executar, base
    e limite são carregados em registradores especiais
    na CPU



                                        Copyright (c) Walter Fetter Lages – p.13
Segmentação

•   Endereço final = Offset + base
     • Soma feita por hardware a cada acesso à
       memória
•   Endereços são verificados quanto ao limite
     • Uma tarefa não pode acessar a área das outras




                                       Copyright (c) Walter Fetter Lages – p.14
Segmentação

•   O seletor e descritor de segmento são controlados
    pelo sistema operacional
•   O offset é controlado pelo programa de aplicação
•   Proteção
     • Usualmente o descritor de segmentos tem
       alguns bits associados que são utilizados para
       determinar as características de proteção do
       segmento
     • Permissões de leitura, escrita, execução

•   Cache de descritor de segmento
     • Evita dois acessos a memória
     • Alterado apenas quando o registrador de
       seletor de segmento é alterado   Copyright (c) Walter Fetter Lages – p.15
Segmentação no ix86

•   Local Descriptor Table (LDT)
•   Global Descriptor Table (GDT)




                                    Copyright (c) Walter Fetter Lages – p.16
GLDT e LDT




             Copyright (c) Walter Fetter Lages – p.17
Segmentação no ix86




                      Copyright (c) Walter Fetter Lages – p.18
Seletor de Segmento no ix86




                        Copyright (c) Walter Fetter Lages – p.19
Descritor de Segmento




                        Copyright (c) Walter Fetter Lages – p.20
Segmentação no 8086/8088

•   Processadores sem modo protegido
•   Sem proteção, não tem sentido a existência de
    permissões e limite no segmento
     • O descritor de segmento resume-se à base
     • Como os registradores são de 16 bits
       decidiu-se limitar o início de segmentos
       apenas alinhados com quot;parágrafosquot;
•   Segmentação mal implementada
     • O quot;tamanho máximoquot;do segmento é 64KB
     • O limite do segmento não é garantido
     • Na verdade é apenas um esquema para
       endereçar 1MB utilizando 2 registradores
                                       Copyright (c) Walter Fetter Lages – p.21
Segmentação no 8086/8088

•   Endereço físico=reg. de segmento * 16 + offset
•   Endereço físico=reg. de segmento « 4 + offset




                                       Copyright (c) Walter Fetter Lages – p.22
Memória Virtual



•   Paginação
     • Falta de
       página
     • Page-table

•   Endereço
     • Virtual
     • Físico




                           Copyright (c) Walter Fetter Lages – p.23
Tabela de Páginas




                    Copyright (c) Walter Fetter Lages – p.24
Hardware de Paginação

•   Usualmente a tabela de páginas é mantida em
    memória e não em registradores
     • Registrador de base da tabela de páginas
     • Translation look-aside buffer (TLB)
        • Evita dois acessos a memória
        • Memória associativa

•   Páginas também podem ter bits de proteção
    associados
     • Bit de presença/ausência




                                      Copyright (c) Walter Fetter Lages – p.25
Páginas de 4KB no ix86




                     Copyright (c) Walter Fetter Lages – p.26
Páginas de 4MB no ix86




                     Copyright (c) Walter Fetter Lages – p.27
Segmentação e Paginação no ix86




                          Copyright (c) Walter Fetter Lages – p.28
Proteção de Memória no ix86




                        Copyright (c) Walter Fetter Lages – p.29
Proteção de I/O no ix86

•   Existe um nível de privilégio de I/O
     • Apenas processos com nível de privilégio
       menor ou igual podem executar instruções de
       I/O
•   Associado a cada processo pode existir um
    bitmap de permissões de I/O
     • Apenas as portas habilitadas podem ser
       acessadas
•   Hardware Virtual
     • Virtualização de dispositivos




                                      Copyright (c) Walter Fetter Lages – p.30
Verificação de Privilégios




                        Copyright (c) Walter Fetter Lages – p.31
I/O Permission Bit Map




                     Copyright (c) Walter Fetter Lages – p.32

Mais conteúdo relacionado

Mais procurados

Arquitetura de Computadores: Evolução dos computadores
Arquitetura de Computadores: Evolução dos computadoresArquitetura de Computadores: Evolução dos computadores
Arquitetura de Computadores: Evolução dos computadores
Alex Camargo
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
PAULO Moreira
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
Hus Juky
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
Elaine Cecília Gatto
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadores
edlander
 
Exercícios PL/SQL
Exercícios PL/SQLExercícios PL/SQL
Exercícios PL/SQL
fernandomandarini
 
Aula 07 8 periféricos de um
Aula 07  8 periféricos de umAula 07  8 periféricos de um
Aula 07 8 periféricos de um
Marcos Basilio
 
Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo Servidor
Daniel Barros
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
Rodrigo Rodrigues
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
escoteirodabahia
 
Modelo OSI Visão Geral
Modelo OSI   Visão GeralModelo OSI   Visão Geral
Modelo OSI Visão Geral
André Nobre
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
Wellington Oliveira
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
Elaine Cecília Gatto
 
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Gustavo Zimmermann
 
Placa mãe (motherboard)
Placa mãe (motherboard)Placa mãe (motherboard)
Placa mãe (motherboard)
Thiago De Assis Azevedo
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
teacherpereira
 
Aula 12 - Processador
Aula 12 - ProcessadorAula 12 - Processador
Aula 12 - Processador
Suzana Viana Mota
 
Arquitetura interna do computador
Arquitetura interna do computadorArquitetura interna do computador
Arquitetura interna do computador
Andleloli
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
Vitor Hugo Melo Araújo
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
Gilvan Latreille
 

Mais procurados (20)

Arquitetura de Computadores: Evolução dos computadores
Arquitetura de Computadores: Evolução dos computadoresArquitetura de Computadores: Evolução dos computadores
Arquitetura de Computadores: Evolução dos computadores
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Sistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºanoSistemas operativos trabalho 10ºano
Sistemas operativos trabalho 10ºano
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadores
 
Exercícios PL/SQL
Exercícios PL/SQLExercícios PL/SQL
Exercícios PL/SQL
 
Aula 07 8 periféricos de um
Aula 07  8 periféricos de umAula 07  8 periféricos de um
Aula 07 8 periféricos de um
 
Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo Servidor
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
 
Modelo OSI Visão Geral
Modelo OSI   Visão GeralModelo OSI   Visão Geral
Modelo OSI Visão Geral
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
 
Placa mãe (motherboard)
Placa mãe (motherboard)Placa mãe (motherboard)
Placa mãe (motherboard)
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 
Aula 12 - Processador
Aula 12 - ProcessadorAula 12 - Processador
Aula 12 - Processador
 
Arquitetura interna do computador
Arquitetura interna do computadorArquitetura interna do computador
Arquitetura interna do computador
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 

Destaque

Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
Jailson Silva
 
Sistemas Operacionais 13 gerenciamento de memória
Sistemas Operacionais  13   gerenciamento de memóriaSistemas Operacionais  13   gerenciamento de memória
Sistemas Operacionais 13 gerenciamento de memória
Mauro Duarte
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e Alocação
Eduardo Nicola F. Zagari
 
SO-06 Gerenciamento de Memória: Paginação e Segmentação
SO-06 Gerenciamento de Memória: Paginação e SegmentaçãoSO-06 Gerenciamento de Memória: Paginação e Segmentação
SO-06 Gerenciamento de Memória: Paginação e Segmentação
Eduardo Nicola F. Zagari
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
Faculdade Mater Christi
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
Samira Magalhaes
 

Destaque (6)

Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Sistemas Operacionais 13 gerenciamento de memória
Sistemas Operacionais  13   gerenciamento de memóriaSistemas Operacionais  13   gerenciamento de memória
Sistemas Operacionais 13 gerenciamento de memória
 
SO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e AlocaçãoSO-05 Gerenciamento de Memória e Alocação
SO-05 Gerenciamento de Memória e Alocação
 
SO-06 Gerenciamento de Memória: Paginação e Segmentação
SO-06 Gerenciamento de Memória: Paginação e SegmentaçãoSO-06 Gerenciamento de Memória: Paginação e Segmentação
SO-06 Gerenciamento de Memória: Paginação e Segmentação
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 

Semelhante a Gerenciamento de Memória

Aula 05 instalação de hardware
Aula 05 instalação de hardwareAula 05 instalação de hardware
Aula 05 instalação de hardware
Jorge Ávila Miranda
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
elliando dias
 
Componentes de Hardware
Componentes de HardwareComponentes de Hardware
Componentes de Hardware
Adir Kuhn
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
Filipe Duarte
 
Placa-Mãe
Placa-Mãe Placa-Mãe
Placa-Mãe
Evandro Júnior
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoria
Carlos Melo
 
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Amostra   Resolucao da Prova Sefaz 2007   Prof JaimeAmostra   Resolucao da Prova Sefaz 2007   Prof Jaime
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Walter Cunha
 
1 conhecendo o pc
1 conhecendo o pc1 conhecendo o pc
1 conhecendo o pc
Sandra Minhós
 
Apresentacao Aula02 So
Apresentacao Aula02 SoApresentacao Aula02 So
Apresentacao Aula02 So
Humberto Bruno Pontes Silva
 
355862 slide12-mem virt
355862 slide12-mem virt355862 slide12-mem virt
355862 slide12-mem virt
Rafaelle Fidelix
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadores
setilsonadobmov
 
Hardware
HardwareHardware
Hardware
Jakson Silva
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentos
Neil Azevedo
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
Leonardo Medeiros Martins
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17
Norton Trevisan Roman
 
Aula 3 barramentos de placa mae
Aula 3 barramentos de placa maeAula 3 barramentos de placa mae
Aula 3 barramentos de placa mae
Marcos Basilio
 
Detecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de ComputadoresDetecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de Computadores
Gabriel Santos
 
Fundamento Hardware - Aula 005
Fundamento Hardware - Aula 005Fundamento Hardware - Aula 005
Fundamento Hardware - Aula 005
Cláudio Amaral
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
Boteco 4Linux
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQL
Raul Oliveira
 

Semelhante a Gerenciamento de Memória (20)

Aula 05 instalação de hardware
Aula 05 instalação de hardwareAula 05 instalação de hardware
Aula 05 instalação de hardware
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Componentes de Hardware
Componentes de HardwareComponentes de Hardware
Componentes de Hardware
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computador
 
Placa-Mãe
Placa-Mãe Placa-Mãe
Placa-Mãe
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoria
 
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Amostra   Resolucao da Prova Sefaz 2007   Prof JaimeAmostra   Resolucao da Prova Sefaz 2007   Prof Jaime
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
 
1 conhecendo o pc
1 conhecendo o pc1 conhecendo o pc
1 conhecendo o pc
 
Apresentacao Aula02 So
Apresentacao Aula02 SoApresentacao Aula02 So
Apresentacao Aula02 So
 
355862 slide12-mem virt
355862 slide12-mem virt355862 slide12-mem virt
355862 slide12-mem virt
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadores
 
Hardware
HardwareHardware
Hardware
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentos
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17
 
Aula 3 barramentos de placa mae
Aula 3 barramentos de placa maeAula 3 barramentos de placa mae
Aula 3 barramentos de placa mae
 
Detecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de ComputadoresDetecção de erros no computador-Arquitetura de Computadores
Detecção de erros no computador-Arquitetura de Computadores
 
Fundamento Hardware - Aula 005
Fundamento Hardware - Aula 005Fundamento Hardware - Aula 005
Fundamento Hardware - Aula 005
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQL
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
Ragel talkRagel talk
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Rango
RangoRango
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
2m Assessoria
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 

Último (10)

ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 

Gerenciamento de Memória

  • 1. Gerenciamento de Memória Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright (c) Walter Fetter Lages – p.1
  • 2. Introdução • Alocação e desalocação de memória • Estática • Dinâmica • Memória virtual • Overlay • Paginação • Segmentação de memória Copyright (c) Walter Fetter Lages – p.2
  • 3. Sistemas Monotarefa • Um único programa na memória • O programa utiliza toda a memória • O programa deve ter todos os drivers de I/O • Divisão da memória entre o programa e o sistema operacional Copyright (c) Walter Fetter Lages – p.3
  • 4. Sistemas Multitarefa • Partições fixas • Partições definidas manualmente pelo operador • Uma partição de tamanho suficiente é alocada para cada tarefa • Em geral, o número de tarefas > número de partições =>diversas politicas para utilização das partições • Uma fila de tarefas para cada partição • Uma fila única • Fila única com best-fit • Fila única com best-fit e máximo de skip-over Copyright (c) Walter Fetter Lages – p.4
  • 5. Partições Fixas Copyright (c) Walter Fetter Lages – p.5
  • 6. Partições Variáveis • O tamanho das partições varia conforme a criação/destruição das tarefas • Fragmentação de memória • Compactação de memória • Consome muito tempo -> normalmente feito durante a alocação/desalocação de memória em sistemas não tempo real • Espaço para a memória das tarefas crescer • Alocação dinâmica de memória para dados Copyright (c) Walter Fetter Lages – p.6
  • 7. Lay-out de Memória das Tarefas Copyright (c) Walter Fetter Lages – p.7
  • 8. Métodos de Gerenciamento • Bit-map • Memória dividida em unidades de alocação • Existe um bit-map para sinalizar se cada unidade de alocação está alocada ou livre • Procura por espaços livres não é eficiente Copyright (c) Walter Fetter Lages – p.8
  • 9. Métodos de Gerenciamento • Listas ligadas • Existe uma lista ligada que relaciona os blocos de memória alocados e livres • Normalmente a lista é ordenada por endereço • Algoritmos de Alocação de memória • First-fit • Next-fit • Best-fit • Worst-fit • Quick-fit Copyright (c) Walter Fetter Lages – p.9
  • 10. Métodos de Gerenciamento • Buddy System • Utiliza o fato dos endereços serem binários • Existe uma lista de blocos livres de tamanho 1, 2, 4, 8 ... tamanho da memória • Ineficiente no uso da memória • Fragmentação interna Copyright (c) Walter Fetter Lages – p.10
  • 11. Buddy System Copyright (c) Walter Fetter Lages – p.11
  • 12. Relocação • Em sistemas multitarefa, cada tarefa terá um endereço inicial diferente. Como o programador/compilador/linker saberá o endereço inicial (e endereços de subrotinas, dados, etc...) da tarefa? • Problema da relocação • Gerar apenas código com endereços relativos • Código relocável • Relocação durante a carga da tarefa na memória Copyright (c) Walter Fetter Lages – p.12
  • 13. Segmentação • Associa-se a cada área de memória um valor de base e um valor de limite • base=endereço inicial • limite=endereço máximo ou tamanho • Todas as tarefas são codificadas assumindo que a sua área de memória começa em 0 • Quando a tarefa é selecionada para executar, base e limite são carregados em registradores especiais na CPU Copyright (c) Walter Fetter Lages – p.13
  • 14. Segmentação • Endereço final = Offset + base • Soma feita por hardware a cada acesso à memória • Endereços são verificados quanto ao limite • Uma tarefa não pode acessar a área das outras Copyright (c) Walter Fetter Lages – p.14
  • 15. Segmentação • O seletor e descritor de segmento são controlados pelo sistema operacional • O offset é controlado pelo programa de aplicação • Proteção • Usualmente o descritor de segmentos tem alguns bits associados que são utilizados para determinar as características de proteção do segmento • Permissões de leitura, escrita, execução • Cache de descritor de segmento • Evita dois acessos a memória • Alterado apenas quando o registrador de seletor de segmento é alterado Copyright (c) Walter Fetter Lages – p.15
  • 16. Segmentação no ix86 • Local Descriptor Table (LDT) • Global Descriptor Table (GDT) Copyright (c) Walter Fetter Lages – p.16
  • 17. GLDT e LDT Copyright (c) Walter Fetter Lages – p.17
  • 18. Segmentação no ix86 Copyright (c) Walter Fetter Lages – p.18
  • 19. Seletor de Segmento no ix86 Copyright (c) Walter Fetter Lages – p.19
  • 20. Descritor de Segmento Copyright (c) Walter Fetter Lages – p.20
  • 21. Segmentação no 8086/8088 • Processadores sem modo protegido • Sem proteção, não tem sentido a existência de permissões e limite no segmento • O descritor de segmento resume-se à base • Como os registradores são de 16 bits decidiu-se limitar o início de segmentos apenas alinhados com quot;parágrafosquot; • Segmentação mal implementada • O quot;tamanho máximoquot;do segmento é 64KB • O limite do segmento não é garantido • Na verdade é apenas um esquema para endereçar 1MB utilizando 2 registradores Copyright (c) Walter Fetter Lages – p.21
  • 22. Segmentação no 8086/8088 • Endereço físico=reg. de segmento * 16 + offset • Endereço físico=reg. de segmento « 4 + offset Copyright (c) Walter Fetter Lages – p.22
  • 23. Memória Virtual • Paginação • Falta de página • Page-table • Endereço • Virtual • Físico Copyright (c) Walter Fetter Lages – p.23
  • 24. Tabela de Páginas Copyright (c) Walter Fetter Lages – p.24
  • 25. Hardware de Paginação • Usualmente a tabela de páginas é mantida em memória e não em registradores • Registrador de base da tabela de páginas • Translation look-aside buffer (TLB) • Evita dois acessos a memória • Memória associativa • Páginas também podem ter bits de proteção associados • Bit de presença/ausência Copyright (c) Walter Fetter Lages – p.25
  • 26. Páginas de 4KB no ix86 Copyright (c) Walter Fetter Lages – p.26
  • 27. Páginas de 4MB no ix86 Copyright (c) Walter Fetter Lages – p.27
  • 28. Segmentação e Paginação no ix86 Copyright (c) Walter Fetter Lages – p.28
  • 29. Proteção de Memória no ix86 Copyright (c) Walter Fetter Lages – p.29
  • 30. Proteção de I/O no ix86 • Existe um nível de privilégio de I/O • Apenas processos com nível de privilégio menor ou igual podem executar instruções de I/O • Associado a cada processo pode existir um bitmap de permissões de I/O • Apenas as portas habilitadas podem ser acessadas • Hardware Virtual • Virtualização de dispositivos Copyright (c) Walter Fetter Lages – p.30
  • 31. Verificação de Privilégios Copyright (c) Walter Fetter Lages – p.31
  • 32. I/O Permission Bit Map Copyright (c) Walter Fetter Lages – p.32