38
ENGENHARIA DE SISTEMAS MICROPROCESSADOS PROF. PIERRE VILAR DANTAS AULA 09 – 25/10/2017 TURMA: 0040-A HORÁRIO: 4N PIERREDANTASBLOG.WORDPRESS.COM 1

ENGENHARIA DE SISTEMAS MICROPROCESSADOS · A estratégia conta com alocação de dirty blocks para a memória secundária e de clean blocks para a principal. 24. Algoritmos de alocação

Embed Size (px)

Citation preview

ENGENHARIA DE SISTEMAS MICROPROCESSADOSPROF. P I ERRE V I LAR DANTAS

A U L A 0 9 – 2 5 / 1 0 / 2 0 1 7

TURMA: 0040 -A

HORÁR IO : 4N

P IERREDANTASBLOG .WORDPRESS .COM

1

Objetivos da Aula§Conhecer conceitos de organização de memória de sistemasmicrocontrolados.

2

Organização de MemóriaP R I N C I P A L R E F E R Ê N C I A D E S T A A U L A : HTTP : / /DASE . I FPE .EDU .BR/~ALSM

3

Roteiro§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

4

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.

5

Hierarquia de Memória

Sistemas computacionais só tem ganhos de performance se as memórias apresentarem velocidade, preços e tamanhos diferentes.

ProcessadorProcessador MemóriaPrincipal

MemóriaPrincipal

MemóriaSecundáriaMemória

Secundária

ProcessadorProcessador CacheCache MemóriaPrincipal

MemóriaPrincipal Memória

SecundáriaMemória

Secundária

Memória de 2 níveis

Memória de 3 níveis

6

Relação de Custo X Velocidade X Tamanho

7

Hierarquia de Memória

6

8

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.

9

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;

10

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!

11

Gerenciamento – Memória Virtual

0x00000000

0xFFFFFFFF

Physical address space

RAM 0

RAM 1

Flash

I/O memory 1

I/O memory 2

I/O memory 3

MMU

MemoryManagement

Unit

CPU

Virtual address spaces0xFFFFFFFFF

0x00000000

Kernel0xFFFFFFFF

0x00000000

Process1

0xFFFFFFFF

0x00000000

Process2All the processes have their own virtual address space, and run as if they had access to the whole address space.

0xC0000000

0xC0000000Kernel

Fonte: FreeElectrons – France, 2009

12

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.

13

Gerenciamento – Memória Virtual

processador

memória virtual

mapeador

memória física

endereçovirtual

endereçofísico

14

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?”

15

Memória Virtual e Memória Secundária

Solução:Computador enxergar tudo como uma grande memória 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 namemória física (usa o mecanismo chamado de swap out).

ProcessadorProcessador MemóriaPrincipal

MemóriaPrincipal

MemóriaSecundáriaMemória

Secundária

GerenciadorMemóriaVirtual

GerenciadorMemóriaVirtual

16

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

17

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.

Dessa forma o número de acessos a memória principal é muito maior que na memória secundária

Frequênciade acesso

Espaço de endereçamento

18

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!)

19

Concentração de referências

Existe um problema:

Se toda a memória principal estiver ocupada, onde colocar o novo bloco?

20

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.

21

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?

22

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;

Preemptivos;Não preemptivos;

Quanto?Depende da arquitetura e do sistema de memória.

23

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.

24

Algoritmos de alocação dinâmicaAlocaçã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.

25

Estrutura de memória virtual

Endereço lógicode bloco deslocamento Endereço físico

de bloco deslocamento

Reg base do mapa

MAPA DE MEMÓRIA ENDEREÇO DO BLOCOSE A PÁGINA ESTÁPRESENTE

Ponteiro paramemória secundáriase a página não estápresente

Endereço do blocoou ponteiro

Bits de controle

endereço virtual endereço físico

26

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.

27

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.

28

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;

29

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

30

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çoSe 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

31

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?

32

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.

33

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.

34

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 suaestrutura de memória tem células de 16 bits.

35

A capacidade da MP em bits é igual ao produto do nº de células pelo total de bits por célula.

T = N x MT = capacidade da memória em bitsN = nº de endereços (como vimos anteriormente, N=2x sendo x = nº de bits do

endereço)M = nº de bits de cada célula

Para encontrar a capacidade em bytesEncontrar 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).

36

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.

37

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 possuium barramento de dados de 16 bits. Pede-se:

a) o tamanho da célula de memória;

38