Geral
Sistemas Computacionais
Semana 1 4
#1
A arquitetura de Von Neumann é a base dos computadores modernos e descreve como os dados e as instruções são armazenados e manipulados. Imagine que você está projetando um novo sistema de computação para uma empresa que desenvolve software financeiro.
Assinala a alternativa que descreve os componentes principais da arquitetura de Von Neumann e como eles podem ser aplicados no desenvolvimento de um sistema de computação para software financeiro.
Assinala a alternativa que descreve os componentes principais da arquitetura de Von Neumann e como eles podem ser aplicados no desenvolvimento de um sistema de computação para software financeiro.
#2
A evolução dos modelos de computador reflete as mudanças tecnológicas e teóricas na ciência da computação. Desde a criação da Máquina de Turing, que estabeleceu os fundamentos teóricos da computação, até as arquiteturas modernas, como a de Von Neumann, que introduziu a ideia de armazenar programas na memória, o desenvolvimento dos computadores tem sido marcado por avanços significativos. Esses modelos não apenas transformaram a maneira como os computadores funcionam, mas também influenciaram profundamente a pesquisa e o desenvolvimento na área da computação. Considere um seminário em que você deve apresentar a trajetória histórica desses modelos para um público de estudantes do ensino médio.
Sobre a evolução dos modelos de computador desde a Máquina de Turing até as arquiteturas modernas, destacando os principais avanços e mudanças.
I. A Máquina de Turing foi o primeiro modelo teórico de um computador, desenvolvido por Alan Turing em 1936.
II. O modelo de Von Neumann introduziu o conceito de armazenar programas na memória , ao lado dos dados.
III. Os computadores modernos ainda utilizam princípios da Máquina de Turing e do modelo de Von Neumann.
Está correto o que se afirma em:
Sobre a evolução dos modelos de computador desde a Máquina de Turing até as arquiteturas modernas, destacando os principais avanços e mudanças.
I. A Máquina de Turing foi o primeiro modelo teórico de um computador, desenvolvido por Alan Turing em 1936.
II. O modelo de Von Neumann introduziu o conceito de armazenar programas na memória , ao lado dos dados.
III. Os computadores modernos ainda utilizam princípios da Máquina de Turing e do modelo de Von Neumann.
Está correto o que se afirma em:
#3
Imagine que você é um desenvolvedor de sistemas responsável por otimizar o desempenho de uma aplicação complexa que processa grandes volumes de dados em tempo real. Durante o seu trabalho, é importante entender como os diferentes tipos de memória do computador interagem para maximizar a eficiência do sistema. Para isso, você assistiu a uma videoaula que explicou detalhadamente os diversos tipos de memória e suas funções no sistema de um computador.
Analise as afirmativas a seguir sobre os tipos de memórias:
I. A memória principal é usada para armazenar dados de forma rápida e temporária.
II. A memória auxiliar é utilizada para armazenamento permanente e de grande capacidade.
III. Ambas as memórias são igualmente rápidas e servem ao mesmo propósito.
Está correto o que se afirma em:
Analise as afirmativas a seguir sobre os tipos de memórias:
I. A memória principal é usada para armazenar dados de forma rápida e temporária.
II. A memória auxiliar é utilizada para armazenamento permanente e de grande capacidade.
III. Ambas as memórias são igualmente rápidas e servem ao mesmo propósito.
Está correto o que se afirma em:
#4
O modelo de Von Neumann é um dos conceitos mais importantes na arquitetura dos computadores modernos. Ele define como os dados e as instruções são armazenados e processados, influenciando diretamente a eficiência e o desempenho dos sistemas computacionais.
Selecione a alternativa que descreve como o modelo de Von Neumann processa os dados e as instruções.
Selecione a alternativa que descreve como o modelo de Von Neumann processa os dados e as instruções.
Semana 2 5
#1
Ao planejar a instalação de memórias em um sistema computacional, é essencial considerar a hierarquia de memória para otimizar o desempenho e o custo. A hierarquia de memória ajuda a organizar diferentes tipos de memória com base na velocidade e custo.
Use o conceito de hierarquia de memória para planejar a instalação de memórias em um sistema que requer alta velocidade e grande capacidade de armazenamento.
Use o conceito de hierarquia de memória para planejar a instalação de memórias em um sistema que requer alta velocidade e grande capacidade de armazenamento.
#2
Compreender os componentes principais de um computador é essencial para qualquer profissional de TI, pois eles formam a base de qualquer sistema computacional. Esses componentes desempenham funções específicas que permitem ao computador realizar suas tarefas. O conhecimento desses componentes e suas funções facilita o diagnóstico e a resolução de problemas de hardware.
Sobre os componentes principais de um computador, assinale a alternativa correta:
Sobre os componentes principais de um computador, assinale a alternativa correta:
#3
Os princípios básicos da organização e arquitetura de computadores são fundamentais para entender como os computadores são estruturados e operam de maneira eficiente. Esses princípios formam a base para o desenvolvimento e a inovação em tecnologia da informação.
Assinale a alternativa que identifica corretamente os princípios básicos da organização e arquitetura de computadores.
Assinale a alternativa que identifica corretamente os princípios básicos da organização e arquitetura de computadores.
#4
Você está participando de uma reunião para decidir sobre a implementação de um sistema RAID em um servidor de alto desempenho. É crucial avaliar a eficácia dos diferentes níveis de RAID em termos de redundância e desempenho. Durante a videoaula, foram apresentados vários níveis de RAID, cada um com suas próprias vantagens e desvantagens.
Identifique a eficácia dos diferentes níveis de RAID em termos de redundância e desempenho.
Identifique a eficácia dos diferentes níveis de RAID em termos de redundância e desempenho.
#5
Analisar os fatores que influenciam o desempenho de um computador é essencial para otimizar a performance de sistemas computacionais. Entre os principais fatores que impactam a eficiência de um sistema, destacam-se a velocidade do processador, a quantidade de memória disponível e a eficiência dos dispositivos de entrada/saída. Cada um desses elementos desempenha um papel crucial na determinação da rapidez e eficácia com que um computador pode executar tarefas, processar dados e comunicar-se com seus componentes internos e periféricos.
Escolha a alternativa que analisa corretamente os principais fatores que influenciam o desempenho de um computador.
Escolha a alternativa que analisa corretamente os principais fatores que influenciam o desempenho de um computador.
Semana 4 10
#1
O conceito de pipeline de instruções em sistemas de computação é semelhante ao de uma linha de montagem numa planta industrial. Como numa linha de montagem esse processo aumenta a eficiência ao permitir a execução de várias instruções em paralelo, dividindo o processamento em diferentes estágios.
Nesse sentido, assinale a alternativa correta.
Nesse sentido, assinale a alternativa correta.
#2
Leia o excerto:
As arquiteturas paralelas proporcionam diversas vantagens importantes que aumentam o desempenho e a eficiência dos sistemas computacionais contemporâneos. Entre essas vantagens estão a habilidade de executar múltiplas tarefas ao mesmo tempo, a otimização do uso dos recursos e a aceleração da velocidade de processamento. Com base nisso, uma das principais vantagens do uso de arquiteturas paralelas: [Preencher 1] por meio da execução simultânea de múltiplas tarefas.
O termo [preencher 1] é corretamente substituído por:
As arquiteturas paralelas proporcionam diversas vantagens importantes que aumentam o desempenho e a eficiência dos sistemas computacionais contemporâneos. Entre essas vantagens estão a habilidade de executar múltiplas tarefas ao mesmo tempo, a otimização do uso dos recursos e a aceleração da velocidade de processamento. Com base nisso, uma das principais vantagens do uso de arquiteturas paralelas: [Preencher 1] por meio da execução simultânea de múltiplas tarefas.
O termo [preencher 1] é corretamente substituído por:
#3
Leia o excerto:
Um programa inspeciona uma imagem de mapa de bits e lista objetos encontrados. Cada uma das 16 CPUs analisa a imagem inteira, essencial para identificar objetos em várias seções. Se um objeto se estende além de uma seção, o processo continua na próxima. A coordenação final é necessária para contar objetos repetidos. Todas as CPUs compartilham a mesma memória e sistema operacional, com um único mapa de páginas e tabela de processos. Quando um processo bloqueia, a CPU salva seu estado. Em um sistema multiprocessador, [Preencher 1] CPUs devem ter acesso à [Preencher 2] inteira para processar objetos que ocupam várias seções.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
Um programa inspeciona uma imagem de mapa de bits e lista objetos encontrados. Cada uma das 16 CPUs analisa a imagem inteira, essencial para identificar objetos em várias seções. Se um objeto se estende além de uma seção, o processo continua na próxima. A coordenação final é necessária para contar objetos repetidos. Todas as CPUs compartilham a mesma memória e sistema operacional, com um único mapa de páginas e tabela de processos. Quando um processo bloqueia, a CPU salva seu estado. Em um sistema multiprocessador, [Preencher 1] CPUs devem ter acesso à [Preencher 2] inteira para processar objetos que ocupam várias seções.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
#4
O conceito de pipeline em processadores é fundamental para aumentar a eficiência e o desempenho em sistemas computacionais. Pipeline permite que as instruções sejam executadas simultaneamente, utilizando estágios diferentes de execução dentro do processador.
É correto afirmar que o conceito de pipeline e sua aplicação em processadores:
É correto afirmar que o conceito de pipeline e sua aplicação em processadores:
#5
As arquiteturas paralelas são categorizadas de acordo com várias características, como o tipo de memória e o método de comunicação entre processadores. Duas categorias principais são os multiprocessadores de memória compartilhada e os multicomputadores de memória distribuída.
Com base no texto, avalie as afirmativas a seguir sobre as características das arquiteturas de multiprocessadores de memória compartilhada e multicomputadores de memória distribuída.
Com base no texto, avalie as afirmativas a seguir sobre as características das arquiteturas de multiprocessadores de memória compartilhada e multicomputadores de memória distribuída.
- Todos os multiprocessadores compartilham a mesma memória, já os multicomputadores cada processador tem sua própria memória independente.
- Cada multiprocessador tem sua própria memória local, já em multicomputadores todos os processadores compartilham um único espaço de memória.
- Clusters de workstations conectadas por uma rede local são exemplos de multicomputadores de memória distribuída.
- Os multicomputadores dependem de uma rede de alta velocidade para comunicação entre processadores.
- O acesso direto e uniforme à memória para todos os processadores é uma característica dos multiprocessadores de memória compartilhada.
#6
Os sistemas multiprocessadores e multicomputadores possuem arquiteturas distintas que influenciam diretamente no desempenho e na comunicação entre seus componentes. A escolha entre essas arquiteturas depende das necessidades específicas de desempenho e das características das aplicações a serem executadas.
Os multiprocessadores tem uma arquitetura de memória compartilhada. Logo, uma das características dos multicomputadores é que:
Os multiprocessadores tem uma arquitetura de memória compartilhada. Logo, uma das características dos multicomputadores é que:
#7
As arquiteturas de multiprocessadores e multicomputadores são amplamente utilizadas em sistemas computacionais avançados. Enquanto os multiprocessadores têm uma abordagem específica em relação ao uso da memória, os multicomputadores adotam uma estratégia diferente. Essas diferenças impactam diretamente no desempenho e na forma como as tarefas são gerenciadas.
Assinale a alternativa que descreve a diferença entre multiprocessadores de memória compartilhada e multicomputadores de memória distribuída.
Assinale a alternativa que descreve a diferença entre multiprocessadores de memória compartilhada e multicomputadores de memória distribuída.
#8
As arquiteturas paralelas oferecem várias vantagens significativas que contribuem para o desempenho e eficiência dos sistemas computacionais modernos. Essas vantagens incluem a capacidade de processar múltiplas tarefas simultaneamente, melhor utilização dos recursos e maior velocidade de processamento. Com base nisso, assinale a alternativa que descreve uma das principais vantagens do uso de arquiteturas paralelas.
Assinale a alternativa que descreve uma das principais vantagens do uso de arquiteturas paralelas:
Assinale a alternativa que descreve uma das principais vantagens do uso de arquiteturas paralelas:
#9
As arquiteturas paralelas são essenciais na computação moderna, permitindo a execução de muitas tarefas. Elas podem ser implementadas tanto via software quanto hardware, otimizando a utilização dos recursos do processador. Diferentes tipos de arquiteturas paralelas, como SISD, SIMD, MISD e MIMD, possuem características e aplicações específicas que impactam diretamente na eficiência computacional.
Avalie a importância das arquiteturas paralelas na otimização do desempenho computacional, considerando suas diferentes classificações e aplicações.
Avalie a importância das arquiteturas paralelas na otimização do desempenho computacional, considerando suas diferentes classificações e aplicações.
#10
Os sistemas computacionais modernos evoluíram significativamente, sendo compostos por diversos componentes essenciais que trabalham em conjunto para garantir seu funcionamento adequado. Entre esses componentes, a CPU (Unidade Central de Processamento) destaca-se como o cérebro do computador, executando instruções e coordenando operações. Dentro desse contexto, o contador de programa (Program Counter) desempenha um papel fundamental.
Assinale a alternativa que descreve a função do contador de programa (Program Counter) em um sistema computacional.
Assinale a alternativa que descreve a função do contador de programa (Program Counter) em um sistema computacional.
Semana 5 10
#1
Em um programa de C, um desenvolvedor precisa manipular um array de inteiros utilizando ponteiros para realizar operações específicas. O código a seguir é um exemplo simplificado onde são realizadas algumas dessas operações. Compreender como ponteiros interagem com arrays é crucial para operações eficientes de manipulação de dados.
Considere o seguinte trecho de código em C:
Quais serão os valores impressos pelo programa após a execução do código?
Considere o seguinte trecho de código em C:
| #include <stdio.h> void manipulaArray(int *arr, int tamanho) { int *p = arr; for(int i = 0; i < tamanho; i++) { *p = *p + 1; p++; } } int main() { int array[] = {1, 2, 3, 4, 5}; int tamanho = 5; manipulaArray(array, tamanho); for(int i = 0; i < tamanho; i++) { printf("%d ", array[i]); } return 0; } |
Quais serão os valores impressos pelo programa após a execução do código?
- 1 2 3 4 5
- 2 3 4 5 6
- 0 1 2 3 4
- 1 1 1 1 1
- 2 2 2 2 2
#2
O conceito de paginação é uma técnica de memória virtual que quebra processos em páginas mapeadas em frames na memória principal. Essa técnica é implementada por unidades dedicadas de hardware, permitindo uma utilização mais eficiente da memória ao eliminar a fragmentação externa. A página é a menor unidade de alocação de memória, e cada processo tem sua própria tabela de páginas, onde endereços virtuais correspondem a endereços físicos.
Com base no texto acima sobre paginação na memória virtual, identifique a alternativa que melhor descreve o funcionamento dessa técnica e sua implementação na linguagem C utilizando structs.
Com base no texto acima sobre paginação na memória virtual, identifique a alternativa que melhor descreve o funcionamento dessa técnica e sua implementação na linguagem C utilizando structs.
#3
Na linguagem C, é possível realizar operações aritméticas com ponteiros, como incremento e decremento, para percorrer sequências de endereços de memória. Este recurso é frequentemente utilizado em manipulações de arrays e estruturas de dados. Por exemplo, ao trabalhar com arrays, podemos usar ponteiros para iterar eficientemente pelos elementos sem a necessidade de utilizar índices explícitos.
Considere o seguinte trecho de código em C:
Os valores apontados por *p e por *(p - 1) após a execução do código são:
Considere o seguinte trecho de código em C:
| int arr[] = {10, 20, 30, 40, 50}; int *p = arr; p = p + 3; |
Os valores apontados por *p e por *(p - 1) após a execução do código são:
#4
Sobre memória virtual, a técnica de paginação é utilizada para gerenciar a memória de forma eficiente. A paginação envolve a divisão da memória em unidades menores. Esse processo é essencial para o funcionamento de sistemas modernos e é implementado com o auxílio do MMU (Unidade de Gerenciamento de Memória).
Analise as afirmações abaixo sobre a implementação de tabelas de páginas na memória virtual. Qual delas está correta?
Analise as afirmações abaixo sobre a implementação de tabelas de páginas na memória virtual. Qual delas está correta?
#5
A linguagem C é amplamente utilizada para desenvolvimento de sistemas e aplicações devido à sua eficiência e controle de baixo nível. Um dos conceitos fundamentais nessa linguagem é o uso de ponteiros, que permitem o gerenciamento direto da memória. Compreender a função e a declaração de ponteiros é essencial para a manipulação eficiente da memória.
Selecione a alternativa a seguir que descreve corretamente a função de um ponteiro em C e sua declaração.
Selecione a alternativa a seguir que descreve corretamente a função de um ponteiro em C e sua declaração.
#6
Um desenvolvedor está criando um sistema de gerenciamento de biblioteca em linguagem C. Para organizar as informações sobre os livros, ele decide utilizar estruturas e typedef. Ele quer definir um tipo para os livros que inclui título, autor, ano de publicação e número de páginas. Além disso, ele precisa de uma função para atualizar o ano de publicação de um livro.
Analise o seguinte cenário:
A biblioteca utiliza um sistema em C que gerencia os dados dos livros através de uma estrutura Book. A estrutura contém os seguintes campos: título (char[100]), autor (char[50]), ano de publicação (int) e número de páginas (int). A função updateYear atualiza o ano de publicação de um livro.
Baseado neste cenário, identifique as afirmativas corretas sobre a implementação e a utilização da função updateYear:
Analise o seguinte cenário:
A biblioteca utiliza um sistema em C que gerencia os dados dos livros através de uma estrutura Book. A estrutura contém os seguintes campos: título (char[100]), autor (char[50]), ano de publicação (int) e número de páginas (int). A função updateYear atualiza o ano de publicação de um livro.
Baseado neste cenário, identifique as afirmativas corretas sobre a implementação e a utilização da função updateYear:
- A função updateYear deve receber um ponteiro para Book e o novo ano, e deve atualizar diretamente o campo ano de publicação.
- A função updateYear deve receber uma cópia da estrutura Book e o novo ano, atualizar a cópia e retornar a estrutura atualizada.
- A função updateYear deve receber um ponteiro para Book e o novo ano, criar uma nova estrutura Book com o novo ano e retornar essa nova estrutura.
- A função updateYear deve receber o título do livro e o novo ano, e deve procurar o livro pelo título e atualizar o ano de publicação.
- A função updateYear deve receber uma cópia da estrutura Book e o novo ano, e deve retornar um ponteiro para a estrutura atualizada.
#7
Os operadores utilizados com ponteiros na linguagem C, como o & (e comercial) e o * (asterisco), são fundamentais para a manipulação de endereços de memória e valores apontados por esses endereços. Esses operadores são essenciais para o gerenciamento eficiente de memória e manipulação direta de dados.
O operador * é usado para [Preencher 1] o valor armazenado no endereço apontado pelo ponteiro. Já o operador & é usado para [Preencher 2] o endereço de memória de uma variável.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
O operador * é usado para [Preencher 1] o valor armazenado no endereço apontado pelo ponteiro. Já o operador & é usado para [Preencher 2] o endereço de memória de uma variável.
Os termos [preencher 1] e [preencher 2] são corretamente substituídos por:
#8
Os ponteiros são elementos essenciais na programação, pois possibilitam a manipulação direta dos valores das variáveis na memória do computador. Essa capacidade de manipulação direta é extremamente versátil, permitindo realizar diversas operações complexas e acessar diferentes partes do programa de forma eficiente.
Considere as seguintes declarações em C:
Após a execução desse código, assinale qual resposta está correta.
Considere as seguintes declarações em C:
| int x = 10; int *p; p = &x; *p = 20; |
Após a execução desse código, assinale qual resposta está correta.
#9
Na linguagem C, o uso de typedef permite a definição de novos nomes para tipos existentes, facilitando a legibilidade e a manutenção do código. As estruturas (structs) permitem a organização de diferentes tipos de dados em um único conjunto. Compreender como essas funcionalidades são usadas é crucial para a manipulação eficiente de dados em C.
Considere o seguinte trecho de código em C:
Quais serão os valores impressos pelo programa após a execução do código?
Considere o seguinte trecho de código em C:
#include <stdio.h> typedef struct { int x; char y; } MyStruct; int main() { MyStruct a = {10, 'A'}; MyStruct b = a; b.x = b.x * 2; printf("%d %c\n", b.x, b.y); return 0; } |
Quais serão os valores impressos pelo programa após a execução do código?
#10
Na programação em linguagem C, os ponteiros são essenciais para manipulação de memória e otimização de processos. Eles permitem acessar e modificar o valor de variáveis através de seus endereços de memória. Entender como declarar e utilizar ponteiros é fundamental para um desenvolvimento eficiente e otimizado em C.
Como se declara um ponteiro em C e qual é a sua função principal?
Como se declara um ponteiro em C e qual é a sua função principal?