Arquitetura de Computadores Ricardo de Sousa Britto

Preview:

Citation preview

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

Motivação

SEGMENTAÇÃO

Motivação

SEGMENTAÇÃO

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

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

Segmentção X Paginação

SEGMENTAÇÃO

Implementação

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

SEGMENTAÇÃO

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

Segmentação por Swapping

SEGMENTAÇÃO

Segmentação por Swapping

SEGMENTAÇÃO

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

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

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

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

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

Segmentação por Paginação

SEGMENTAÇÃO

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

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

Paralelismo Real X Paralelismo Simulado

MULTIPROGRAMAÇÃO

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

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

Condição de Corrida

MULTIPROGRAMAÇÃO

Procedimento Produtor

MULTIPROGRAMAÇÃO

Procedimento Consumidor

MULTIPROGRAMAÇÃO

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

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

Semáforos

MULTIPROGRAMAÇÃO