Arquitetura de Computadores Ricardo de Sousa Britto.
Transcript of Arquitetura de Computadores Ricardo de Sousa Britto.
![Page 1: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/1.jpg)
Arquitetura de Computadores
Ricardo de Sousa Britto
![Page 2: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/2.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/3.jpg)
Motivação
SEGMENTAÇÃO
![Page 4: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/4.jpg)
Motivação
SEGMENTAÇÃO
![Page 5: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/5.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/6.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/7.jpg)
Segmentção X Paginação
SEGMENTAÇÃO
![Page 8: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/8.jpg)
Implementação
Existem duas formas de se implementar segmentação:– Swapping– Paginação
SEGMENTAÇÃO
![Page 9: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/9.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/10.jpg)
Segmentação por Swapping
SEGMENTAÇÃO
![Page 11: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/11.jpg)
Segmentação por Swapping
SEGMENTAÇÃO
![Page 12: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/12.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/13.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/14.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/15.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/16.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/17.jpg)
Segmentação por Paginação
SEGMENTAÇÃO
![Page 18: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/18.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/19.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/20.jpg)
Paralelismo Real X Paralelismo Simulado
MULTIPROGRAMAÇÃO
![Page 21: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/21.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/22.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/23.jpg)
Condição de Corrida
MULTIPROGRAMAÇÃO
![Page 24: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/24.jpg)
Procedimento Produtor
MULTIPROGRAMAÇÃO
![Page 25: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/25.jpg)
Procedimento Consumidor
MULTIPROGRAMAÇÃO
![Page 26: Arquitetura de Computadores Ricardo de Sousa Britto.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/26.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/27.jpg)
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.](https://reader035.fdocumentos.com/reader035/viewer/2022062512/552fc111497959413d8c6034/html5/thumbnails/28.jpg)
Semáforos
MULTIPROGRAMAÇÃO