28
Arquitetura de Computadores Ricardo de Sousa Britto

Arquitetura de Computadores Ricardo de Sousa Britto

Embed Size (px)

Citation preview

Page 1: Arquitetura de Computadores Ricardo de Sousa Britto

Arquitetura de Computadores

Ricardo de Sousa Britto

Page 2: Arquitetura de Computadores Ricardo de Sousa Britto

Motivação

Sistema de Memória virtual por paginação é unidimensional.

Problema: Estruturas de dados dinâmicas (pilhas, tabelas de símbolos ...) podem encostar umas nas outras.

Solução: Dividir a memória em segmentos Segmentos: Espaços de endereçamento

unidimensionais independentes de tamanho variável

SEGMENTAÇÃO

Page 3: Arquitetura de Computadores Ricardo de Sousa Britto

Motivação

SEGMENTAÇÃO

Page 4: Arquitetura de Computadores Ricardo de Sousa Britto

Motivação

SEGMENTAÇÃO

Page 5: Arquitetura de Computadores Ricardo de Sousa Britto

Funcionamento

A memória é organizada de forma bidimensional.

Um segmento armazena apenas um tipo de estrutura de dados e não é transparente para o usuário.

Permite manipular de forma independente estruturas dinâmicas.

SEGMENTAÇÃO

Page 6: Arquitetura de Computadores Ricardo de Sousa Britto

Funcionamento

Segmentos diferentes podem ter diferentes tipos de proteção.

Procedimentos podem ser armazenados em segmentos distintos.

Se um procedimento for modificado, nenhum outro precisa ser modificado.

Procedimentos podem ser compartilhados por processos paralelos.

SEGMENTAÇÃO

Page 7: Arquitetura de Computadores Ricardo de Sousa Britto

Segmentção X Paginação

SEGMENTAÇÃO

Page 8: Arquitetura de Computadores Ricardo de Sousa Britto

Implementação

Existem duas formas de se implementar segmentação:– Swapping– Paginação

SEGMENTAÇÃO

Page 9: Arquitetura de Computadores Ricardo de Sousa Britto

Segmentação por Swapping

Semelhante a paginação por demanda. Memória armazena conjunto de segmentos

de tamanho variável. Problema: geração de buracos =

Fragmentação externa Solução: Compactação, Best fit, First fit,

Compensação de Buracos.

SEGMENTAÇÃO

Page 10: Arquitetura de Computadores Ricardo de Sousa Britto

Segmentação por Swapping

SEGMENTAÇÃO

Page 11: Arquitetura de Computadores Ricardo de Sousa Britto

Segmentação por Swapping

SEGMENTAÇÃO

Page 12: Arquitetura de Computadores Ricardo de Sousa Britto

Compactação

Mover todos os segmentos que estiverem acima de um buraco de modo a ocupar-lo

Duas abordagens: Compactar quando aparece um buraco ou quando tem um quantidade determinada

Desvantagem: Gasta muito tempo para ser executada

SEGMENTAÇÃO

Page 13: Arquitetura de Computadores Ricardo de Sousa Britto

Best Fit

Colocar um novo segmento na memória de forma a deixar a menor folga possível

Evita que buracos grandes sejam transformados em buracos menores

Deve-se manter uma lista de buracos, contendo o endereço e tamanho deles

SEGMENTAÇÃO

Page 14: Arquitetura de Computadores Ricardo de Sousa Britto

First Fit

Deve-se manter uma lista de buracos, contendo o endereço e tamanho deles

Fica-se percorrendo a lista até encontrar um buraco suficientemente grande

Mais rápido que o best fit

SEGMENTAÇÃO

Page 15: Arquitetura de Computadores Ricardo de Sousa Britto

Compensação de Buracos

Ao retirar um segmento vizinho a um buraco, cria-se um buraco maior formado pela soma do velho e do espaço novo

Deve-se manter uma lista de buracos, contendo o endereço e tamanho deles

Pode ser utilizado juntamente com o best fit e o first fit

SEGMENTAÇÃO

Page 16: Arquitetura de Computadores Ricardo de Sousa Britto

Segmentação por Paginação

Segmentos são divididos em um conjunto de páginas

Páginas são carregadas por demanda na memória principal

Em um dado momento, algumas páginas de um segmento podem estar na memória principal e outras na memória virtual

É necessário manter uma tabela de páginas pra cada segmento

SEGMENTAÇÃO

Page 17: Arquitetura de Computadores Ricardo de Sousa Britto

Segmentação por Paginação

SEGMENTAÇÃO

Page 18: Arquitetura de Computadores Ricardo de Sousa Britto

Motivação

Alguns algoritmos podem ser mais bem programados se forem implementados por meio de 2 ou mais processos cooperantes

Outros algoritmos podem ser divididos em várias partes, de forma a serem executadas em paralelo

MULTIPROGRAMAÇÃO

Page 19: Arquitetura de Computadores Ricardo de Sousa Britto

Paralelismo Real X Paralelismo Simulado

Paralelismo real: processos rodam em pc com mais de um processador ou roda em vários pcs

Paralelismo simulado: processos compartilham um mesmo pc, sendo escalonados pelo SO

MULTIPROGRAMAÇÃO

Page 20: Arquitetura de Computadores Ricardo de Sousa Britto

Paralelismo Real X Paralelismo Simulado

MULTIPROGRAMAÇÃO

Page 21: Arquitetura de Computadores Ricardo de Sousa Britto

Condição de Corrida

Dois processos (produtor e consumidor) assíncronos comunicam-se por meio de um buffer circular.

Produtor: calcula números e os armazena no buffer

Consumidor: remove os números do buffer (um por vez) e os imprime

MULTIPROGRAMAÇÃO

Page 22: Arquitetura de Computadores Ricardo de Sousa Britto

Condição de Corrida

Ponteiro entrada: aponta para a próxima palavra livre do buffer

Ponteiro saída: aponta para o próximo número a ser removido

O topo do buffer é logicamente contíguo ao fundo Entrada = Saída, buffer vazio Quando entrada esta logicamente uma palavra atrás

de saída, o buffer está cheio

MULTIPROGRAMAÇÃO

Page 23: Arquitetura de Computadores Ricardo de Sousa Britto

Condição de Corrida

MULTIPROGRAMAÇÃO

Page 24: Arquitetura de Computadores Ricardo de Sousa Britto

Procedimento Produtor

MULTIPROGRAMAÇÃO

Page 25: Arquitetura de Computadores Ricardo de Sousa Britto

Procedimento Consumidor

MULTIPROGRAMAÇÃO

Page 26: Arquitetura de Computadores Ricardo de Sousa Britto

Problema

Inconsistência nos valores para entrada e saída

Processo produtor envia sinal de acordar para consumidor em momento errado

Isso leva aos os dois processos dormirem em um determinado momento, situação que se prolonga indefinidamente

MULTIPROGRAMAÇÃO

Page 27: Arquitetura de Computadores Ricardo de Sousa Britto

Solução

Bit de espera acordado: Um bit assegura que um processo só deve dormir se este bit estiver em zero

Semáforos: Bloqueiam determinado recurso para leitura e escrita.

Em determinado momento, se um processo estiver alterando um recurso, nenhum outro processo pode escrever ou ler nesse momento

MULTIPROGRAMAÇÃO

Page 28: Arquitetura de Computadores Ricardo de Sousa Britto

Semáforos

MULTIPROGRAMAÇÃO