View
105
Download
1
Category
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
Recommended