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?
- 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.
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.
Relacione cada conceito com sua respectiva definição:
Relacione cada conceito com sua respectiva definição:
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.
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.
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?
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.
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:
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.
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.
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?
Qual é a vantagem principal de usar bibliotecas e frameworks na programação?
Qual é a vantagem principal de usar bibliotecas e frameworks na programação?
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).
Qual das seguintes opções descreve corretamente a porta lógica OR?
Qual das seguintes opções descreve corretamente a porta lógica OR?
Qual é a função da porta lógica NOT?
Qual é a função da porta lógica NOT?
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.
Faça a correspondência entre os elementos e suas descrições:
Faça a correspondência entre os elementos e suas descrições:
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?
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.
Descreva como funciona um interruptor controlado por tensão elétrica.
Descreva como funciona um interruptor controlado por tensão elétrica.
Os transistores atuam como ______ que formam a base dos circuitos digitais.
Os transistores atuam como ______ que formam a base dos circuitos digitais.
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.
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.
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?
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.
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?
Flashcards
CPI
CPI
Ciclos por instrução, mede a eficiência de um processador.
Lei de Amdahl
Lei de Amdahl
Limita a melhoria de desempenho com um aumento específico.
Máquina de Estado Finito
Máquina de Estado Finito
Modelo que representa sistemas com estados limitados.
Máquinas Deterministas
Máquinas Deterministas
Máquinas que têm um único próximo estado possível.
Signup and view all the flashcards
Expressões Regulares
Expressões Regulares
Representam padrões de símbolos em computação.
Signup and view all the flashcards
Abstração
Abstração
Processo de ocultar detalhes complexos e focar em aspectos essenciais.
Signup and view all the flashcards
Camadas de Abstração
Camadas de Abstração
Estruturas que organizam diferentes níveis de funcionamento dos computadores.
Signup and view all the flashcards
Domínio do Software
Domínio do Software
Conjunto de aplicações e linguagens usadas para criar software.
Signup and view all the flashcards
Linguagens de Programação
Linguagens de Programação
Ferramentas que permitem criar programas sem entender todos os detalhes do computador.
Signup and view all the flashcards
Bibliotecas de Software
Bibliotecas de Software
Conjuntos de código reutilizável que facilitam o desenvolvimento.
Signup and view all the flashcards
Sistemas Operativos
Sistemas Operativos
Software que gerencia hardware e oferece serviços para aplicações.
Signup and view all the flashcards
Arquitetura de Computadores
Arquitetura de Computadores
Estrutura interna e organização de componentes de um computador.
Signup and view all the flashcards
Código-Fonte
Código-Fonte
A descrição da aplicação que deve ser legível e executável pelo computador.
Signup and view all the flashcards
Legibilidade
Legibilidade
Propriedade do código que facilita sua compreensão. É essencial para manter e desenvolver programas.
Signup and view all the flashcards
Linguagens de Alto Nível
Linguagens de Alto Nível
Linguagens que estão distantes dos fundamentos de hardware, facilitando a programação.
Signup and view all the flashcards
Linguagens de Baixo Nível
Linguagens de Baixo Nível
Possuem uma correspondência direta com operações elementares do hardware, mais difíceis de usar.
Signup and view all the flashcards
Assembly
Assembly
Uma linguagem de baixo nível que se aproxima da linguagem de máquina ou do hardware.
Signup and view all the flashcards
Frameworks
Frameworks
Bibliotecas que contêm códigos pré-fabricados para ajudar programadores a incluir funcionalidades comuns.
Signup and view all the flashcards
Bibliotecas
Bibliotecas
Conjuntos de funções e procedimentos pré-definidos que podem ser utilizados em programas.
Signup and view all the flashcards
Implementação
Implementação
O processo de desenvolver e integrar diferentes partes de um programa.
Signup and view all the flashcards
Portas Lógicas
Portas Lógicas
Dispositivos que realizam operações lógicas com entradas binárias.
Signup and view all the flashcards
AND
AND
Resultado verdadeiro (1) se ambas as entradas forem 1.
Signup and view all the flashcards
OR
OR
Resultado é 1 se pelo menos uma das entradas for 1.
Signup and view all the flashcards
NOT
NOT
Resultado é 1 se a única entrada for 0.
Signup and view all the flashcards
Transistores
Transistores
Dispositivos eletrônicos que constituem portas lógicas.
Signup and view all the flashcards
Entrada de Tensão
Entrada de Tensão
Valor elétrico que controla o estado do transistor.
Signup and view all the flashcards
Interruptor Controlado
Interruptor Controlado
Fecha se a tensão ultrapassar um limite, abre se descer.
Signup and view all the flashcards
Domínio Analógico
Domínio Analógico
Refere-se ao controle de valores elétricos contínuos.
Signup and view all the flashcards
Operações Lógicas
Operações Lógicas
Combinações que podem ser reduzidas a portas lógicas.
Signup and view all the flashcardsStudy 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.