SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
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

Apresentação de Montagem e Manutenção
Apresentação de Montagem e ManutençãoApresentação de Montagem e Manutenção
Apresentação de Montagem e ManutençãoCDP_Online
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria37193694
 
Hardware
HardwareHardware
Hardwareleiladb
 
Aula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresAula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresJorge Ávila Miranda
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: DeadlocksAlexandre Duarte
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosCarlos Eduardo Teruel
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Aula06 - Arquitetura e Manutenção de Computadores
Aula06 - Arquitetura e Manutenção de ComputadoresAula06 - Arquitetura e Manutenção de Computadores
Aula06 - Arquitetura e Manutenção de ComputadoresJorge Ávila Miranda
 

Mais procurados (20)

Apresentação de Montagem e Manutenção
Apresentação de Montagem e ManutençãoApresentação de Montagem e Manutenção
Apresentação de Montagem e Manutenção
 
Aula de hardware
Aula de hardwareAula de hardware
Aula de hardware
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria
 
Hardware
HardwareHardware
Hardware
 
Aula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresAula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de Computadores
 
Sistemas Operacionais e Mercado de Trabalho
Sistemas Operacionais e Mercado de TrabalhoSistemas Operacionais e Mercado de Trabalho
Sistemas Operacionais e Mercado de Trabalho
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Ac16 conjunto de instruções v2
Ac16   conjunto de instruções v2Ac16   conjunto de instruções v2
Ac16 conjunto de instruções v2
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Gerência de Processos: Deadlocks
Gerência de Processos: DeadlocksGerência de Processos: Deadlocks
Gerência de Processos: Deadlocks
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Sistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos BásicosSistemas Operacionais - Conceitos Básicos
Sistemas Operacionais - Conceitos Básicos
 
Aula 12 instalação de hardware
Aula 12 instalação de hardwareAula 12 instalação de hardware
Aula 12 instalação de hardware
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Aula06 - Arquitetura e Manutenção de Computadores
Aula06 - Arquitetura e Manutenção de ComputadoresAula06 - Arquitetura e Manutenção de Computadores
Aula06 - Arquitetura e Manutenção de Computadores
 

Destaque

Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)escoteirodabahia
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoriaJailson 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óriaMauro 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çãoEduardo 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çãoEduardo 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
 

Destaque (7)

Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
 
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

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 leopardoelliando dias
 
Componentes de Hardware
Componentes de HardwareComponentes de Hardware
Componentes de HardwareAdir Kuhn
 
Arquitetura de um computador
Arquitetura de um computadorArquitetura de um computador
Arquitetura de um computadorFilipe Duarte
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoriaCarlos 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 JaimeWalter Cunha
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadoressetilsonadobmov
 
Placa mãe e barramentos
Placa mãe e barramentosPlaca mãe e barramentos
Placa mãe e barramentosNeil Azevedo
 
(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17(ACH2044) Sistemas Operacionais - Aula 17
(ACH2044) Sistemas Operacionais - Aula 17Norton Trevisan Roman
 
Aula 3 barramentos de placa mae
Aula 3 barramentos de placa maeAula 3 barramentos de placa mae
Aula 3 barramentos de placa maeMarcos 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 ComputadoresGabriel Santos
 
Fundamento Hardware - Aula 005
Fundamento Hardware - Aula 005Fundamento Hardware - Aula 005
Fundamento Hardware - Aula 005Cláudio Amaral
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLRaul 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 slideselliando 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 ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando 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 Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando 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
 
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 Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
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 Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando 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 Facebookelliando 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 Studyelliando 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 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Último (9)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

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