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

Técnicas de detecção de avarias
Técnicas de detecção de avariasTécnicas de detecção de avarias
Técnicas de detecção de avariasAndre Santos
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorEdgar Costa
 
Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria37193694
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do softwareIvan Ricarte
 
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 operativos ficha formativa nº3 - resolução
Sistemas operativos   ficha formativa nº3 - resoluçãoSistemas operativos   ficha formativa nº3 - resolução
Sistemas operativos ficha formativa nº3 - resoluçãoteacherpereira
 
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
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadoresedlander
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Cleber Ramos
 
Ppt conhecendo o windows 7
Ppt conhecendo o windows 7Ppt conhecendo o windows 7
Ppt conhecendo o windows 7Eduardo Sena
 
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 ComputadoresWellington Oliveira
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dosteacherpereira
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Helder Lopes
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualMauro Melo
 

Mais procurados (20)

Sistema windows 10
Sistema windows 10Sistema windows 10
Sistema windows 10
 
Técnicas de detecção de avarias
Técnicas de detecção de avariasTécnicas de detecção de avarias
Técnicas de detecção de avarias
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/Servidor
 
Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do software
 
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)
 
Placa mãe (motherboard)
Placa mãe (motherboard)Placa mãe (motherboard)
Placa mãe (motherboard)
 
Sistemas operativos ficha formativa nº3 - resolução
Sistemas operativos   ficha formativa nº3 - resoluçãoSistemas operativos   ficha formativa nº3 - resolução
Sistemas operativos ficha formativa nº3 - resolução
 
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
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadores
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Pipeline Técnica de processadores.
Pipeline Técnica de processadores.Pipeline Técnica de processadores.
Pipeline Técnica de processadores.
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 
Ppt conhecendo o windows 7
Ppt conhecendo o windows 7Ppt conhecendo o windows 7
Ppt conhecendo o windows 7
 
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
 
Sistemas operativos módulo2 - ms dos
Sistemas operativos   módulo2 -  ms dosSistemas operativos   módulo2 -  ms dos
Sistemas operativos módulo2 - ms dos
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
 
Windows x Linux
Windows x LinuxWindows x Linux
Windows x Linux
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 

Semelhante a Gerenciamento de Memória no ix86

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
 
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 no ix86 (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
 
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
 
Aula 07 instalação de hardware
Aula 07 instalação de hardwareAula 07 instalação de hardware
Aula 07 instalação de hardware
 

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
 

Gerenciamento de Memória no ix86

  • 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