Arquitetura de Computadores

Ricardo de Sousa Britto
SEGMENTAÇÃO
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
MULTIPROGRAMAÇÃ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
Download

Memória Virtual