Desempenho de Programas e Linguagens de Programação
28 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quais dos seguintes fatores não afetam diretamente o desempenho de um programa?

  • Algoritmo utilizado
  • Tamanho do disco rígido (correct)
  • Linguagem de programação
  • Compilador utilizado
  • 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.

    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.

    <p>limitado</p> Signup and view all the answers

    Relacione cada conceito com sua respectiva definição:

    <p>CPI = Número médio de ciclos de relógio necessários para executar uma instrução. SPECratio = Medida normalizada de desempenho que agrega 12 benchmarks sobre um conjunto de tarefas inteiras. Máquinas de Estado Finito = Modelam um sistema com um número limitado de modos ou estados, representando seu comportamento através de diagramas de transição de estados. Máquinas de Turing = Modelo de computação com memória de acesso aleatório, representando o poder computacional máximo.</p> Signup and view all the answers

    O código-fonte de uma aplicação é essencialmente uma receita que o computador pode executar automaticamente.

    <p>True (A)</p> 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.

    <p>abstratas</p> Signup and view all the answers

    Qual das seguintes é uma característica desejável para o código-fonte de uma aplicação?

    <p>Ser legível para facilitar a manutenção e o desenvolvimento (C)</p> Signup and view all the answers

    Explique a diferença entre linguagens de alto nível e linguagens de baixo nível.

    <p>Linguagens de alto nível são mais abstratas e mais fáceis de entender para humanos, enquanto linguagens de baixo nível estão mais próximas do hardware e exigem conhecimento técnico mais profundo.</p> Signup and view all the answers

    Relacione os seguintes exemplos com seus respectivos tipos de linguagem de programação:

    <p>Python = Linguagem de alto nível Assembly = Linguagem de baixo nível C++ = Linguagem de alto nível Linguagem-máquina = Linguagem de baixo nível</p> 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.

    <p>True (A)</p> 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.

    <p>legível</p> Signup and view all the answers

    Qual dos seguintes exemplos representa um tipo de linguagem de baixo nível?

    <p>Assembly (D)</p> Signup and view all the answers

    Qual é a vantagem principal de usar bibliotecas e frameworks na programação?

    <p>Bibliotecas e frameworks facilitam a inclusão de funcionalidades comuns, reduzindo o tempo e esforço necessário para desenvolver o software e permitindo que os programadores se concentrem em aspectos mais específicos do projeto.</p> Signup and view all the answers

    A porta lógica AND retorna verdadeiro (1) somente se ambas as entradas forem verdadeiras (1).

    <p>True (A)</p> Signup and view all the answers

    Qual das seguintes opções descreve corretamente a porta lógica OR?

    <p>Retorna verdadeiro (1) se pelo menos uma das entradas for verdadeira (1). (D)</p> Signup and view all the answers

    Qual é a função da porta lógica NOT?

    <p>A porta lógica NOT inverte o valor da sua entrada. Se a entrada for 1, a saída será 0, e vice-versa.</p> 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.

    <p>portas</p> Signup and view all the answers

    Faça a correspondência entre os elementos e suas descrições:

    <p>Transistores = Dispositivos eletrónicos básicos que constituem portas lógicas. Domínio Analógico = Representação de valores através de tensões elétricas contínuas. Portas lógicas = Operações básicas que combinam valores lógicos, como AND, OR e NOT. Valores lógicos = Representação de informação como 0 e 1, utilizados em computadores digitais.</p> Signup and view all the answers

    Qual é a principal diferença entre o domínio analógico e o domínio digital?

    <p>O domínio analógico utiliza valores contínuos, enquanto o domínio digital utiliza valores discretos. (D)</p> Signup and view all the answers

    Os transistores modernos operam no domínio dos bits, representando valores como 0 e 1.

    <p>False (B)</p> Signup and view all the answers

    Descreva como funciona um interruptor controlado por tensão elétrica.

    <p>Um interruptor controlado por tensão elétrica é um componente que fecha o circuito quando a tensão de entrada ultrapassa um determinado limite. Se a tensão cair abaixo do limite, o interruptor abre.</p> Signup and view all the answers

    Os transistores atuam como ______ que formam a base dos circuitos digitais.

    <p>interruptores</p> Signup and view all the answers

    Computadores possuem a mesma expressividade que a abstração e comunicação entre camadas.

    <p>False (B)</p> 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.

    <p>níveis</p> Signup and view all the answers

    Qual das seguintes áreas NÃO está diretamente relacionada à abstração e comunicação entre camadas?

    <p>Componentes físicos do computador (A)</p> Signup and view all the answers

    Explique a relação entre linguagens de programação e o domínio do software abstrato.

    <p>Linguagens de programação permitem que desenvolvedores manipulem o computador sem precisar entender detalhes complexos da arquitetura do hardware. Elas fornecem uma interface abstrata que facilita a criação de software, abstraindo detalhes complexos do nível de hardware.</p> Signup and view all the answers

    Qual das seguintes opções melhor descreve a abstração e comunicação entre camadas?

    <p>Um conjunto de níveis de complexidade que ocultam detalhes complexos e facilitam o desenvolvimento de software. (D)</p> 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.

    Quiz Team

    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.

    More Like This

    Program Outputs and Performance Assessment
    15 questions
    Introduction to Programming in Python - Performance
    42 questions
    Impact of 4Ps on Academic Performance
    14 questions
    Computer Abstractions and Technology Quiz
    45 questions
    Use Quizgecko on...
    Browser
    Browser