Escolar Documentos
Profissional Documentos
Cultura Documentos
Computadores
Prof. Rodrigo Monteiro de Aquino
Arquitetura de Computadores
Critérios de avaliação
● Provas
Arquitetura de Computadores
Introdução
● Tipos de computadores
○ Desktops e laptops PC
Arquitetura de Computadores
Definições
● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
Arquitetura de Computadores
Definições
● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
○ Supercomputadores
Fugaku - Fujitsu
Arquitetura de Computadores
Definições
● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
○ Supercomputadores
Arquitetura de Computadores
Definições
● Tipos de computadores
○ Desktops e laptops PC
○ Servidores
○ Supercomputadores
○ Computadores embarcados (embedded)
Arquitetura de Computadores
Definições
Arquitetura de Computadores
Definições
● Computação em nuvem
Arquitetura de Computadores
Definições
● SaaS
Arquitetura de Computadores
Palavras-chave do curso
● Programas
Arquitetura de Computadores
Palavras-chave do curso
● Programas
● Linguagem de alto nível e de máquina
Arquitetura de Computadores
Palavras-chave do curso
● Programas
● Linguagem de alto nível e de máquina
● Desempenho de um programa
Arquitetura de Computadores
Palavras-chave do curso
● Programas
● Linguagem de alto nível e de máquina
● Desempenho de um programa
● Consumo energético
Arquitetura de Computadores
Palavras-chave do curso
● Programas
● Linguagem de alto nível e de máquina
● Desempenho de um programa
● Consumo energético
● Processamento paralelo (micro processador multicore)
Arquitetura de Computadores
Elementos na execução de um programa
● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
Arquitetura de Computadores
Elementos na execução de um programa
● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
Arquitetura de Computadores
Elementos na execução de um programa
● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
● Processador e sistema de memória
○ Determina a velocidade em que as instruções podem ser executadas e o volume
de dados que se pode manipular
Arquitetura de Computadores
Elementos na execução de um programa
● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
● Processador e sistema de memória
○ Determina a velocidade em que as instruções podem ser executadas e o volume
de dados que se pode manipular
● Sistema de E/S (hardware e sistema operacional)
○ Determina a velocidade em que as operações de E/S podem ser executadas
Arquitetura de Computadores
Elementos na execução de um programa
● Algoritmo
○ Determina o número de instruções do código-fonte e o número de operações de
E/S realizadas
● Linguagem de programação, compilador e arquitetura
○ Determina a forma das instruções de máquina para cada instrução determinada
no algoritmo
(O sistema operacional)
● Processador e sistema de memória
○ Determina a velocidade em que as instruções podem ser executadas e o volume
de dados que se pode manipular
● Sistema de E/S (hardware e sistema operacional)
○ Determina a velocidade em que as operações de E/S podem ser executadas
Arquitetura de Computadores
Lei de Moore
Detalhes de nível mais baixo são ocultados, para oferecer um modelo mais simples para ser
desenvolvido nos níveis mais altos.
Arquitetura de Computadores
Velocidade
Resolver o desempenho do caso comum, tornando-o mais veloz, costuma valer mais a pena que
otimizar o caso raro.
Além disso, normalmente acaba sendo mais simples resolver esses casos do que o caso raro, e
assim, vale muito a pena seguir este caminho.
Arquitetura de Computadores
Paralelismo
Pode acabar sendo mais rápido prever e começar a trabalhar antecipadamente do que esperar até
que a carga de trabalho chegue efetivamente.
Se a predição for relativamente precisa, pode-se evitar perda de tempo por conta de “overhead”
de alguns processos.
Arquitetura de Computadores
Memória
Deseja-se que a memória disponível para processamento seja rápida, grande e barata, pois a
velocidade da memória geralmente implica em melhoria no desempenho, a capacidade limita o
volume de dados que podem ser carregados e o custo da memória pode implicar diretamente no
custo de uma solução.
Resolve-se esse conflito utilizando a hierarquia de memórias, com a memória mais rápida, menor
e mais cara por bit no topo da hierarquia e a mais lenta, maior e mais barata por bit no fundo.
Arquitetura de Computadores
Redundância
Objetivo: Estabilidade
Os computadores além de precisarem ser rápidos, eles também precisam ser estáveis.
Como qualquer dispositivo pode falhar, montamos sistemas estáveis incluindo componentes
redundantes, que podem assumir o controle quando uma falha ocorre e ajudar a detectá-la.
Arquitetura de Computadores
Funcionamento de um programa
Ir de uma aplicação complexa até as instruções simples envolve diversas camadas de software que
interpretam ou traduzem operações de alto nível nas instruções simples (abstração)
Arquitetura de Computadores
Funcionamento de um programa
● Hardware
○ Componentes físicos, que são capazes de realizar
operações simples
Arquitetura de Computadores
Funcionamento de um programa
● Hardware
○ Componentes físicos, que são capazes de realizar
operações simples
● Softwares de sistemas
○ Camada de software que faz a interface entre o
hardware e as aplicações de camadas superiores
Arquitetura de Computadores
Funcionamento de um programa
● Hardware
○ Componentes físicos, que são capazes de realizar
operações simples
● Softwares de sistemas
○ Camada de software que faz a interface entre o
hardware e as aplicações de camadas superiores
● Softwares de aplicações
○ Camada que permite a execução de aplicações e
sistemas de software
Arquitetura de Computadores
Funcionamento de um programa
Compilador
- ou assembly
Transformação de uma linguagem de alto nível para nível de máquina
Montador
Arquitetura de Computadores
Fluxo de dados