Professor:
Ano Académico:
SUMÁRIO DA APRESENTAÇÃO 2
Metódio Franklin Armando
2022/2023
1 APRESENTAÇÃO
1.1 Apresentação do programa analítico;
1.2 Objectivos da UC e meios a serem utilizados
2 INTRODUÇÃO
2.1 Abstrações e Tecnologias Computacionais
2.2 Desempenho dos programas
Professor:
Ano Académico:
APRESENTAÇÃO 3
Metódio Franklin Armando
2022/2023
Programa analítico
Objectivos da Unidade Curricular (UC)
Saber como funcionam os processadores actuais e, compreender as condicionantes para
a sua evolução;
Ser capaz de avaliar estratégias para optimização de programas tendo em atenção a
arquitectura computacional subjacente, baseadas em métricas de desempenho;
Desenvolver códigos em linguagem assembly por meio de simuladores e compreender a
relação entre as linguagens de alto nível e a linguagem simbólica.
Professor:
Ano Académico:
APRESENTAÇÃO 4
Metódio Franklin Armando
2022/2023
Programa analítico
Meios a serem utilizados
Projecção de Slides
SIMULADOR Assembly (MARS)
Computadores
Templates de Jornais/Revistas científicas
Avaliação
RExame = [(PP1 + PP2)/2]* 0,4 + 0,6 Exame]
RRecurso = [(PP1 + PP2)/2]* 0,2 + 0,8 Exame]
Classificação ≥ 10 = Aprovado; Escala 0 à 20
RExame = resultado final, incluindo a nota do exame ordinário;
PP- média da avaliação das provas parcelares;
RRecurso = resultado final incluindo a nota do exame de recurso.
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 5
Metódio Franklin Armando
2022/2023
Desempenho dos programas
O desempenho de um programa depende de uma combinação entre a eficácia dos
algoritmos usados no programa, os sistemas de software usados para criar e traduzir o
programa para instruções de máquina e da eficácia do computador em executar essas
instruções, que podem incluir operações de entrada/saída (E/S).
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 6
Metódio Franklin Armando
2022/2023
Desempenho dos programas
Afectado por:
Algoritmo;
Linguagem, compilador e arquitectura;
Processador e sistema de memória;
Sistema de E/S (Incluindo SO).
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 8
Metódio Franklin Armando
2022/2023
Desempenho dos programas
Linguagem, compilador e arquitectura:
Determina o número de instruções de máquina para cada instrução em nível de fonte.
Aspectos relacionados ao longo desta disciplina e em outras do curso.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 9
Metódio Franklin Armando
2022/2023
Desempenho dos programas
Processador e sistema de memória:
Determinam a velocidade com que as instruções podem ser executadas.
.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 10
Metódio Franklin Armando
2022/2023
Desempenho dos programas
Sistema de E/S (Hardware e Sistema Operativo):
Determina a velocidade em que as operações de E/S podem ser executadas.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 11
Metódio Franklin Armando
2022/2023
Analise e responda no seu caderno de anotações.
Foi possível verificar, que o número de processadores embutidos vendidos a cada ano
supera, e muito, o número de processadores para desktops. Você pode confirmar ou
negar isso com base em sua própria experiência?
Tente contar o número de processadores embutidos na sua casa. Compare esse número
com o número de computadores desktop em sua casa.
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 12
Metódio Franklin Armando
2022/2023
Analise e responda no seu caderno de anotações.
Como mencionado anteriormente, tanto o software quanto o hardware afetam o
desempenho de um programa. Podes pensar em exemplos em que cada um dos
fatores a seguir é o responsável pelo gargalo no desempenho?
O algoritmo escolhido;
A linguagem de programação ou compilador;
O sistema operativo;
O processador;
O sistema de E/S e os dispositivos.
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 13
Metódio Franklin Armando
2022/2023
Por trás do programa
O hardware em um computador só pode executar instruções de baixo nível extremamente
simples.
Ir de uma aplicação complexa até as instruções simples envolve várias camadas de
software que interpretam ou traduzem operações de alto nível nas instruções simples do
computador.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 14
Metódio Franklin Armando
2022/2023
Por trás do programa
Uma visão simplificada do hardware e software como camadas hierárquicas, mostradas
como círculos concêntricos, em que o hardware está no centro e as aplicações aparecem
externamente. Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 15
Metódio Franklin Armando
2022/2023
Por trás do programa
Existem muitos tipos de software de sistemas, mas dois tipos são fundamentais em todos os
sistemas computacionais modernos: um sistema operativo e um compilador.
Um sistema operativo fornece a interface entre o programa de utilizador e o hardware e
disponibiliza diversos serviços e funções de supervisão. Entre as funções mais importantes
estão:
Manipular as operações básicas de entrada e saída;
Alocar armazenamento e memória;
Possibilitar e controlar o compartilhamento do computador entre as diversas aplicações
que o utilizam simultaneamente.
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 16
Metódio Franklin Armando
2022/2023
Revise os conceitos
computadores desktop – Um computador projetado para uso por uma única pessoa,
normalmente incorporando um monitor gráfico, um teclado e um mouse.
Servidor – Um computador usado para executar grandes programas para múltiplos
utilizadores, quase sempre de maneira simultânea e normalmente acedido apenas por
meio de uma rede.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 17
Metódio Franklin Armando
2022/2023
Revise os conceitos
software de sistemas Software que fornece serviços que normalmente são úteis, incluindo
sistemas operacionais, compiladores e montadores.
Sistema operativo – Programa de supervisão que gere os recursos de um computador
em favor dos programas executados nessa máquina;
Compilador Um programa que traduz as instruções de linguagem de alto nível para
instruções de linguagem assembly;
Montador (assembler) – Um programa que traduz uma versão simbólica de instruções
para
a versão binária.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 18
Metódio Franklin Armando
2022/2023
Revise os conceitos
dígito binário – Também chamado bit. Um dos dois números na base 2 (0 ou 1) que são os
componentes da informação.
Instrução – Um comando que o hardware do computador entende e obedece.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 19
Metódio Franklin Armando
2022/2023
Revise os conceitos
Linguagem assembly – Uma representação simbólica das instruções de máquina.
Linguagem de máquina – Uma representação binária das instruções de máquina.
Linguagem de programação de alto nível – Uma linguagem, como C, C++, Java ou Visual
Basic, composta de palavras e notação algébrica, que pode ser traduzida por um
compilador para a linguagem assembly.
Peterson et al. (2014)
Professor:
Ano Académico:
Abstrações e Tecnologias Computacionais 20
Metódio Franklin Armando
2022/2023
Programa em C compilado para assembly e depois montado em linguagem de máquina.
Professor:
Ano Académico:
REFERÊNCIAS BLIOBLIOGRÁFICAS 21
Metódio Franklin Armando
2022/2023
Secções 1.1 e 1.2
Principal
PATTERSON, D. A. e HENNESSY, J.L. Computer organization and design: the
hardware/software interface 4. Ed. Elsevier Editora Ltda: 2014.
Complementar
STALLINGS, W. Computer organization and architecture: designing for performance 8. Ed.
São Paulo: Pearson Pratice Hall, 2010.