Arquitetura de Computadores



Documentos relacionados
Introdução à Informática. Alexandre Meslin

Subsistema de Memória. Aleardo Manacero Jr.

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Aula 09. Gerenciamento de Memória Virtual Paginação. Capítulo 10 PLT Pág Gerenciamento de Memória Virtual

Memórias Cache. Memória

Fundamentos de Arquitetura e Organização de Computadores

Gerência de Memória. Algoritmos de Substituição de Páginas

MATA49 Programação de Software Básico

Informática Aplicada

Sistemas Operacionais

Gerenciamento de Memória Minix 3.1.7

Arquitectura interna de um computador

Arquitetura de Computadores EL66C 1a. Prova - Gabarito 26/04/10

Sistemas Opera r cionais Gerência de Memória

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Resumo. l Hierarquia de Armazenamento l Discos Magnéticos l Mapeamento de Endereços l Tempos de Acesso l Exemplos l Referências

Hierarquia de Memória

Gerência de memória III

Linux e Computação Científica

Gerenciamento de Memória

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

Oganização e Arquitetura de Computadores

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Introdução. Hardware (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. joseana@computacao.ufcg.edu.

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Fundamentos de Sistemas Operacionais

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

Gerência de Memória. Gerência de Memória Introdução e Particionamento. Novo capítulo. Aulas anteriores. Plano da aula. Memória lógica & física

Organização e Arquitetura de Computadores I

Introdução a Programação Aula 01

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

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Estrutura de um Computador

SSC0640 Sistemas Operacionais I

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

O Sistema de Computação

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

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

Figura 8: modelo de Von Neumann

Arquitetura TCP/IP. Apresentado por: Ricardo Quintão

Memória. Memória Secundária

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

1. Estrutura de Dados

CURSO TÉCNICO EM INFORMÁTICA SISTEMAS OPERACIONAIS II MEMÓRIA VIRTUAL

Histórico e Evolução da Computação

Redes de Computadores

Organização e Arquitetura de Computadores I

Gerência de memória II

SSC0640 Sistemas Operacionais I

COMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD:

VII - Gerenciamento de Memória

Memórias cache. Tópicos. João Canas Ferreira Tópicos de Arquitectura de Computadores. 1 Aspectos elementares

Objetivos. Arquitetura x86. Evolução dos Microprocessadores com arquitetura x86. Universidade São Judas Tadeu. Introdução à Computação

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

AULA 3 Alocação dinâmica de memória: Ponteiros

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores - Módulos de E/S. por Helcio Wagner da Silva

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

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

Arquitetura e Organização de Computadores. Profa. Débora Matos

Aula 06. Slots para Memórias

Arquitetura e Organização de Computadores

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

Conceitos e Gerenciamento de Memória

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 03

Algoritmos APRENDENDO A PROGRAMAR COM C#

Organização e Arquitetura de Computadores

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Sistemas Operacionais

LABORATÓRIO DE PERÍCIA DIGITAL

GERENCIAMENTO DE MEMÓRIA

Organização e Arquitetura de Computadores I

Organização de Arquivos

O que é a memória? Analogia: Biblioteca. Para que serve a biblioteca / bibliotecária?

Sistemas Operacionais

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

Arquitetura de Computadores. Hierarquia de Memória. Prof. Msc. Eduardo Luzeiro Feitosa

Entrada e Saída Transmissão Serial e Paralela

Sistemas Operacionais. Gerenciamento de Memória

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

Projetando um Computador

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Gerenciamento de Memória

6 de Maio de Aula 16

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Organização e Arquitetura de computadores

Organização e Arquitetura de Computadores

AULA 14 - Memória Virtual

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

Projetando um Computador Parte II Arquitetura do Processador BIP

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

HARDWARE INFORMÁTICA. Prof.: MARCIO HOLLWEG

Arquitectura de Computadores (ACom)

Structural Patterns - Proxy

Avaliação e Desempenho Aula 1 - Simulação

Transcrição:

Arquitetura de Computadores Organização de Memória Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br Copyright 2010, IFPE. Creative Commons BY-SA 3.0 license Latest update: 12 de Abr de 2011, Document sources, updates: http://dase.ifpe.edu.br/~alsm 1

Agenda Hierarquia de memória; Gerenciamento de memória virtual; Memória Virtual e memória secundaria; Medidas de desempenho; Algoritmos de alocação; Estrutura de memória virtual; Segmentação e Paginação; Exercícios. 2

Hierarquia de Memória A grande maioria dos sistemas tem memórias rápidas e lentas ao mesmo tempo: O sistema pode ser: Extremamente caro; Insuportavelmente lento; Um sistema de computação pode ser suprido por uma hierarquia de memórias: Mais rápidas mais próximas ao processador (menor capacidade); Mais lentas usadas para armazenar dados e instruções que não estão sendo utilizadas (maior quantidade) Divisão de memórias em hierarquias cria um sistema de desempeno próximo ao da memória mais rápida e custo por byte próximo ao da memória de menor custo. 3

Hierarquia de Memória Sistemas computacionais só tem ganhos de performance se as memórias apresentarem velocidade, preços e tamanhos diferentes. Processador Memória Memória Principal Principal Memória Memória Secundária Memória de 2 níveis Processador Processador Cache Cache Memória Memória Principal Principal Memória Memória Secundária Secundária Memória de 3 níveis 4

Relação de Custo X Velocidade X Tamanho 5

Hierarquia de Memória 6

Observações Memória Secundária: Geralmente memória de disco magnético; Memória Principal e Cache: Geralmente memórias monolíticas (semicondutoras); Até pouco tempo atrás esse tipo de memória eram compostas por núcleos magnéticas de ferrite. 7

Gerenciamento Para que o processador disponha da informação certa no momento necessário, o sistema deve ser suprido de mecanismos que mantenham a organização; Esses mecanismos são: Gerenciadores de memória cache; Desenvolvido em hardware; Gerenciadores de memória virtual; Suportado pelo hardware mas implementado em software; 8

Gerenciamento Memória Virtual Usado quando a capacidade de endereçamento de um processador não corresponde a quantidade de memória principal instalada; Os endereços que o processador gera não são endereços reais mas ponteiros para uma abstração de memória; Atenção! Abstrações não armazenam dados! Endereços gerados devem ser mapeados na memória física disponível. O espaço de endereçamento lógico de um computador pode ser: Menor; Igual; Maior que a memória física instalada! 9

Gerenciamento Memória Virtual Physical address space Virtual address spaces 0xFFFFFFFF I/O memory 3 0xFFFFFFFFF 0xFFFFFFFF 0xC0000000 Kernel I/O memory 2 I/O memory 1 Memory Management Unit 0x00000000 Process1 0x00000000 Flash MMU CPU RAM 1 RAM 0 All the processes have their own virtual address space, and run as if they had access to the whole address space. 0xFFFFFFFF 0xC0000000 Process2 0x00000000 Kernel 0x00000000 Fonte: FreeElectrons France, 2009 10

Gerenciamento Memória Virtual 1º Caso (menor) O exemplo de segmento de memória do 8086. Endereçar 64 KB em 1 MB: Escolhe uma janela (segmento) na memória principal e usa o endereço lógico como um ponteiro para essa janela; 2º Caso (igual) Trivial. O endereço lógico é igual a memória física disponível, portanto a alocação é direta; 3º Caso (maior) Mapeamento é feito, escolhendo porções ou blocos de memória virtual e espelhando-a na memória física disponível: Observar figura a seguir. 11

Gerenciamento Memória Virtual memória virtual endereço virtual processador endereço físico mapeador memória física 12

Memória Virtual e Memória Secundária Memória virtual está muito dependente da memória secundária; A memória secundária armazena uma imagem completa da memória virtual. Pergunta: Se a memória secundária tem uma imagem completa da memória virtual, por que não esquece a memória principal e trabalha diretamente com a memória secundária? 13

Memória Virtual e Memória Secundária Solução: Computador enxergar tudo como uma grande memória virtual. Processador Memória Memória Principal Principal Memória Memória Secundária Gerenciador Memória Memória Virtual Virtual Enquanto as porções de memória virtual sendo usadas forem encontradas na memória principal, não existe problema. Porém se o processador precisar de mais dados do que a encontrada na memória física (usa o mecanismo chamado de swap out). 14

Memória Virtual e Memória Secundária Sistema funciona bem se a grande maioria dos dados estiverem disponíveis e pouquíssimos acessos forem feitos na memória secundária; Caso isso precise ser refeito usa-se o locality of reference (concentração de referências): Referências sucessivas e frequentes a localização restritas 15

Concentração de referências Programas tendem a concentrar-se em pequenas regiões dentro do espaço de endereçamento disponível a cada intervalo de tempo. Frequência de acesso Espaço de endereçamento Dessa forma o número de acessos a memória principal é muito maior que na memória secundária 16

Concentração de referências Razões para esse mecanismo existir: Programas são escritos de forma sequencial, e as próximas instruções a serem executadas estão normalmente na vizinhança da instrução corrente; Programas apresentam laços, que geralmente são curtos e suas instruções são executadas um grande número de vezes; Dados também são organizados sequencialmente (vetores e tabelas); Variáveis de controle do programa são geralmente em pequeno número e acessadas frequentemente. Essa técnica também justifica-se pois usa o seguinte método de atualização caso um dado ou instrução não é encontrado na memória principal: aloca um novo bloco da secundária para principal (grande chances de encontrar!) 17

Concentração de referências Existe um problema: Se toda a memória principal estiver ocupada, onde colocar o novo bloco? 18

Medidas de Desempenho Parâmetro mais comuns para medir desempenho em VM: Custo médio por bit de armazenamento: obtido somando o custo da memória principal e secundária usando imagem da memória virtual e dividindo pelo total de número de bits; Taxa de acertos (hit ratio): probabilidade que um endereço lógico gerado pelo processador refira-se a informação armazenada na memória principal; Tempo de acesso médio: altamente dependente da taxa de acertos, quanto maior a taxa de acertos mais o tempo de acesso a memória virtual aproxima-se do tempo de acesso à memória principal; Utilização de memória: como a memória principal é muito menor que a virtual é essencial que ela seja bem utilizada, ou seja, não deve apresentar espaços vazios ou blocos inúteis. 19

Blocos e movimentação de blocos (swapping) Problemas envolvidos na movimentação de blocos em sistemas de VM: Quando os blocos devem ser movimentados? Onde colocar um novo bloco transferido para a memória principal? Qual o tamanho ideal de um bloco? 20

Blocos e movimentação de blocos (swapping) Quando? Geralmente por demanda; Inicia-se a movimentação de blocos sempre que um dado requerido não estiver disponível na memória principal; Onde? Definido pela política de alocação; Alocação estática; Alocação dinâmica; Quanto? Preemptivos; Não preemptivos; Depende da arquitetura e do sistema de memória. 21

Algoritmos de alocação dinâmica Alocação preemptiva: Realocando blocos ocupados para novas posições; Blocos já alocados na memória principal podem ser deslocados para abrirem um espaço suficientemente grande para abrigar um novo; Uma ou mais regiões ocupadas pode se tornar disponível, deslocando os blocos que a ocupam. A estratégia conta com alocação de dirty blocks para a memória secundária e de clean blocks para a principal. 22

Algoritmos de alocação dinâmica Alocação não-preemptivas: Alocação pode ser feita por blocos de tamanho fixo, pesquisando um espaço (page) na memória livre e assinala-a assim que encontra; Outras técnicas são a best fit e a first fit. Compactação de memória (garbage collection) Alocar os blocos na memória principal de forma a não ficar com espaços vazios entre os blocos e geralmente nas extremidades da memória; Desvantagem: muito tempo na movimentação dos blocos de um lado a outro da memória. Substituição de blocos: Usa a replacement policy, em que maximiza a taxa de acertos de um determinado dado na memória; Quando não encontra um dado na memória aparece o conhecido memory fault. 23

Estrutura de memória virtual endereço virtual endereço físico Endereço lógico de bloco deslocamento Endereço físico de bloco deslocamento Reg base do mapa MAPA DE MEMÓRIA ENDEREÇO DO BLOCO SE A PÁGINA ESTÁ PRESENTE Bits de controle Endereço do bloco ou ponteiro Ponteiro para memória secundária se a página não está presente 24

Mapa de memória É essencial para alocação de blocos na VM para a física; Pode ser implementado em: Registradores de alta velocidade; Memória especial; Memória principal; Ou combinação de todas. Informações contidas: Lista do espaço ocupado; Lista do espaço livre; Diretória da memória secundária. 25

Segmentos e páginas Blocos de memórias podem ser organizados das duas maneiras; Segmentos são blocos de palavras sequenciais logicamente relacionados (subrotinas, pilha, matriz, etc...). Possuem tamanho variável e possui alto coesão; Página é um bloco de palavras de tamanho fixo sem respeitar coesão lógica alguma; Para algoritmos de alocação e substituição a única diferença relevante entre os dois modelos é relacionado ao tamanho que pode ser fixo ou variável. 26

Segmentação (1) Um programa é visto como uma coleção de segmentos e suas ligações; Por possuir coesão lógica é interesse do sistema manter todo um segmento na memória principal; O mapa de memória que assinala endereços físicos na memória principal aos segmentos é chamado de tabela de segmentos; Os elementos dessa tabela: Identificação do segmento; Bit de presença P; P=1 se o segmento está na memória principal; P=0 se o segmento não está presente. Tamanho do segmento; 27

Segmentação (2) Campo de endereço; Se P=1 contém o endereço inicial na memória principal; Se P=0 contém o endereço do segmento a memória secundária; Controle 28

Paginação (1) Associação das páginas a locais na memória chamados de frames; Principal vantagem é poder assinalar qualquer página a um frame sem ter necessidade de procurar um espaço apropriado; O mapa de memória é chamado de tabela de páginas; Elementos; Identificação da página; Bit de presença P; P=1 se a página está na memória principal; P=0 se a página não está presente. Campo de endereço Se P=1 contém a identificação do frame ocupado; Se P=0 contém o endereço da página na memória secundária. Controle 29

Paginação (2) Uma tabela de páginas não contém a identificação do tamanho; A principal desvantagem da paginação: Não respeitam a coesão lógica dos programas e suas fronteiras; Principal vantagem; Fácil de gerenciamento e implementação. Mas afinal qual o melhor modelo? Segmentação ou paginação? 30

Sumário e Pontos Importantes (1) A memória precisa ter uma organização que permita ao computador guardar e recuperar informações quando necessário. Portanto, não basta transferir informações para a memória. É preciso ter como encontrar essa informação mais tarde, quando ela for necessária. Necessidade de um mecanismo. Célula: é a unidade de armazenamento do computador. A memória principal é organizada em células. Célula é a menor unidade da memória que pode ser endereçada (não é possível buscar uma "parte" da célula) e tem um tamanho fixo (para cada máquina). As memórias são compostas de um determinado número de células ou posições. Cada célula é composta de um determinado número de bits. Todas as células de um dado computador têm o mesmo tamanho, isto é, todas as células daquele computador terão o mesmo número de bits. 31

Sumário e Pontos Importantes (2) Cada célula é identificada por um endereço único, pela qual é referenciada pelo sistema e pelos programas. As células são numeradas seqüencialmente, uma a uma, de 0 a (N-1), chamado o endereço da célula. Endereço: é o localizador da célula, que permite identificar univocamente uma célula. Assim, cada célula pode ser identificada pelo seu endereço. 32

Sumário e Pontos Importantes (3) Unidade de transferência é a quantidade de bits que é transferida da memória em uma única operação de leitura ou transferida para a memória em uma única operação de escrita. O tamanho da célula poderia ser igual ao da palavra, e também à unidade de transferência, porém por razões técnicas e de custo, são freqüentemente diferentes. OBS.: Uma célula não significa o mesmo que uma palavra; uma célula não necessariamente contém uma palavra. Palavra: é a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instrução, que poderia ser processada, armazenada ou transferida em uma única operação. Computadores comerciais (tais como por exemplo, os baseados nos processadores Intel 486) podem ter o tamanho da palavra definido como de 32 bits, porém sua estrutura de memória tem células de 16 bits. 33

A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula. T = N x M T = capacidade da memória em bits N = nº de endereços (como vimos anteriormente, N=2 x sendo x = nº de bits do endereço) M = nº de bits de cada célula Para encontrar a capacidade em bytes Encontrar a capacidade em bits e depois multiplicar por 8 (cada byte contém 8 bits) ou então converter o tamanho da célula para bytes e depois multiplicar pelo número de células. O último endereço na memória é o endereço N-1 ( os endereços começam em zero e vão até N-1). 34

Exercícios (1) Faça um comparativo dos dois modelos de alocação de blocos (segmentação e paginação) levando em consideração: Fragmentação externa; Fragmentação interna; Procure informações referentes a Segmentação paginada. 35

Exercícios (2) 1) Numa MP com 1 kbyte de capacidade, onde cada célula tem 8 bits: a) quantas células tem a MP? b) quantos bits são necessários para representar um endereço de memória? 2) Um computador endereça 1k células de 16 bits cada uma. Pede-se: a) sua capacidade de memória; b) o maior endereço que o computador pode endereçar; 3) A memória de um computador tem capacidade de armazenar 216 bits e possui um barramento de dados de 16 bits. Pede-se: a) o tamanho da célula de memória; 36

Bibliografia Arquitetura de Computadores Pessoais, Raul Weber, 2ª edição; Arquitetura de Computadores, Andrew S. Tannembaum, 8ª edição; Fundamentos de Arquitetura de Computadores, Saib e Weber, 4ª edição; 37