Podcast
Questions and Answers
Quais dos seguintes fatores não afetam diretamente o desempenho de um programa?
Quais dos seguintes fatores não afetam diretamente o desempenho de um programa?
A frequência do relógio de um processador é diretamente proporcional à quantidade de energia consumida.
A frequência do relógio de um processador é diretamente proporcional à quantidade de energia consumida.
True (A)
Explique o conceito de 'benchmark' e sua importância na avaliação de desempenho de computadores.
Explique o conceito de 'benchmark' e sua importância na avaliação de desempenho de computadores.
Um benchmark é um conjunto de programas que representam o uso típico de um computador, servindo para medir o desempenho e compará-lo entre diferentes computadores.
A Lei de Amdahl afirma que o aumento de desempenho possível em um sistema é ______ pelo grau de uso da parte do sistema que não é melhorada.
A Lei de Amdahl afirma que o aumento de desempenho possível em um sistema é ______ pelo grau de uso da parte do sistema que não é melhorada.
Signup and view all the answers
Relacione cada conceito com sua respectiva definição:
Relacione cada conceito com sua respectiva definição:
Signup and view all the answers
O código-fonte de uma aplicação é essencialmente uma receita que o computador pode executar automaticamente.
O código-fonte de uma aplicação é essencialmente uma receita que o computador pode executar automaticamente.
Signup and view all the answers
Linguagens de alto nível são mais ______ do que linguagens de baixo nível, distanciando-se de conceitos como circuitos e bits.
Linguagens de alto nível são mais ______ do que linguagens de baixo nível, distanciando-se de conceitos como circuitos e bits.
Signup and view all the answers
Qual das seguintes é uma característica desejável para o código-fonte de uma aplicação?
Qual das seguintes é uma característica desejável para o código-fonte de uma aplicação?
Signup and view all the answers
Explique a diferença entre linguagens de alto nível e linguagens de baixo nível.
Explique a diferença entre linguagens de alto nível e linguagens de baixo nível.
Signup and view all the answers
Relacione os seguintes exemplos com seus respectivos tipos de linguagem de programação:
Relacione os seguintes exemplos com seus respectivos tipos de linguagem de programação:
Signup and view all the answers
Bibliotecas e Frameworks são programas pré-feitos que permitem aos programadores adicionar funcionalidades complexas sem precisar escrever todo o código do zero.
Bibliotecas e Frameworks são programas pré-feitos que permitem aos programadores adicionar funcionalidades complexas sem precisar escrever todo o código do zero.
Signup and view all the answers
O código-fonte de uma aplicação deve ser ______ para permitir que outros programadores entendam e modifiquem o código facilmente.
O código-fonte de uma aplicação deve ser ______ para permitir que outros programadores entendam e modifiquem o código facilmente.
Signup and view all the answers
Qual dos seguintes exemplos representa um tipo de linguagem de baixo nível?
Qual dos seguintes exemplos representa um tipo de linguagem de baixo nível?
Signup and view all the answers
Qual é a vantagem principal de usar bibliotecas e frameworks na programação?
Qual é a vantagem principal de usar bibliotecas e frameworks na programação?
Signup and view all the answers
A porta lógica AND retorna verdadeiro (1) somente se ambas as entradas forem verdadeiras (1).
A porta lógica AND retorna verdadeiro (1) somente se ambas as entradas forem verdadeiras (1).
Signup and view all the answers
Qual das seguintes opções descreve corretamente a porta lógica OR?
Qual das seguintes opções descreve corretamente a porta lógica OR?
Signup and view all the answers
Qual é a função da porta lógica NOT?
Qual é a função da porta lógica NOT?
Signup and view all the answers
Apesar de serem compostos de milhões ou biliões de portas lógicas, qualquer programa de computador é redutível a combinações de ______ lógicas.
Apesar de serem compostos de milhões ou biliões de portas lógicas, qualquer programa de computador é redutível a combinações de ______ lógicas.
Signup and view all the answers
Faça a correspondência entre os elementos e suas descrições:
Faça a correspondência entre os elementos e suas descrições:
Signup and view all the answers
Qual é a principal diferença entre o domínio analógico e o domínio digital?
Qual é a principal diferença entre o domínio analógico e o domínio digital?
Signup and view all the answers
Os transistores modernos operam no domínio dos bits, representando valores como 0 e 1.
Os transistores modernos operam no domínio dos bits, representando valores como 0 e 1.
Signup and view all the answers
Descreva como funciona um interruptor controlado por tensão elétrica.
Descreva como funciona um interruptor controlado por tensão elétrica.
Signup and view all the answers
Os transistores atuam como ______ que formam a base dos circuitos digitais.
Os transistores atuam como ______ que formam a base dos circuitos digitais.
Signup and view all the answers
Computadores possuem a mesma expressividade que a abstração e comunicação entre camadas.
Computadores possuem a mesma expressividade que a abstração e comunicação entre camadas.
Signup and view all the answers
A abstração e comunicação entre camadas organizam os computadores em ______ de abstração, que por sua vez são organizados em domínios.
A abstração e comunicação entre camadas organizam os computadores em ______ de abstração, que por sua vez são organizados em domínios.
Signup and view all the answers
Qual das seguintes áreas NÃO está diretamente relacionada à abstração e comunicação entre camadas?
Qual das seguintes áreas NÃO está diretamente relacionada à abstração e comunicação entre camadas?
Signup and view all the answers
Explique a relação entre linguagens de programação e o domínio do software abstrato.
Explique a relação entre linguagens de programação e o domínio do software abstrato.
Signup and view all the answers
Qual das seguintes opções melhor descreve a abstração e comunicação entre camadas?
Qual das seguintes opções melhor descreve a abstração e comunicação entre camadas?
Signup and view all the answers
Study Notes
Tipos de Computadores
- Computadores pessoais (PCs) geralmente incluem ecrã, teclado, rato e processamento de alta intensidade com IA.
- Servidores e supercomputadores
- Computadores embutidos (embedded)
- Dispositivos móveis (ex: smartphones) com autonomia de bateria.
Servidores
- Os servidores estão a crescer, organizados em clusters ou centros de dados.
- Computação em nuvem
- Software como serviço (SaaS)
Ideias de Arquitetura de Computadores
- Lei de Moore: circuitos integrados duplicam a capacidade a cada 18-24 meses, ajudando a prever novos chips.
- Abstração: várias camadas de abstração são escondidas para o programador, que pode priorizar funções e recursos com frequência.
- Paralelismo: executar operações independentes em paralelo para acelerar o processo.
- Antecipação: prever futuras necessidades numa determinada situação.
Hierarquia de Memórias
- Memórias rápidas e caras com baixa capacidade (ex: cache).
- Memórias lentas e baratas com maior capacidade (ex: discos rígidos, SSDs).
- Memórias voláteis (ex: RAM): perdem dados quando o computador é desligado.
- Memórias não voláteis (ex: discos rígidos, SSDs): mantêm os dados mesmo quando o computador é desligado.
- Tolerância a falhas: o sistema suporta falhas e mantém a funcionalidade.
- Redundância nos componentes: melhoria da confiabilidade.
Camadas de Abstração
- Mostra variações entre a camada hardware - software, que formam diferentes níveis de abstração.
Compilador
- Programa que traduz linguagens de alto nível (ex: C, C++) para instruções de máquina (código de máquina).
Computador
- Componentes de entrada (ex: rato, teclado).
- Componentes de saída (ex: ecrã, impressora, altofalantes).
- Memória.
- Caminho de dados (datapath).
- Controlo (CPU - processador).
Cache
- Armazena os dados mais frequentemente acessados para um acesso mais rápido.
- Acesso muito rápido dentro do processador (SRAM).
CPU - Unidade Central de Processamento
- Mecanismos para lidar com instruções e dados.
- Entrada de dados
- Controlo
- Caminho de dados
- Saída de dados
Arquiteturas
- CISC (Complex Instruction Set Computer).
- RISC (Reduced Instruction Set Computer).
- PowerPC - usado em Macs.
- ARM - usado em dispositivos móveis e portáteis.
Desempenho Computacional
- Medidas de desempenho: tempo de resposta, capacidade de processamento e largura de banda.
- Tempo do CPU: tempo de execução de um programa.
- Ciclo de relógio: tempo mínimo de uma operação básica no CPU.
- Frequência do relógio: inverso do ciclo de relógio.
- Tempo de CPU = número de ciclos de relógio * ciclo de relógio do programa.
- CPI (ciclos por instrução): Número de ciclos de relógio necessários para executar uma instrução.
- Fatores chaves de desempenho: frequência de relógio do processador, número de instruções do programa e CPI médio.
Barreiras de energia
- Consumo de energia de diferentes processadores e tempo de retorno.
- Escolha de alternativas.
- Uniprocessadores e Multiprocessadores
Benchmark
- Usado para avaliar o desempenho de um computador comparando diferentes computadores e suas comparações.
- SPEC: Criado para medir o desempenho de diferentes computadores.
- Média normalizada: Usada para avaliar o desempenho de computadores.
Lei de Amdahl
- A melhoria de desempenho e limitada pelo aumento no uso desse recurso.
- Tempo de execução após melhoria.
Máquinas de estado finito
- Representam sistemas com um número limitado de estados e transições.
- Estados: representados por símbolos (por exemplo, círculos, quadrados e outras formas), e os estados iniciais são marcados com setas.
- Transições: mudanças de estados, representados por setas.
Formalismos mais complexos
- Expressões regulares/ padrões.
- Máquina de pilha: dispositivo de memória.
- Gramáticas independentes do contexto: conjunto de regras de composição de símbolos.
- Máquinas de Turing: memórias de acesso aleatório.
Níveis de abstração
- Aplicações/ programas
- Linguagens de programação
- Bibliotecas
- Sistemas operativos
- Arquitetura (Computador)
- Circuitos/ Componentes
- Transístores
Domínio do Software
- Aplicações
- Linguagens de programação
- Bibliotecas
- Sistemas operativos
- Arquitetura (Computador)
- Componentes
- Transístores
Bibliotecas/Frameworks
- Instrumentos reutilizáveis de código que podem ser incluídos no programa.
Sistemas Operativos (SO)
- Camada de software, que permite que aplicações e bibliotecas se comuniquem com o computador.
- Núcleo (Kernel): parte principal do SO responsável pelo controlo direto do hardware.
- Tarefas da SO: gestão de memória RAM, controlo e tempo do programa no CPU, comunicação com dispositivos de input/output.
Arquitetura
- Forma de abstrair as funções iniciais do computador, em termos de instruções e funções básicas de processamento.
- 64-bits: capacidade de ler e escrever 64 bits pelo computador.
Componentes
- Organização dos computadores e suas partes, incluíndo CPU (Unidade Central de Processamento), memória, dispositivos de entrada e saída.
- Integração de componentes numa única peça.
Circuito Integrado (Chip)
- Coleção de componentes eletrônicos para uma função.
- Ex: processador, chip de memória.
- Capacidade de memória que depende de vários chips.
- Camadas de abstração no próprio chip.
Portas Lógicas
- Componentes eletrônicos básicos.
- Baseados em operações lógicas (AND, OR, NOT).
- Operam com valores binários.
- Valores representados no nível das tensões elétricas.
Transistores
- Componentes básicos em eletrônicos digitais.
- Baseados em tensões elétricas.
- Controlam o fluxo de elétrons nos circuitos.
Modelos de Aplicações Distribuídas
- Aplicativo centralizado em uma única máquina.
- Aplicativo distribuído em várias máquinas ligadas por uma rede.
- Modelo Cliente-Servidor: comunicação entre cliente e servidor.
- Modelo Peer-to-Peer: comunicação entre pares.
Paralelismo
- Multiprocessador: sistema com dois ou mais processadores.
- Paralelismo ao nível do processo, tarefa ou programa.
- Simultaneamente vários processadores para melhoria do desempenho.
- Clusters: computadores ligados em rede funcionando como um único computador.
- Microprocessador Multicore: vários processadores num único circuito integrado.
Categorização de Hardware
- SISD (Single Instruction, Single Data).
- MISD (Multiple Instruction, Single Data).
- SIMD (Single Instruction, Multiple Data).
- MIMD (Multiple Instruction, Multiple Data).
Multithreading por Hardware
- Thread: unidade de trabalho mais leve que o processo.
- Compartilhamento do espaço de endereço de memória pelos threads.
- Processador Multicore: uso de vários processadores para acelerar as operações.
NUMA (Non-Uniform Memory Access)
- Espaço de memória único.
- Memória acessível a todos os processadores, mas a latência pode ser variável entre os processadores.
Unidade de Processamento Gráfico (GPU)
- Acelerador que complementa o CPU, sendo mais rápido na tarefa de processamento grádico e em cálculos paralelos.
- Usam multithreading para processamento acelerado.
Clusters e Computadores de Grande Escala
- Computadores agrupados em rede para cálculos de grandes escalas.
- Utilização de paralelismo, minimizando os problemas causados pela escala.
Modelos de Computação em Nuvem
- Arquitetura baseada em paralelismo que disponibiliza recursos compartilhados em uma rede.
Benchmarks
- Programas que testam o desempenho de hardware e software.
- Indicadores do desempenho dos processadores com tarefas específicas.
- Modelos de desempenho para testes e análise.
- Desempenho de cálculos de vírgula flutuante e de outros indicadores.
Administração de Sistemas
- Planeamento, backup, criação e gestão de contas de usuários.
- Instalação e atualização de software.
- Gestão do sistema e segurança.
Métodos para acessar um superusuário.
- métodos de acesso para administradores do sistemas.
Interface de Usabilidade
- opções de interfaces para tarefas.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Este quiz aborda fatores que afetam o desempenho de um programa, como a frequência do relógio do processador e o conceito de 'benchmark'. Além disso, explora a diferença entre linguagens de alto e baixo nível e a importância de características desejáveis no código-fonte. Teste seus conhecimentos sobre esses conceitos fundamentais da informática.