Arquitetura de Computadores Alexandre José Braga da Silva [email protected] Universidade...
Transcript of Arquitetura de Computadores Alexandre José Braga da Silva [email protected] Universidade...
Introdução ao Software Científico
Arquitetura de Computadores
Alexandre José Braga da [email protected]
Universidade Federal de Alagoas – UFALPrograma Multidisciplinar de Mestrado em Modelagem
Computacional do Conhecimento
Arquitetura de ComputadoresApresentação
• Um breve histórico• Organização de Sistemas de Computadores• Processamento e Armazenagem• Estrutura de Dados Dinâmicos• Hierarquia de Memória• Memória Virtual• Arquitetura de Memória e o Software Científico
Arquitetura de ComputadoresUm breve Histórico
Com o advento da computação surgiram centenas de projetos de computadores diferentes. A maioria já foi esquecida mas alguns tiveram um impacto significativo nos projetos mais modernos (Tanenbaum ,1992). Com base nesta evolução é possível definir gerações de computadores:
Arquitetura de ComputadoresUm breve Histórico
• 1ª Geração – Válvulas (1945-1955)• Colossus e ENIAC (2ª Guerra Mundial)• Máquina de von Neumann• 2 ª Geração – Transistores (1955-1965)• TX-0 (MIT)• PDP-1 (DEC)• IBM 7090 e 7094 (início da computação científica)
Arquitetura de ComputadoresUm breve Histórico
• 3ª Geração – Circuitos Integrados (1955-1980)• System/360 da IBM (Multiprogramação)• PDP-11 (DEC)• 4ª Geração – PCs e VLSI (1980-atualidade)• Família INTEL e IBM PC-AT• Família Motorola modelo 68000• Processadores de 32 e 64 bits• Processadores para dispositivos móveis
Arquitetura de ComputadoresUm breve Histórico
Um computador pode ser visualizado como uma máquina de níveis (camadas).
Níveis iniciais: 0 – Nível de Hardware1 – Nível de Sistema Operacional
Sistema Operacional Interage com o hardware e com outros softwares simplificando a interação com o usuário da máquina.
Arquitetura de ComputadoresUm breve Histórico
A maioria dos computadores de hoje possui uma estrutura básica de camadas, podendo ter um número maior ou menor delas.
Aplicações
Utilitários
Sist. Operacional
Ling. de Máquina
Microprogramação
Circuitos EletrônicosFig.1 – Máquina de níveisFonte: Machado e Maia, 1992
Arquitetura de ComputadoresOrganização de Sistemas de Computadores
A arquitetura básica de um computador contém pelo menos os seguintes componentes interconectados:
• Processador (CPU)• Memórias (Volátil e não volátil)• Dispositivos de Entrada/Saída (barramentos de I/O)
Arquitetura de ComputadoresOrganização de Sistemas de Computadores
Unidade de Controle
Fig.2 – Arquitetura simplificada de um computadorFonte: Tanenbaum ,1992
Unidade Lógica e
Aritmética (ALU)
Registradores
Memória Principal
Disco Outros Dispositivos
Dispositivos de E/S
Arquitetura de ComputadoresOrganização de Sistemas de Computadores
Fig.3 – Arquitetura mais detalhada de um computadorFonte: Oliveira e Stewart ,2006
Arquitetura de ComputadoresProcessamento e Armazenagem
Um processador é um circuito elétrico contendo milhões de transistores (chaves que realizam operações lógicas do tipo AND, OR, NOT)
Contador de Programa Registrador usado para percorrer o programa em execução.
Arquitetura de ComputadoresProcessamento e Armazenagem
Pilha – Armazena dados na memória.
Inteiros, ponteiros e números de ponto flutuante em registradores e grandes objetos como estruturas em pilhas.
Memória – Armazena programas e dados.
Ponteiro de Pilha – Indica o topo da pilha.Registradores – Acessam a memória e o barramento de dados
Arquitetura de ComputadoresProcessamento e Armazenagem
Pilhas (LIFO) Estruturas básicas de dadosP1: 1P2:
P3:
P4:
P5:
21
321
4321
54321
65432
76543
87654
98765
1 2 3 4 5 6 7 8 9 Tempo
Fig.4 – Pilha de dados em função do tempo.Fonte: Tanenbaum, 1992
Arquitetura de ComputadoresProcessamento e Armazenagem
Bit Unidade básica de memória (0,1)
1001
Considere o número 1944 em decimal e binário puro, com 16 bits em cada um.
0001
0100
0100000001111001100
0
Decimal:
Binário:
Byte Grupo de 8 bits 23=8Em 1Byte 28=256 combinações
00000000 até 11111111
Arquitetura de ComputadoresEstrutura de dados dinâmicos
• Possuem inserção (i) e remoção (r) de elementos.
• Estruturas de dados dinâmicos mais comuns:
Pilhas lista linear com i e r em apenas um extremo Filas lista linear com i e r nos extremos opostosÁrvores conjunto finito de elementos disjuntos onde cada Ai é uma árvore
Arquitetura de ComputadoresEstrutura de dados dinâmicos
Árvores binárias admitem operações de:
Busca, mínimo, máximo, predecessor e sucessor
Exemplos de árvore binária
Arquitetura de ComputadoresHierarquia de memória
Classificação dos tipos de memória em função do seu desempenho
Tamanho x velocidade de acesso
- Custo por byte - velocidade de acesso+ custo por byte + velocidade de acesso
Arquitetura de ComputadoresHierarquia de memória
Arquitetura de ComputadoresMemória virtual
Recurso de hardware+software:
1. Relocação Assegura que cada processo tenha seu próprio endereçamento.
2. Proteção Impede que um processo use memória que não lhe pertence
3. Paginação Permite a aplicação usar mais memória do que realmente existe.
Arquitetura de ComputadoresMemória virtual
Dois tipos principais:
Paginação memória física é dividida em blocos de bytes contíguos chamados page frames de 4Kb (32 e 64 bits) ou 8 Kb (RISC). O espaço de memória de um processo é dividido em páginas que são fisicamente armazenadas nas molduras e possuem o mesmo tamanho destas.
Windows Até 4Gb (até 16 arquivos de paginação com 4.095Mb)Linux Até 4Gb de memória virtual (1.024 Mb para o kernel e 3Gb para os programas)
Arquitetura de ComputadoresMemória virtualDois tipos principais:
Segmentação Vários espaços de endereçamento para cada aplicação.
Segmento = par ordenado (onde o deslocamento é a posição do byte dentro do segmento
Aplicação vê: Mas na verdade temos:
Outro programaDisco
Arquitetura de ComputadoresMemória virtual
Endereço virtual
Processador
Memory Management Unit
(MMU) Tabelas de páginas
Sistema Operacional
Arquitetura de Computadores
Arquitetura de Computadores e o Software Científico
?
Arquitetura de ComputadoresApenas uma curiosidade
Um exemplo extremo de paralelismo: Para renderizar as belas cenas do filme Avatar, em uma fazenda de servidores, foram usados nada menos do que 4.352 PCs, cada um com 2 processadores Xeon de 4 núcleos e 24 GB de RAM (34.816 núcleos e mais de 102 TB de RAM).
Obrigado a Todos!Dúvidas? Críticas? Sugestões?
Alexandre José Braga da [email protected]