A partir do estudo desta unidade, você deverá ser capaz de:
conhecer o histórico dos computadores e a sua evolução ao longo dos anos;
conhecer os componentes do computador;
compreender os tipos e funções de conexões;
compreender sobre os softwares;
PLANO DE ESTUDOS
A cada tópico desta unidade, você encontrará autoatividades com o objetivo de reforçar o conteúdo apresentado.
Bem-vindo à Unidade 1 da disciplina Arquitetura de Computadores. Nesta etapa, vamos conhecer os FUNDAMENTOS SOBRE COMPUTADORES: HARDWARE E SOFTWARE.
Esta unidade apresenta uma visão geral do histórico dos computadores e discute as diferenças entre o hardware e o software.
Confira a seguir os objetivos de aprendizagem desta Unidade:
• Conhecer o histórico dos computadores e a sua evolução ao longo dos anos;
• Conhecer os componentes do computador;
• Compreender os tipos e funções de conexões;
• Compreender os softwares;
Os computadores nos últimos anos tornaram-se um tema relevante particularmente nas áreas de armazenamento e disseminação de informações.
A era do computador foi caracterizada pela geração de computadores, que significava que ele havia passado por estágios de evolução ou desenvolvimento.
Os primeiros fundamentos do que se tornaria a ciência da computação são anteriores à invenção do computador digital moderno. Máquinas para realizar cálculos matemáticos, como o ábaco, foram fundamentais para que pudéssemos chegar ao estágio atual.
Os algoritmos para realizar cálculos existem desde a antiguidade, mesmo antes do desenvolvimento de equipamentos de computação sofisticados.
Em 1980 foi criado o Microsoft Disk Operating System (MS-Dos) e em 1981 A IBM introduziu o computador pessoal (PC) para uso doméstico e comercial (escritório).
Os dispositivos de computação mecânica surgiram há mais de 2.000 anos. A era dos computadores eletrônicos começou na década de 1940. Eles aparecem em muitas formas, desde unidades primitivas que controlam funções em automóveis e eletrodomésticos, até supercomputadores muito avançados para o projeto de aeronaves e a simulação de mudanças climáticas.
Como resultado das diversas melhorias no desenvolvimento do computador vimos o computador sendo usado em todas as áreas da vida. Podemos relacionar que o computador se tornou uma ferramenta muito útil que continuará a experimentar novos desenvolvimentos com o passar do tempo.
Assista ao vídeo que apresenta a evolução dos computadores no Canal da UNIVESP.
O trabalho acadêmico intitulado Museu virtual da história da computação: uma abordagem de apoio ao processo de ensino-aprendizagem de introdução à computação apresenta um museu virtual 3D sobre a história da computação, desenvolvido através do ambiente virtual OpenSimulator, no qual foram utilizadas as ferramentas de modelagem e desenvolvimento de objetos 3D para a construção e animação dos artefatos do museu.
Assista ao vídeo que apresenta uma introdução aos conceitos de Computação (breve história da computação) no Canal da UNIVESP.
O trabalho acadêmico intitulado Ações voluntárias que impactaram a história da computação faz uma análise das ações voluntárias que contribuíram com grande relevância para a história da computação. Essa pesquisa destaca o trabalho positivo das academias para ensino e conscientização do uso da tecnologia de forma sustentável e inclusiva, com ênfase nas contribuições científicas e voluntárias da América Latina.
Assista ao vídeo que apresenta a palestra ministrada por Marcio Maestrelo Funes, que discute a evolução dos recursos tecnológicos e a relação desse contexto com as sensações e interações do usuário.
Ao assistir esse vídeo, é possível observar diferentes facetas da computação, além de compreender a magia presente nesse mercado de trabalho e no campo da pesquisa acadêmica.
1 INTRODUÇÃO
A vida moderna foi tremendamente afetada pelos avanços nas tecnologias da informação. Os computadores e suas aplicações estão no centro desses avanços. Tentativas de projetar e construir dispositivos para ajudar os humanos em suas tarefas de computação remontam aos tempos antigos.
De acordo com Delgado e Ribeiro (2017), o desenvolvimento da humanidade tem sido marcado por inventos, descobertas e criações históricas, como a invenção da roda, a descoberta da eletricidade e a invenção do motor, quer seja o de combustão, quer seja o elétrico. Mas numa história de acontecimentos importantes, que têm se sucedido em uma cadência cada vez mais rápida, nenhum teve maior impacto, tanto em termos de abrangência como de rapidez de mudança face à escala humana, do que o aparecimento do computador, em particular, o do computador pessoal.
Os dispositivos de computação mecânica surgiram há mais de 2.000 anos. A era dos computadores eletrônicos começou na década de 1940. Eles aparecem em muitas formas, desde unidades primitivas que controlam funções em automóveis e eletrodomésticos, até supercomputadores muito avançados para o projeto de aeronaves e a simulação de mudanças climáticas.
A partir desse contexto, podemos refletir que o computador foi transformado de uma “superferramenta científica”, distante das experiências das pessoas comuns, para uma família diversificada de dispositivos dos quais bilhões de usuários utilizam para se divertir, jogar, fazer compras, transmitir música e filmes, comunicar e contar seus passos, entre outras inúmeras aplicações.
Entender sobre a história da computação pode nos ajudar a fazer previsões razoáveis sobre seu futuro.
O computador está no âmago da computação. Sem ele, a maior parte das disciplinas de computação hoje seria um ramo da matemática teórica. Para ser um profissional em qualquer campo da computação hoje, não se deve considerar o computador como apenas uma caixa preta que executa programas como que por mágica. Todos os alunos de computação deverão adquirir algum conhecimento e apreciação dos componentes funcionais de um sistema de computação, suas características, seu desempenho e suas interações (STALLINGS, 2017, p. 2).
Ao longo desse tópico, iremos refletir sobre o processo evolutivo dos computadores, observando as transformações e os impactos dessas mudanças.
2 UMA VISÃO GERAL DA HISTÓRIA DOS COMPUTADORES
Os dispositivos mecânicos para controlar operações complexas já existem desde pelo menos os anos 1500, quando cilindros de pinos giratórios eram usados em caixas de música. Máquinas que realizam cálculos, ao contrário de simplesmente repetir uma melodia predeterminada, surgiriam no século seguinte. A figura 1 apresenta uma máquina antiga de realizar cálculos matemáticos.
Representação de uma máquina antiga de realizar cálculos matemáticos
Blaise Pascal (1623 – 1662) desenvolveu uma calculadora mecânica para auxiliar o trabalho de contabilidade (fiscal). A calculadora Pascal (Pascaline) contém oito mostradores que se conectam a um tambor, com uma ligação inovadora que faz com que um mostrador gire um entalhe quando um transporte é produzido a partir de um mostrador em uma posição inferior (MURDOCCA; HEURING, 1999).
Uma janela é colocada sobre o mostrador para permitir que sua posição seja observada, assim como o hodômetro em um carro, exceto que os mostradores são posicionados horizontalmente, como uma discagem telefônica. Algumas das máquinas de somar de Pascal, que ele começou a construir em 1642, existem ainda hoje.
No entanto, em meados do século XIX, Charles Babbage (1791 – 1871) colocaria os conceitos de controle mecânico e cálculo mecânico juntos em uma máquina que reconhecemos hoje como tendo as partes básicas de um computador digital. Babbage é por vezes referido como o “avô do computador”, em vez de pai, porque ele nunca construiu uma versão prática das máquinas que projetou. Babbage viveu na Inglaterra em uma época que as tabelas matemáticas eram usadas na navegação e no trabalho científico (MURDOCCA; HEURING, 1999).
As mesas foram calculadas manualmente e, como resultado, continham vários erros. Frustrado com as imprecisões, Babbage decidiu criar uma máquina que computaria tabelas simplesmente ajustando e girando engrenagens. As máquinas de Babbage tinham meios para ler dados de entrada, armazenar dados, realizar cálculos, produzindo dados de saída e controlando automaticamente a operação da máquina (MURDOCCA; HEURING, 1999).
Estas são funções básicas encontradas em quase todos os computadores. Babbage criou um pequeno protótipo de seu motor de diferença, que avalia polinômios usando o método de diferenças finitas. O sucesso do conceito de motor de diferença lhe rendeu apoio governamental para construir um motor analítico, que era uma máquina mais sofisticada que continha um mecanismo de ramificação (tomada de decisões) e um meio de programação, usando cartões perfurados.
O motor analítico foi projetado, mas nunca construído por Babbage porque as tolerâncias mecânicas exigidas pelo projeto não podiam ser atendidas com a tecnologia da época. Uma versão do seu mecanismo de diferença foi construída pelo Science Museum em Londres em 1991, e ainda pode ser visto hoje (MURDOCCA; HEURING, 1999).
Demorou mais de um século, até o início da Segunda Guerra Mundial, antes que o próximo grande impulso na computação fosse iniciado. Na Inglaterra, submarinos alemães causavam grandes danos ao transporte aliado. Os U-boats receberam comunicações de suas bases na Alemanha usando um código de criptografia, que foi implementado por uma máquina fabricada pela Siemens AG conhecida como Enigma.
O processo de criptografar informações já era conhecido há muito tempo, e até o presidente dos Estados Unidos, Thomas Jefferson (1743 – 1826), projetou um precursor da Enigma, embora não tenha construído a máquina. O processo de decodificar dados criptografados era uma tarefa muito mais difícil. Foi esse problema que incitou os esforços de Alan Turing (1912 – 1954), e outros cientistas na Inglaterra, no processo de criação de máquinas de quebra de código. Durante a Segunda Guerra Mundial, Turing foi o principal criptógrafo da Inglaterra e estava entre aqueles que mudaram a criptografia de um assunto para pessoas que decifravam línguas antigas para um assunto de matemáticos (MURDOCCA; HEURING, 1999).
O Colossus foi uma máquina de quebra de código bem-sucedida que saiu de Bletchley Park (na Inglaterra, onde Turing trabalhava). As válvulas eletrônicas (chamadas também, no passado, de tubos de vácuo) armazenam o conteúdo de uma fita de papel que é alimentada na máquina, e os cálculos ocorrem entre as válvulas eletrônicas e uma segunda fita que é alimentada na máquina.
Na mesma época dos esforços de Turing, J. Presper Eckert e John Mauchly concentraram sua atenção no processo de criação de uma máquina que pudesse ser usada para calcular tabelas de trajetórias balísticas para o Exército dos EUA. O resultado do esforço de Eckert-Mauchly foi o Electronic Numerical Integrator And Computer (ENIAC) (MURDOCCA; HEURING, 1999).
O ENIAC era composto por 18.000 válvulas eletrônicas, que compunham a seção de computação da máquina. A programação e a entrada de dados eram realizadas definindo as chaves e alterando os cabos. Não havia conceito de programa armazenado e não havia uma unidade central de memória, mas não são limitações sérias porque tudo o que o ENIAC precisava fazer na época era justamente calcular trajetórias balísticas (MURDOCCA; HEURING, 1999).
No vídeo “A história do ENIAC”, é feita a apresentação sobre esse computador, e é possível conhecer um pouco mais sobre a estrutura e composição desse importante projeto. Acesso em: 20 jun. 2022.
Embora não tenha entrado em operação até 1946, após o fim da guerra, foi considerado um grande sucesso, sendo usado por nove anos. Após o sucesso do ENIAC, Eckert e Mauchly, que estavam na Universidade da Pensilvânia (Moore School), foram acompanhados por John von Neumann (1903 – 1957), que estava no Instituto de Estudos Avançados de Princeton. Juntos, trabalharam no projeto de um computador de programa armazenado chamado EDVAC.
Um conflito se desenvolveu, no entanto, e os grupos da Pensilvânia e Princeton se dividiram. O conceito de um computador de programa armazenado prosperou, no entanto, e um modelo de trabalho de computador de programa armazenado, o EDSAC, foi construído por Maurice Wilkes, na Universidade de Cambridge, em 1947 (MURDOCCA; HEURING, 1999).
2.1 O MODELO VON NEUMANN
Os computadores digitais convencionais têm uma forma comum atribuída a von Neumann, embora os historiadores concordem que toda a equipe fora responsável pelo projeto.
O modelo de von Neumann consiste em cinco componentes principais: a Unidade de Entrada fornece instruções e dados para o sistema, que são posteriormente armazenados na Unidade de Memória. As instruções e os dados são processados pela Unidade Lógica e Aritmética sob a direção da Unidade de Controle. Os resultados são enviados para a Unidade de Saída.
A maioria dos computadores comerciais podem ser decompostos nessas cinco unidades. O programa armazenado é o aspecto mais importante do modelo de von Neumann.
Um programa é armazenado na memória do computador junto com os dados a serem processados. Embora agora tomemos isso como certo, antes do seu desenvolvimento os programas de computador eram armazenados em mídia externa, como placas de tomadas, cartões perfurados ou fitas (MURDOCCA; HEURING, 1999).
No computador de programa armazenado, o programa pode ser manipulado como se fosse um dado. Isso deu origem a compiladores e sistemas operacionais, e possibilitou uma grande versatilidade dos computadores modernos.
2.2 O MODELO DE BARRAMENTO DO SISTEMA
Embora o modelo de von Neumann prevaleça nos computadores modernos, seu conceito foi simplificado. A Figura 2 mostra o modelo de barramento do sistema de um computador, o qual particiona um sistema de computador em três subunidades: CPU, Memória e Entrada/Saída (E/S).
Representação do modelo de barramento do sistema de um computador
Este refinamento do modelo de von Neumann combina a ALU (Arithmetic and Logic Unit, ou Unidade Aritmética e Lógica) e a unidade de controle em uma unidade funcional, a CPU (Central Processing Unit). As unidades de entrada e saída também são combinadas em uma única unidade de E/S.
Mais importante para o modelo de barramento do sistema, as comunicações entre os componentes são feitas por meio de um caminho compartilhado chamado barramento do sistema, que é feito do barramento de dados – que transporta a informação que está sendo transmitida –, o barramento de endereços – que identifica para onde as informações estão sendo enviadas – e o barramento de controle – que descreve aspectos de como as informações estão sendo enviadas (MURDOCCA; HEURING, 1999).
Fisicamente, os barramentos são compostos por conjuntos de fios agrupados por função. Um barramento de dados de 32 bits tem 32 fios individuais, cada um transportando um bit de dados,em oposição a informações de endereço ou controle (MURDOCCA; HEURING, 1999).
O barramento de dados move os dados entre os componentes do sistema. Alguns sistemas possuem barramentos de dados separados para mover informações de e para a CPU - neste caso existe um barramento de entrada de dados e um barramento de saída de dados.
A partir desse contexto, conforme Stallings (2017) a Figura 3 apresenta uma representação de um computador. O computador interage de alguma forma com seu ambiente externo. Em geral, todas essas ligações com o ambiente externo podem ser classificadas como dispositivos periféricos ou linhas de comunicação.
Representação da estrutura do computador
Fonte: Stallings (2017, p. 10).
Frequentemente, um único barramento de dados move os dados em qualquer direção, embora nunca em ambas as direções ao mesmo tempo. Se o barramento for compartilhado entre entidades comunicantes, então as entidades devem possuir identidades distintas. Em alguns computadores todos os endereços são assumidos como endereços de memória se eles são de fato parte da memória do computador. Um endereço de memória, ou localização, identifica uma localização de memória onde os dados são armazenados, semelhante à forma como um endereço postal identifica o local onde um destinatário recebe e envia sua correspondência.
Durante uma operação de leitura ou escrita de memória, o endereço contém o endereço do local de memória onde os dados devem ser lidos ou escritos, ou seja, a CPU lê os dados da memória e os grava na memória. Se os dados são lidos da memória, então o barramento de dados contém o valor lido daquele endereço na memória. Se os dados devem ser escritos na memória, então o barramento de dados contém o valor de dados a serem escritos na memória (STALLINGS, 2017).
2.3 NÍVEIS DE MÁQUINAS
Como em qualquer sistema complexo, o computador pode ser visto de várias perspectivas, ou níveis, desde o mais alto, de “usuário”, até o nível mais baixo, de transistor (que é uma chave binária e o bloco de construção fundamental dos circuitos do computador.).
Cada um desses níveis representa uma abstração do computador.
Uma das possíveis razões para o enorme sucesso do computador digital é a extensão em que esses níveis de abstração são separados ou independentes um do outro.
Isto pode ser facilmente visto: um usuário que executa um programa de processamento de texto em um computador não precisa necessariamente conhecer sobre a sua programação. Da mesma forma, um programador não precisa se preocupar com a estrutura da porta lógica dentro do computador. Uma maneira interessante pela qual a separação de níveis tem sido explorada está no desenvolvimento das máquinas.
3 AS GERAÇÕES DOS COMPUTADORES
Cada geração de computadores trouxe avanços significativos em velocidade e poder para tarefas de computação. A maioria dos grandes desenvolvimentos da década de 1940 até os dias atuais resultaram em máquinas e tecnologias de computação cada vez menores, mais baratas, mais poderosas e mais eficientes, minimizando o armazenamento e aumentando a portabilidade.
3.1 PRIMEIRA GERAÇÃO: VÁLVULAS ELETRÔNICAS
Nesta geração foi introduzida a arquitetura de Von Neumann, que exibe a arquitetura de projeto de um computador digital eletrônico. Mais tarde, os computadores UNIVAC e ENIAC, inventados por J. Presper Eckert, tornaram-se exemplos de tecnologia computacional de primeira geração. O UNIVAC foi o primeiro computador comercial entregue a um cliente empresarial, o US Census Bureau em 1951 (BEAL, 2021).
A MÁQUINA DE VON NEUMANN. A tarefa de entrar e alterar programas para o ENIAC era extremamente enfadonha. O processo de programação poderia ser facilitado se o programa pudesse ser representado em uma forma adequada para armazenamento na memória junto com os dados. Então, um computador poderia obter suas instruções lendo-as da memória, e um programa poderia ser criado ou alterado definindo-se os valores de uma parte da memória. (STALLINGS, 2017, p. 13)
3.2 SEGUNDA GERAÇÃO: TRANSISTORES
De acordo com Stallings (2017), o uso do transistor define a segunda geração de computadores, sendo que a classificação dos computadores em gerações com base na tecnologia de hardware fundamental empregada é bastante aceito. Assim, cada nova geração é caracterizada por um maior desempenho de processamento, uma maior capacidade de memória e um tamanho menor que a anterior.
A primeira mudança importante no computador eletrônico veio com a substituição da válvula pelo transistor. O transistor é menor, mais barato e dissipa menos calor que uma válvula, mas pode ser usado da mesma forma que uma válvula para construir computadores. Diferente da válvula, que exige fios, placas de metal, uma cápsula de vidro e um vácuo, o transistor é um dispositivo de estado sólido, feito de silício. (STALLINGS, 2017, p. 19)
3.3 TERCEIRA GERAÇÃO: CIRCUITOS INTEGRADOS
Em vez de cartões perfurados e impressos, os usuários interagiam com um computador de terceira geração por meio de teclados, monitores e interfaces com um sistema operacional, o que permitia ao aparelho rodar vários aplicativos diferentes ao mesmo tempo com um programa central que monitorava a memória (BEAL, 2021).
Um transistor isolado, autocontido, é chamado de componente discreto. Pelos anos 1950 e início dos anos 1960, o equipamento eletrônico era composto principalmente de componentes discretos, transistores, resistores, capacitores e assim por diante. (STALLINGS, 2017, p. 21).
Por fim, de acordo com Stallings (2017), o período da terceira geração foi marcado pela utilização dos Circuitos Integrados no lugar de transistores. Um único CI possuía muitos transistores, resistores e capacitores juntamente com os circuitos associados. Esse desenvolvimento tornou os computadores menores em tamanho, mais confiáveis e eficientes.
Nesta geração de processamento remoto, compartilhamento de tempo e operação de multiprogramação foram utilizadas linguagens de alto nível, como Fortran-II TO IV, Cobol, Pascal PL/1, Basic, Algol-68 etc., sobre as quais veremos mais adiante.
3.4 QUARTA GERAÇÃO: MICROPROCESSADORES
O microprocessador inaugurou a quarta geração de computadores. Assim como a densidade dos elementos nos chips de memória continuava a subir, a densidade dos elementos dos chips do processador subiu (STALLINGS, 2017).
Com o passar do tempo, mais elementos foram colocados em cada chip, de modo que um número menor de chips passou a ser necessário para construir um único processador. Em 1971, uma inovação significativa foi alcançada pela Intel com o desenvolvimento do modelo 4004, o primeiro chip a conter em si todos os componentes de uma CPU. Assim nascia o microprocessador (STALLINGS, 2017). A Figura 4 a seguir apresenta a visão de um microchip.
Visão de um microchip
Fonte: Stallings (2017, p. 10).
À medida que esses pequenos computadores se tornaram mais poderosos, eles puderam ser conectados para formar redes, o que levou ao desenvolvimento da Internet. Cada computador de quarta geração também acompanhou o desenvolvimento de GUI - graphical user interface (a GUI - interface gráfica do usuário, é um sistema de componentes visuais interativos para software de computador), o mouse e a tecnologia portátil .
3.5 QUINTA GERAÇÃO: INTELIGÊNCIA ARTIFICIAL
Segundo Stallings (2017), essa revolução tecnológica contínua permitiu o desenvolvimento de aplicações de incrível complexidade e poder. Por exemplo, as aplicações de desktop que exigem a grande potência dos sistemas atuais baseados em microprocessador incluem:
processamento de imagens;
reconhecimento de voz;
videoconferência;
criação de multimídia;
anotação de arquivos de voz e vídeo;
modelagem de simulação.
Com o avanço da aplicação e utilização dos princípios da computação quântica e a nanotecnologia, certamente acompanharemos diversas mudanças nos próximos anos.
A computação quântica é uma área de estudo focada no desenvolvimento de tecnologias baseadas em computador centradas nos princípios da teoria quântica (STALLINGS, 2017).
A teoria quântica explica a natureza e o comportamento da energia e da matéria no nível quântico (atômico e subatômico). A computação quântica usa uma combinação de bits para realizar tarefas computacionais específicas. O desenvolvimento de computadores quânticos marca um salto na capacidade de computação, com enormes ganhos de desempenho para casos de uso específicos (STALLINGS, 2017).
Por fim, verificamos que um dos objetivos da computação de quinta geração é justamente aprimorar os dispositivos de tal forma que seja possível realizar uma comunicação direta com o usuário (de forma transparente).
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu:
Observar que o desenvolvimento da humanidade tem sido marcado por inventos, descobertas e criações históricas, como a invenção da roda, a descoberta da eletricidade e a invenção do motor, seja o de combustão ou o elétrico.
Compreender que um programa é armazenado na memória do computador junto com os dados a serem processados. Embora atualmente tomemos isso como certo, antes do desenvolvimento do programa armazenado programas de computador eram armazenados em mídia externa, como placas de tomadas, cartões perfurados ou fitas.
Visualizar que o uso do transistor define a segunda geração de computadores. Foi bastante aceito classificar os computadores em gerações com base na tecnologia de hardware fundamental empregada. Cada nova geração é caracterizada por maior desempenho de processamento, maior capacidade de memória e tamanho menor que a anterior.
Compreender que o microprocessador inaugurou a quarta geração de computadores. Assim como a densidade dos elementos nos chips de memória continuava a subir, a densidade dos elementos dos chips do processador subiu.
Refletir que o circuito integrado explora o fato de que componentes como transistores, resistores e condutores podem ser fabricados a partir de um semicondutor como o silício. Essa é uma extensão da arte do estado sólido para fabricar um circuito inteiro em um pequeno pedaço de silício, ao invés de montar componentes discretos, feitos de partes separadas de silício no mesmo circuito.
AUTOATIVIDADE
1 Leia o trecho a seguir:
A calculadora criada por Pascal foi nomeada de La Pascaline. O objetivo de seu criador era auxiliar o pai em cálculos avançados, uma vez que este era um contador. A máquina funcionava a partir de giros, quando movida no sentido horário a máquina realizava uma soma, quando movimentada no sentido anti-horário realizava subtrações. Os valores utilizados nestas operações eram armazenados em outras engrenagens. (CREPALDI et. al., 2017, p. 2).
Sobre a máquina Pascaline, assinale a alternativa CORRETA:
( ) A máquina Pascaline inaugurou a era das calculadoras mecânicas, que foram bastante aprimoradas no século XVIII.
( ) A máquina Pascaline não foi lançada para o grande público, ficando exclusivamente em ambientes acadêmicos.
( ) A máquina Pascaline não foi uma versão bem sucedida das pesquisas do matemático francês Blaise Pascal.
( ) A máquina Pascalina podia realizar todas as operações matemáticas: somar, subtrair, multiplicar e dividir.
2 Leia o trecho a seguir:
Charles Babbage foi um homem muito à frente de seu tempo. Seu pai foi um banqueiro abastado da Inglaterra. Graças a sua condição financeira Babbage teve ótimos tutores durante sua infância o que possibilitou que ingressasse em Cambridge. Durante seus estudos Babbage participou de diversas fraternidades em Cambridge, foi neste momento que desenvolveu o interesse pela hipótese de um computador programável. (CREPALDI et. al., 2017, p. 3).
Com base nas pesquisas e estudos de Charles Babbage, analise as sentenças a seguir:
I - Em meados dos anos 1800, Charles Babbage colocaria os conceitos de controle mecânico e cálculo mecânico juntos em uma máquina que reconhecemos hoje como tendo as partes básicas de um Computador digital.
II - Babbage criou um pequeno protótipo de seu motor de diferença, que avalia polinômios usando o método de diferenças finitas.
III - O motor analítico foi projetado e construído por Babbage. Esse projeto foi marcado por diversas mudanças nos componentes mecânicos para que o projeto pudesse ser atendido com as tecnologias da época.
Assinale a alternativa CORRETA:
( ) As sentenças I e II estão corretas.
( ) Somente a sentença II está correta.
( ) As sentenças I e III estão corretas.
( ) Somente a sentença III está correta.
3 Leia o trecho a seguir:
O brilhante matemático húngaro, John Von Neumann fez importantes contribuições em diversos campos das ciências. Neumann sendo de família judia, foi forçado a emigrar para os Estados Unidos na época do regime nazista alemão, sendo convidado para fazer parte do Institute for Advanced Study de Princeton junto com outros grandes nomes como Albert Einstein, Enrico Fermi e outros. Fez parte do Projeto Manhattan, onde fazia simulações de modelos hidrodinâmicos no INIAC, seus estudos colaboraram com o aperfeiçoamento do método de Monte Carlo. (CREPALDI et. al., 2017, p. 7).
De acordo com esse contexto, analise as sentenças a seguir e classifique em V as verdadeiras e F as falsas:
( ) Os computadores digitais convencionais têm uma forma comum que é atribuída a von Neumann, embora os historiadores concordem que toda a equipe foi responsável pelo projeto.
( ) Foi na primeira geração que foi introduzida a arquitetura de Von Neumann, que exibe a arquitetura de projeto de um computador digital eletrônico.
( ) O microprocessador foi proposto a partir da criação da arquitetura de Von Neumann.
Assinale a alternativa que apresenta a sequência CORRETA:
( ) V – F – F.
( ) V – V – F.
( ) F – V – F.
( ) F – F – V.
4 Leia o texto a seguir:
Uma das principais vantagens do computador quântico seria poder realizar cálculos e resolver algoritmos num tempo muito mais eficiente que o levado para resolver esses mesmos algoritmos em um computador clássico. Um exemplo seria a fatoração em primos de números naturais. (CREPALDI et. al., 2017, p. 8).
Os computadores quânticos aproveitam o comportamento único da física quântica – como superposição, emaranhamento e interferência quântica – e o aplicam à computação. Isso introduz novos conceitos aos métodos tradicionais de programação.
Disserte sobre os computadores quânticos e quais são os desafios que observamos nos trabalhos científicos publicados nesta área.
5 A Pascaline, também chamada de Máquina Aritmética, foi a primeira calculadora ou máquina de somar a ser produzida. Esse equipamento foi projetado e construído pelo matemático-filósofo francês Blaise Pascal entre 1642 e 1644.
Neste contexto, disserte sobre o funcionamento e a estrutura da Pascaline.
1 INTRODUÇÃO
De acordo com Englander (2009), existem alguns componentes necessários para a implementação de um modelo computadorizado de entrada-processo-saída:
a) O hardware do computador, que fornece os mecanismos físicos para entrada e saída de dados, manipular e processar dados e controlar eletronicamente os vários componentes de entrada, saída e armazenamento;
b) O software, tanto do aplicativo quanto do sistema, que fornece instruções que informam o hardware exatamente quais tarefas devem ser executadas e em que ordem;
c) Os dados que estão sendo manipulados e processados. Esses dados podem ser numéricos, alfanuméricos, gráficos ou podem assumir alguma outra forma, mas em todos os casos, devem ser representáveis de forma que o computador possa manipular.
Em sistemas modernos, a entrada de dados, exibição de saída e armazenamento de dados e software são usados para a realização do processamento, geralmente ocorrem em um local diferente do computador (onde ocorre o processamento real). Em muitas instalações, o processamento real é distribuído entre os sistemas de computador, com resultados particulares passados para os sistemas individuais que os requerem (ENGLANDER, 2009).
d) O componente de comunicação, que consiste em hardware e software que transportam programas e dados entre sistemas de computador interconectados.
Os componentes de hardware e software do sistema compõem a arquitetura do sistema de computador. O componente de comunicação conecta sistemas de computador individuais. O componente de dados, e também o software aplicativo, embora fundamental para a operação do sistema de computador, são fornecidos ao sistema de computador pelo usuário, em vez de ser uma parte da arquitetura do próprio sistema de computador.
É útil observar, no entanto, que o software aplicativo e a estrutura de dados são frequentemente considerados como parte da arquitetura geral do sistema quando se considera a arquitetura da perspectiva da organização.
Ao longo desse tópico, iremos discutir sobre o primeiro elemento (o hardware) e a sua composição.
2 OS COMPONENTES DE HARDWARE
A parte mais visível do sistema informático é obviamente o hardware que compõe o sistema. Considere, por exemplo, o sistema de computador no qual você escreve e executa seus programas.
Você usa um teclado e mouse para fornecer entrada de texto e dados do seu programa, bem como comandos para o computador. Uma tela de exibição é comumente usada para observar a saída. Uma impressora está frequentemente disponível como uma saída alternativa para a tela. Tudo isso está envolvendo os dispositivos (componentes) físicos.
Cálculos e outras operações em seu programa são executados por uma unidade central de processamento (CPU) dentro do computador. A memória é fornecida para manter seus programas e dados durante o processamento.
Outros dispositivos de entrada e saída, como um disco e cartões SD plug-in, são usados para fornecer armazenamento de longo prazo de seu programa e arquivos de dados. Alguns dos periféricos que podem e/ou devem ser conectados em um PC são apresentados na Figura 5.
Exemplos de periféricos externos de um PC
De acordo com Paixão (2014), alguns desses dispositivos são essenciais para a operação mínima do PC enquanto outros dependem exclusivamente da aplicação para a qual o PC é destinado. Por exemplo, se um operador precisa digitalizar imagens com certa frequência, então é muito provável que o seu PC tenha um scanner de mesa conectado, pois isso facilitará o trabalho no dia a dia.
As operações de E/S são realizadas por meio de uma grande variedade de dispositivos externos, que oferecem um meio de trocar dados entre o ambiente externo e o computador (STALLINGS, 2017, p. 177).
Um dispositivo externo se conecta ao computador por uma conexão com um módulo de E/S, conforme pode ser visualizado na Figura 6.
Modelo genérico de um módulo de E/S
Fonte: Stallings (2017, p. 177).
A conexão é usada para trocar sinais de controle, estado e dados entre os módulos de E/S e o dispositivo externo. Um dispositivo externo conectado a um módulo de E/S normalmente é chamado de dispositivo periférico ou, simplesmente, periférico.
Dados e programas são transferidos entre os vários dispositivos de entrada/saída e memória para a CPU utilizá-los. A CPU, a memória e todos os dispositivos de entrada, saída e armazenamento formam o hardware, ou seja, a parte de um sistema de computador (STALLINGS, 2017).
De acordo com Englander (2009), o hardware forma a parte tangível do sistema. Isso é físico – você pode tocá-lo, que é o que a palavra ‘‘tangível’’ significa. A Figura 7 apresenta um sistema de computador pessoal típico.
Um sistema de computador pessoal típico
Fonte: Englander (2009, p. 14).
O diagrama na Figura 7 se aplica igualmente para grandes computadores mainframe, pequenos computadores pessoais e até mesmo dispositivos, como PDAs, iPods, GPSs e telefones celulares.
Os computadores grandes e pequenos diferem principalmente em velocidade, capacidade e seleção de dispositivos periféricos, enquanto os componentes básicos de hardware e design são muito semelhantes. Nesse contexto, Englander (2009) afirma que a própria CPU é frequentemente vista como uma composição de três subunidades primárias:
1. a unidade aritmética/lógica (ou ULA-Unidade Lógica e Aritmética) onde os cálculos e processamentos aritméticos e lógicos são realizados;
2. a unidade de controle, que controla o processamento de instruções e o movimento de dados internos da CPU de uma parte da CPU para outra;
3. a unidade de interface, que move instruções e dados do programa entre a CPU e outros componentes de hardware.
A unidade de interface interliga a CPU com a memória e também com os vários módulos de E/S (entrada/saída). Isto também pode ser usado para conectar várias CPUs.
Dentro de muitos sistemas de computador, um barramento interliga a CPU, memória e todos os componentes de E/S. Um barramento é simplesmente um feixe de fios que transportam sinais e energia entre os diferentes componentes. Em outros sistemas, os módulos de E/S estão conectados à CPU através de um ou mais processadores conhecidos como canais (ENGLANDER, 2009).
A memória principal, geralmente conhecida como armazenamento primário, armazenamento de trabalho ou RAM (para memória de acesso aleatório), contém programas e dados para acesso pela CPU. A Figura 8 apresenta em destaque a placa de circuito eletrônico com a CPU.
Placa de circuito eletrônico com a CPU, microchip e componentes eletrônicos de fundo
O armazenamento primário é composto por um grande número de células, cada uma numerada e endereçável individualmente. Cada célula contém um único número binário que representa parte de um valor de dados ou parte de uma instrução. O menor tamanho endereçável da célula na maioria dos computadores atuais é de 8 bits, conhecido como byte de memória. Oito bits de memória podem conter apenas 256 padrões diferentes, então as células vizinhas na memória são quase sempre combinadas para formar agrupamentos com um número maior de bits (ENGLANDER, 2009).
A quantidade de armazenamento primário determina o número máximo de instruções e palavras de dados que podem ser carregadas na memória de um dispositivo periférico de uma só vez.
Segundo Englander (2009), a quantidade de armazenamento primário fornecida em um computador típico aumentou rapidamente à medida que a tecnologia de computador melhorou. Considerando que 64 kilobytes (KB) de memória foram considerados uma grande quantidade em 1980, mesmo os computadores pessoais mais baratos atualmente possuem 4 gigabytes (GB) de memória ou mais.
Grandes computadores podem fornecer muitos gigabytes de armazenamento primário. Existem programas no mercado que exigem centenas de megabytes (MB) de memória para executar. A disponibilidade barata de maiores quantidades de memória permitirá o desenho de programas muito sofisticados que não seriam possíveis anteriormente.
Isso também vale para o armazenamento secundário. Mesmo os pequenos computadores pessoais fornecem discos com armazenamento medido em dezenas ou centenas de gigabytes. O armazenamento de imagens e vídeo, em particular, requer uma enorme capacidade de armazenamento. Não é incomum para ver matrizes de discos rígidos, mesmo em alguns computadores pessoais, fornecendo trilhões de bytes (especificado como terabytes) de armazenamento de longo prazo (ENGLANDER, 2009).
As instruções que formam um determinado programa são alocadas no armazenamento primário, então levado para a unidade central de processamento e executado. Conceitualmente, as instruções são trazidas e executadas uma de cada vez, embora os sistemas modernos sobreponham a execução de instruções até certo ponto. As instruções devem estar no armazenamento primário para serem executadas.
A unidade de controle interpreta cada instrução e determina o curso de ação. Cada instrução é projetada para executar uma tarefa simples. Instruções existem para executar funções aritméticas básicas, para mover dados de um lugar no computador para outro, para realizar as operações de E/S e para realizar muitas outras tarefas.
O poder do computador vem da capacidade de executar essas instruções simples em velocidades extremamente altas, medidas em milhões, bilhões ou trilhões de instruções executadas por segundo. Como vimos, é necessário traduzir programas de linguagem de alto nível para a linguagem da máquina para que a execução do programa ocorra, e isso pode exigir dezenas ou mesmo centenas de instruções de máquina para formar a linguagem de máquina equivalente a uma única declaração de linguagem.
Diante desse contexto, Delgado e Ribeiro (2017) afirmam que um computador deve ser constituído pelos seguintes componentes fundamentais:
processador – Executa as instruções;
memória de instruções – local onde as instruções que compõem o programa estão armazenadas;
memória de dados – usada para armazenar os dados de entrada, os dados intermediários e os dados de saída do programa;
interface com o mundo exterior – para interação com este.
A Figura 9 apresenta a representação da estrutura básica de um computador.
Estrutura básica de um computador
FONTE: Delgado e Ribeiro (2017, p. 4).
No vídeo intitulado de Organização de Computadores – Aula 14 – Tópicos de entrada e saída, a professora Cíntia Borges Margi aborda os princípios dos dispositivos de entrada e saída de forma prática e objetiva. Acesso em: 20 jun. 2022.
As instruções do programa normalmente são executadas sequencialmente, a menos que a própria instrução diz ao computador para alterar a ordem de processamento.
Por fim, temos que os dados que são manipulados por essas instruções também são armazenados na memória enquanto estão sendo processados. A ideia de que as instruções do programa e os dados são armazenados em uma memória enquanto está sendo processada é conhecida como o conceito de programa armazenado.
3 CARACTERÍSTICAS DOS DISPOSITIVOS DE E/S TÍPICOS
Neste tópico estamos interessados em refletir sobre as características dos dispositivos que afetarão as capacidades de E/S do computador, em particular a velocidade e a quantidade de transferência de dados necessários para usar o computador de forma eficiente e completa.
Considere, por exemplo, o teclado como um dispositivo de entrada. O teclado é basicamente um dispositivo baseado em caracteres. Por exemplo, ao digitar no teclado de um PC podemos perceber que esse processo resulta em uma entrada Unicode ou ASCII para o computador – esse processo ocorre com a leitura e compreensão de um caractere por vez.
O computador deve ser capaz de distinguir cada tecla ou comandos que foram acionados pelos usuários. Ou seja, não deve perder a entrada de dados mesmo que vários dispositivos enviem um caractere simultaneamente, e devem ser capazes de responder rapidamente.
Outro dispositivo de entrada que gera uma entrada inesperada é o mouse. Quando ele é movimentado, espera-se que o cursor se mova na tela. O ato de clicar sobre um botão do mouse pode servir como entrada esperada para um programa, ou pode ser um ato inesperado e mudar a forma com que o programa está sendo executado. De fato, entradas inesperadas são fundamentais para os programas escritos em linguagens modernas orientadas a eventos, como Visual Basic e Java. Ao selecionar um item em um menu suspenso ou clicar em um ícone da barra de ferramentas, o usuário espera uma resposta (ENGLANDER, 2009). A Figura 10 representa algumas linguagens de programação.
Processo de desenvolvimento em uma linguagem de programação
Novamente, as taxas de dados são lentas. Impressoras e telas de exibição devem operar em uma ampla faixa de taxas de dados. Embora a maioria dos monitores e impressoras sejam capazes de lidar com texto ASCII ou Unicode, boa parte das saídas modernas são produzidas graficamente ou como uma mistura de descritores de fonte, texto, gráficos de bitmap e gráficos de objetos, uma página ou uma tela de cada vez, usando uma linguagem de descrição de página.
A escolha da linguagem de descrição da página e a mistura de elementos são determinadas pelas capacidades da impressora ou placa gráfica. Claramente, a saída para uma impressora consiste apenas de uma página ocasional ou duas de texto certamente não exigirá uma alta taxa de dados, independentemente do método de saída usado.
De acordo com Englander (2009), a saída de gráficos de bitmap de alta resolução e imagens de vídeo para um monitor é uma situação bem diferente. Se os gráficos devem ser enviados para a placa gráfica como as imagens bitmap, mesmo em formato compactado, com dados para cada pixel a ser produzido, pode demorar uma quantidade de dados para produzir uma única imagem, e a transferência de dados de alta velocidade será essencial. Uma única imagem colorida em uma tela de alta resolução pode exigir vários megabytes de dados, e é desejável produzir a imagem na tela o mais rápido possível.
Se a imagem representa um vídeo, são necessárias taxas de transferência de dados extremamente altas. Isso sugere que as atualizações de imagem de tela podem exigir vários megabytes por segundo, mesmo quando os métodos de compressão de dados são usados para reduzir a taxa de transferência.
Dentro desse contexto, podemos comparar os requisitos de E/S de teclados, telas e impressoras com os de discos. Como o disco é usado para armazenar programas e dados, seria muito raro que um programa exigisse uma única palavra de dados ou programa do disco. Os discos são usados para carregar programas inteiros ou armazenar arquivos de dados. Assim, os dados do disco são sempre transferidos em blocos, nunca como bytes ou palavras individuais, e os discos podem operar em taxas de transferência de dezenas ou mesmo centenas de megabytes por segundo. Como dispositivos de armazenamento, os discos devem ser capazes de gerenciar a entrada e saída de dados, embora não simultaneamente (ENGLANDER, 2009).
Em um sistema grande pode haver vários discos tentando transferir blocos de dados para a CPU de forma simultânea. Podemos ver, na Figura 11, um exemplo de barramento do computador que pode ser utilizado no processo de transferência de dados.
Representação do barramento
Ainda segundo Englander (2009), para E/S de disco e imagem, o computador deve ser capaz de transferir enormes quantidades de dados muito rapidamente entre a CPU e o(s) disco(s) ou dispositivos de imagem.
Além disso, podemos ver a importância de fornecer um método para permitir a utilização da CPU para outras tarefas enquanto essas grandes operações de E/S estão ocorrendo. Com a rápida proliferação de redes nos últimos anos, as interfaces de rede também se tornam uma importante fonte de E/S. Do ponto de vista de um computador, a rede é apenas outro dispositivo de E/S. Em muitos casos, a rede é usada como substituto de um disco, com os dados e programas armazenados em um computador remoto e servidos à estação local. Como exemplo, a seguir, a Figura 12, representa a aplicação dos princípios da Tecnologia de computação em nuvem e armazenamento de dados on-line.
Representação dos princípios de tecnologia de computação em nuvem e armazenamento de dados on-line
Para o computador que está atuando como servidor, pode haver uma demanda massiva por serviços de E/S. Interfaces como o Windows permitem transferência de informações gráficas de um computador para uma tela localizada em outro lugar na rede. Com gráficos de objetos simples ou imagens de bitmap armazenadas localmente e com um requisito mínimo para grandes transferências de arquivos, um pequeno computador com um modem pode operar suficientemente em taxas de transferência de E/S de 3.000 bytes por segundo, mas computadores com mais requisitos intensivos podem exigir taxas de transferência de E/S de 50 megabytes por segundo ou mais (ENGLANDER, 2009).
À medida que a tecnologia dos computadores avança, as taxas de dados continuam a aumentar em ritmo acelerado. Por exemplo, redes locais operando em 1 gigabyte (ou, equivalentemente, 125 megabytes) por segundo são cada vez mais comuns. Deve-se ressaltar que discos, impressoras, telas e a maioria dos outros dispositivos de E/S operam quase completamente sob o controle do programa da CPU.
Impressoras e telas são dispositivos de saída, e a saída produzida pode ser determinada apenas pelo programa que está sendo executado. Embora os discos funcionem como dispositivos de entrada e saída, a situação é semelhante. É o programa em execução que deve sempre determinar qual arquivo deve ser lido na entrada, ou onde armazenar a saída (ENGLANDER, 2009). Na Figura 13 temos um exemplo de impressora doméstica baseada em toner.
Impressora doméstica baseada em toner
Fonte: https://br.freepik.com/fotos-gratis/impressora-domestica-baseada-em-toner_22895932.htm#query=impressora&position=3&from_view=search. Acesso em: 28 jun. 2022.
A partir desse contexto, podemos definir que é sempre um programa em execução na CPU que inicia o processo de transferência de dados de E/S, mesmo se a CPU tiver permissão para executar outras tarefas enquanto aguarda uma determinada operação de E/S a ser concluída.
Alguns dispositivos de entrada devem ser capazes de gerar entrada para a CPU independente do controle do programa, como CD-ROMs e dispositivos USB, que podem se autoiniciar sinalizando sua presença para um programa dentro do software de sistema. As redes locais também podem gerar esse tipo de entrada, pois um programa em uma CPU diferente pode solicitar, por exemplo, um arquivo armazenado em seu disco (ENGLANDER, 2009).
Além disso, há situações em que um dispositivo de E/S endereçado está ocupado ou não está pronto. Os exemplos mais óbvios são uma impressora sem papel ou uma unidade de DVD sem disco ou ainda um disco rígido que está processando outra solicitação. Seria desejável que o dispositivo fosse capaz de fornecer informações de status para a CPU, para que a ação apropriada possa ser realizada. Podemos visualizar os componentes do disco rígido a seguir, na Figura 14.
Componentes do disco rígido (vista superior)
Fonte: https://br.freepik.com/fotos-premium/mao-de-alto-angulo-segurando-o-disco-rigido_26495653.htm. Acesso em: 28 jun. 2022.
Por fim, relacionamos que os diferentes requisitos para cada dispositivo de E/S mais a necessidade de fornecer dispositivos com recursos de endereçamento, sincronização, status e controle externo sugerem que é necessário fornecer a cada dispositivo sua própria interface especial.
Dessa forma, podemos afirmar que o módulo de E/S conterá os circuitos de hardware especializados necessários para atender a todos os requisitos de E/S que estabelecemos, incluindo a capacidade de transferência de bloco com buffer adequado e uma interface padronizada e simples para a CPU. Na outra interface, o módulo de E/S terá a capacidade de controlar o dispositivo ou dispositivos específicos para os quais foram projetados.
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu:
Compreender que as operações de E/S são realizadas por meio de uma grande variedade de dispositivos externos, que oferecem um meio de trocar dados entre o ambiente externo e o computador.
O hardware forma a parte tangível do sistema, isto é, que pode ser tocado.
Entender que o computador deve ser capaz de distinguir cada tecla ou comandos que foram acionados pelos usuários. Ou seja, não deve perder a entrada de dados mesmo que vários dispositivos enviem um caractere simultaneamente, e devem ser capazes de responder rapidamente.
Visualizamos que a unidade aritmética/lógica (ou ULA-Unidade Lógica e Aritmética) onde os cálculos e processamentos aritméticos e lógicos são realizados.
Compreendemos que os dados e programas são transferidos entre os vários dispositivos de entrada/saída e memória para a CPU utilizá-los.
Compreendemos que a memória principal, geralmente conhecida como armazenamento primário, armazenamento de trabalho ou RAM (para memória de acesso aleatório), contém programas e dados para acesso pela CPU.
AUTOATIVIDADE
1 Leia o trecho a seguir:
Como consequência do avanço das arquiteturas de CPU e GPU, nos últimos anos houve um aumento no número de APIs (Application Programming Interface) de programação paralela para os dois dispositivos. Atualmente tem-se Pthread e OpenMP para programação paralela em CPU e CUDA, OpenCL e mais recentemente OpenACC para GPU. A partir do surgimento dessas APIs, muitas aplicações foram reescritas para serem executadas de forma paralela em CPU ou GPU, trazendo em muitos casos, uma redução do tempo de execução. Porém, não há uma avaliação que confirme qual dessas APIs apresenta maior desempenho e em que situações isso acontece (...). (CORRÊA e SULZBACH, 2017, p. 1).
A partir desse contexto, e tendo em vista que a CPU é frequentemente vista como uma composição de três subunidades primárias, assinale a alternativa CORRETA:
( ) a unidade aritmética/lógica, a unidade de controle e a unidade de interface.
( ) a unidade de memória, a unidade de cálculo e a unidade de interface.
( ) a unidade geométrica, a unidade de controle e a unidade de visualização.
( ) a unidade de entrada, a unidade de processamento e a unidade de visualização.
2 Leia o texto a seguir:
Na atualidade, muito se discute a questão da comunicação e interação homem-máquina. Claro que esta interatividade se dá porque os computadores estão se aperfeiçoando a cada dia, na intenção de se tornar um equipamento cada vez mais amigável. Muito da interatividade homem-máquina iniciou-se no desenvolvimento de sistemas operacionais que fossem capazes de gerenciar dispositivos de entrada e saída de dados, além de promover um ambiente gráfico mais amigável e intuitivo. (Valentim et. al., 2002, p. 1)
Com base nas definições sobre os dispositivos de entrada e saída de dados, analise as sentenças a seguir:
I- As operações de E/S são realizadas por meio de uma grande variedade de dispositivos externos, que oferecem um meio de trocar dados entre o ambiente externo e o computador.
II - A conexão é usada para trocar sinais de controle, estado e dados entre os módulos de E/S e o dispositivo externo.
III - Um dispositivo externo conectado a um módulo de E/S normalmente é chamado de dispositivo periférico ou, simplesmente, periférico.
Assinale a alternativa CORRETA:
( ) As sentenças I e II estão corretas.
( ) Somente a sentença II está correta.
( ) As sentenças I, II e III estão corretas.
( ) Somente a sentença III está correta.
3 Leia o texto a seguir:
O bloco Fluxo de Dados, de quatro bits, que é o coração das CPUs, é composto por uma ULA – elemento responsável pelas operações aritméticas e lógicas, três registradores (reg), elementos de armazenamento, que são nomeadas de A, B e R, e quatro dispositivos tri-state para o isolamento do barramento, além de um barramento que serve de conexão para os demais elementos.
O bloco Memória de Controle é composto por um contador presetável, que aponta para as microinstruções que compõem o microprograma, e por, no mínimo, uma memória EPROM (Erase Programmable Read Only Memory), que armazena o microprograma ou mais precisamente as microinstruções (FERLIN, 1999, p.4).
A partir desse contexto, classifique em V para as sentenças verdadeiras e F para as falsas:
( ) Dentro de muitos sistemas de computador, um barramento interliga a CPU, memória e todos os componentes de E/S.
( ) Um barramento é simplesmente um feixe de fios que transportam sinais e energia entre os diferentes componentes.
( ) A unidade de interface interliga a CPU com a memória e também com os vários módulos de E/S (entrada/saída). Isto também pode ser usado para conectar várias CPUs.
Assinale a alternativa que apresenta a sequência CORRETA:
( ) V – F – F.
( ) V – F – V.
( ) F – V – F.
( ) V – V – V.
4 Leia o texto a seguir:
“Unidade de Controle: é a unidade responsável por controlar, de acordo com a instrução recebida, todas as unidades do microprocessador.” (PILLA, 2003, p. 4).
A unidade de controle interpreta cada instrução e determina o curso de ação. Cada instrução é projetada para executar uma tarefa simples. A partir desse contexto, explique sobre o funcionamento da unidade de controle, apresentando as principais características desse dispositivo.
5 A RAM e a HDD são as peças que armazenam dados, e sua capacidade de trabalhar com a CPU e a placa-mãe é chamada de taxa de transferência. Aumentar essa taxa envolve particionamento cuidadoso e atualizações direcionadas. Neste contexto, disserte sobre as vantagens que obtemos com o aumento das taxas de dados da memória RAM em relação ao funcionamento e desempenho do computador.
1 INTRODUÇÃO
O sistema de computador é dividido em duas partes: hardware e software. Podemos dizer que o hardware não pode realizar qualquer cálculo, comparação ou manipulação sem ser instruído a fazer a operação. Essas instruções desempenham um papel vital no desempenho de um computador.
Um completo conjunto de instruções escritas para resolver um problema em um computador é chamado de software, ou seja, essa ação refere-se ao conjunto de programas de computador que fazem com que o hardware (o sistema computacional) funcione e realize a operação desejada.
De acordo com Stallings (2017), o software de computador é normalmente classificado em duas grandes categorias: Software do Sistema e Software Aplicativo. Ao longo desse tópico iremos discutir e refletir sobre esses dois elementos.
2 SOFTWARE DO SISTEMA
O software do sistema inclui programas gerais escritos para um computador. Isso consiste de programas pré-escritos e a documentação fornecida pelo fabricante junto com o computador (STALLINGS, 2017).
De acordo com Stallings (2017), esses programas são mantidos permanentemente na máquina e os seus objetivos primários são:
aumentar a eficiência da utilização de hardware;
tornar os computadores simples de usar.
O primeiro objetivo é realizado por meio do componente conhecido como sistema operacional. O software do sistema é um conjunto de instruções para a máquina interpretar e executar o software de aplicação. Por exemplo, os tradutores (chamados compiladores e intérpretes), sistemas operacionais, utilitários e software para fins especiais (STALLINGS, 2017).
2.1 SISTEMA OPERACIONAL
Um sistema operacional é o sistema mais importante, essencial para operar o computador. Um sistema operacional gerencia os recursos do equipamento de forma eficaz, cuidando do agendamento de vários trabalhos para execução e gerenciando o fluxo de dados e instruções entre as unidades de entrada/saída e a memória principal. Na Figura 15 temos um exemplo de sistema operacional.
Sistema operacional
Fonte: https://br.freepik.com/fotos-premium/mao-de-alto-angulo-segurando-o-disco-rigido_26495653.htm. Acesso em: 28 jun. 2022.
De acordo com Stallings (2017), o sistema operacional é um programa que controla a execução dos programas aplicativos e atua como uma interface entre o usuário e o hardware do computador, podendo ser definido como tendo dois objetivos:
conveniência: um SO torna um computador mais conveniente para uso;
eficiência: um SO permite que os recursos do sistema de computação sejam usados de uma maneira eficiente.
No vídeo Unidade I – Conceitos básicos Hardware, Software e Sistemas operacionais, o professor Reinaldo Silva aborda os conceitos básicos de hardware e software, e finaliza a sua explicação apresentando algumas características dos sistemas operacionais.
Acesso em: 20 jun. 2022.
O primeiro sistema operacional, chamado de sistema operacional de processamento em lote, foi desenvolvido para os computadores de segunda geração. Este sistema executa tarefas em série uma após a outra, de um lote de trabalhos enviados para execução. A unidade central de processamento é mantida ocupada apenas durante o ciclo de processamento de um trabalho e permanece ociosa durante as operações de entrada e saída. Um sistema operacional multiprogramação lida com vários trabalhos simultaneamente sobrepondo a entrada/saída e o processamento de vários ciclos de trabalhos (STALLINGS, 2017).
Além disso, conforme Stallings (2017), outros tipos de sistema operacional populares atualmente são os sistemas operacionais de multiprocessamento e os sistemas operacionais em tempo real. A operação de um sistema de multiprocessamento utiliza várias CPUs para processar vários trabalhos. Já o sistema operacional em tempo real é interativo com limitação de tempo estrita. O processamento de dados é feito com rapidez suficiente para produzir a saída, controlar, direcionar ou afetar o resultado da atividade em andamento.
Um sistema operacional governa o funcionamento do computador e a entrada/saída dos dispositivos. Os programas do sistema operacional atuam como uma interface entre os programas e componentes do computador e auxiliam na execução das tarefas do usuário. As suas principais funções são a identificação do usuário e o gerenciamento dos recursos utilizados pelos usuários. Desta forma, usuários não autorizados não podem usar o computador.
O compartilhamento de recursos de computador entre muitos usuários é realizado pelo sistema operacional. A partilha é obtida permitindo execuções simultâneas de mais de um programa de usuário, geralmente chamado de multiprogramação. Uma mistura de programas pode manter toda a memória ocupada, todos os dispositivos ativos e a unidade de controle e ALU constantemente ocupada, aumentando assim a utilização do hardware.
O sistema operacional (SO) é o software que controla a execução de programas em um processador e que gerencia os recursos deste. Diversas funções realizadas pelo sistema operacional, incluindo o escalonamento de processo e o gerenciamento de memória, só podem ser realizadas de modo eficiente e rápido se o hardware do processador incluir capacidades para dar suporte ao SO. Praticamente todos os processadores incluem essas capacidades de uma forma ou de outra, incluindo o hardware de gerenciamento de memória virtual e o hardware de gerenciamento de processos. O hardware inclui registradores e buffers de uso especial, além de circuitos para realizar tarefas básicas de gerenciamento de recursos. (STALLINGS, 2017, p. 210).
Além disso, o sistema operacional é responsável pela proteção de dados e programas do usuário; controle da transferência de dados e programas entre a memória principal e o armazenamento secundário e outros dispositivos de E/S; o fornecimento dos recursos para detectar e corrigir erros no programa de um usuário, dentre outras funções (STALLINGS, 2017). A Figura 16 apresenta uma Ilustração do conceito de sistema operacional.
Conceito de sistema operacional
https://br.freepik.com/vetores-gratis/ilustracao-do-conceito-de-sistema-operacional_8497398.htm?query=sistema%20operacional. Acesso em: 28 jun. 2022.
Um sistema operacional entende um conjunto fixo de comandos. Este conjunto de comandos é frequentemente chamado de Job Control Language (JCL), cujos comandos são usados pelos usuários para indicar seus requisitos para o sistema operacional (STALLINGS, 2017).
A operação do sistema que é usado com um microcomputador é chamada de CP/M (programa de controle para microprocessador).
2.2 SOFTWARE UTILITÁRIO
De acordo com Stallings (2017), o software utilitário pode ser considerado um software de sistema usado com bastante frequência no desenvolvimento de um programa. Os programas de mesclagem de classificação, por sua vez, são usados para classificar registros em uma determinada maneira ou sequência.
O Software Utilitário é um software de sistema que ajuda a manter o funcionamento adequado e suave de um Sistema de Computador. Ele auxilia o Sistema Operacional a gerenciar, organizar, manter e otimizar o funcionamento do sistema de computador. Esses programas são normalmente fornecidos pelos fabricantes. O programador também pode desenvolver seu próprio software utilitário e mantê-lo na memória secundária do computador (STALLINGS, 2017).
O Software Utilitário executa determinadas tarefas como detecção de vírus, instalação e desinstalação, backup de dados, exclusão de arquivos indesejados etc. Alguns exemplos são software antivírus, ferramentas de gerenciamento de arquivos, ferramentas de compactação, ferramentas de gerenciamento de disco, etc.
Um antivírus é um software utilitário que ajuda a manter o computador livre de vírus. Além disso, notifica quando algum arquivo malicioso é detectado e remove esses arquivos. Além disso, ele verifica qualquer novo dispositivo conectado ao computador e descarta qualquer vírus, se encontrar. Ele também verifica o sistema de tempos em tempos em busca de ameaças e as elimina. Exemplos de antivírus são McAfee Antivirus, Quickheal Antivirus, Windows Defender etc.
Outro exemplo que podemos relacionar de um Software Utilitário é o Sistema de Gerenciamento de Arquivos. Esses softwares utilitários são usados para gerenciar arquivos do sistema de computador. Como os arquivos são uma parte importante do sistema, todos os dados são armazenados nos arquivos. Portanto, este software utilitário ajuda a navegar, pesquisar, organizar, localizar informações e visualizar rapidamente os arquivos do sistema.
O Windows Explorer é uma ferramenta de gerenciamento de arquivos padrão presente no sistema operacional Windows. Alguns outros exemplos de ferramentas de gerenciamento de arquivos são Google Desktop, Double Commander, Directory Opus etc.
Podemos, ainda, relacionar as ferramentas de compressão como softwares utilitários. Uma parte importante de um computador é o espaço de armazenamento, e é muito importante manter esse armazenamento. Portanto, usamos determinados softwares utilitários para compactar arquivos grandes e diminuir seu tamanho (são as ferramentas de compactação). O formato dos arquivos muda durante a compactação e não podemos acessá-los ou editá-los diretamente. Além disso, podemos descompactar facilmente o arquivo e recuperar o arquivo original. Exemplos de ferramentas de compressão são WinZip, WinRAR, WinAce, PeaZip, 7-Zip etc.
Além desses exemplos, podemos observar as ferramentas de gerenciamento de disco. Esses softwares utilitários são usados para gerenciar dados em discos, executando funções como dispositivos de particionamento, gerenciar unidades etc.
Já as ferramentas de limpeza de disco são um exemplo de um software utilitário que ajuda a liberar espaço em disco. Além disso, os arquivos que não estão mais em uso são removidos. Exemplos são Razer Cortex, Piriform CCleaner etc.
Por fim, o desfragmentador de disco é um software utilitário que ajuda a reduzir a fragmentação e, portanto, reduz a velocidade de acesso. Desfragmentar refere-se a reorganizar arquivos e armazená-los em locais de memória contíguos. Além disso, economiza tempo na leitura de arquivos e na gravação de arquivos em disco.
3 SOFTWARE APLICATIVO
O software aplicativo é escrito para executar uma tarefa ou processo específico, como a contabilidade, folha de pagamento, lista de discussão, preparação de resultados e assim por diante (STALLINGS, 2017). Na Figura 17, vemos um profissional criando (implementando) um software aplicativo.
Representação do processo de criação de um software aplicativo
https://br.freepik.com/vetores-gratis/ilustracao-do-conceito-de-sistema-operacional_8497398.htm?query=sistema%20operacional. Acesso em: 28 jun. 2022.
A maioria dos softwares aplicativos são escritos em linguagens de alto nível. Assumindo que a tarefa a ser realizada foi corretamente identificada (e definida), o usuário em potencial encontrará as seguintes fontes alternativas para este software aplicativo.
A partir desse contexto e de acordo com Stallings (2017), podemos relacionar os seguintes itens como sendo as características dos softwares aplicativos:
Possibilidade do desenvolvimento: o programa escrito pelo usuário pode apresentar uma solução específica e satisfatória. Será uma correspondência exata para as necessidades do negócio.
Pacotes de aplicativos de uso geral: os pacotes de aplicativos referem-se a um conjunto de programas de computador escritos para executar tarefas normalmente requeridas. Cada programa é escrito de tal forma que é aplicável a um grande número de usuários e a principal vantagem é que são relativamente baratos, pois o custo do pacote é distribuído por vários clientes. A principal desvantagem é que provavelmente não irá cumprir todos os requisitos dos potenciais usuários.
Software customizado: refere-se a programas de computador especialmente escritos para corresponder às necessidades exatas do usuário. A vantagem mais importante é que tais softwares atendem todas as necessidades do cliente. A grande desvantagem é que um software personalizado custa muito mais do que a aplicação de uso geral, porque o pacote é feito especialmente para um cliente em particular.
O software aplicativo se preocupa principalmente com a realização das tarefas dos usuários finais.
Muitas linguagens e ferramentas de software diferentes podem ser usadas para desenvolver o software de aplicação. Os profissionais (programadores, gerentes e diretores) devem entender quais ferramentas de software e linguagens de programação são apropriadas para os objetivos de sua organização.
3.1 LINGUAGENS DE PROGRAMAÇÃO
A primeira geração de linguagens de computador consistia na utilização de uma linguagem de máquina, que exigia que o programador escrevesse todas as instruções do programa em código binário (0s e 1s) e especificar locais de armazenamento para cada instrução e item de dados usados (STALLINGS, 2017), conforme exemplificado na Figura 18, a seguir.
Representação do código binário
A programação em linguagem de máquina era um processo muito lento e trabalhoso. À medida que o hardware do computador foi sendo desenvolvido, a velocidade de processamento e o tamanho da memória aumentaram, as linguagens de programação tornaram-se progressivamente mais fáceis para os humanos entenderem e usarem. Conforme Delgado e Ribeiro (2017, p. 9), “O código de máquina consiste numa sequência de instruções básicas que o computador sabe executar diretamente e que refletem diretamente os recursos internos de que o processador dispõe”.
A partir da década de 1950 até meados da década de 1970, surgiram linguagens de programação de alto nível, permitindo que os programas fossem escritos com palavras regulares usando declarações semelhantes a sentenças.
3.1.1 Linguagem de montagem
A linguagem Assembly é o próximo nível de linguagem de programação, acima da linguagem de máquina, e é considerada uma linguagem de “segunda geração”. Assim como a linguagem de máquina, a linguagem Assembly foi projetada para uma máquina específica e microprocessadores específicos (STALLINGS, 2017). A Figura 19 apresenta uma ilustração do código Assembly.
Representação do código binário
Essa linguagem faz uso de certos mnemônicos (por exemplo, carga, soma) para representar instruções de linguagem de máquina e locais de armazenamento. Ainda que possibilite aos programadores grande controle, é difícil e caro (devido à sua complexidade) escrever e aprender essa linguagem (STALLINGS, 2017).
3.1.2 Linguagens de terceira geração: Fortran, Cobol, Basic, Pascal e C
As linguagens de terceira geração especificam instruções como breves declarações que são mais parecidas com as linguagens naturais do que a Assembly.
Elas são menos eficientes no uso dos recursos computacionais do que as gerações anteriores, porém são mais fáceis de escrever e entender, além de possibilitar a criação de software para problemas empresariais e científicos.
O programador, transforma a especificação do sistema num programa, constituído por um algoritmo expresso numa linguagem de programação, como C. Neste nível, o programa é apenas texto que o computador ainda não entende diretamente, mas (i) já está mais sistematizado e rigoroso do que a especificação original e (ii) pode ser transformado automaticamente na linguagem que o computador entende diretamente (código de máquina). O texto do programa é também denominado código-fonte. (DELGADO e RIBEIRO, 2017, p.9).
Podemos citar como as linguagens mais importantes da terceira geração Fortran, Cobol, Basic e C, apresentadas a seguir.
O Fortran (FORMula TRANslator) foi desenvolvido em 1956 para fornecer uma maneira fácil de escrever aplicações científicas e de engenharia. É especialmente útil no processamento de dados numéricos (DELGADO; RIBEIRO, 2017). Alguns aplicativos de negócios podem ser escritos em Fortran, e versões contemporâneas fornecem estruturas sofisticadas para controlar a lógica do programa.
De acordo com Delgado e Ribeiro (2017), o Cobol (Common Business Oriented Language) foi desenvolvido no início da década de 1960 por um comitê que representava tanto o governo quanto a indústria, com o objetivo de atender o processo de gestão e administração de empresas, para processar grandes arquivos de dados com caracteres alfanuméricos (alfabéticos mistos e dados numéricos) e executar tarefas repetitivas, como folha de pagamento. Além disso, existem muitas versões do Cobol, mas não são todas compatíveis entre si.
O Basic, Pascal Basic e o Pascal são usados principalmente na educação para ensinar programação.
O Basic (Beginners All-purpose Symbolic Instruction Code) foi desenvolvido em 1964 por John Kemeny e Thomas Kurtz para ensinar alunos a utilizar (programar) os computadores. Embora seja de fácil usabilidade e existam diferentes versões dessa linguagem, ela realiza poucas tarefas de processamento de computador (DELGADO; RIBEIRO, 2017).
Já a ferramenta Pascal foi desenvolvida pelo suíço Niklaus Wirth, professor de ciência da computação, no final dos anos 1960. Pascal é usado principalmente em cursos de ciência da computação para ensinar boas práticas de programação (DELGADO; RIBEIRO, 2017).
Já a linguagem C é uma poderosa e eficiente ferramenta que foi desenvolvida no Bell Labs, da AT&T, no início dos anos 1970. Combina portabilidade da máquina com controle rígido e uso eficiente dos recursos do computador, e pode funcionar em uma variedade de computadores diferentes. É usada principalmente por programadores profissionais para criar sistemas operacionais e aplicativos (software), especialmente PCs (DELGADO; RIBEIRO, 2017, p.9).
Veja a seguir, na Figura 20, uma ilustração do desenvolvimento na linguagem C++.
Representação do desenvolvimento na linguagem C++
Por fim, de acordo com Delgado e Ribeiro (2017), a linguagem C++ é uma versão mais recente de C que utiliza os paradigmas da programação orientada a objetos. Possui todos os recursos de C, além de recursos adicionais para trabalhar com objetos de software. Essa linguagem é usada para desenvolver software aplicativo.
LEITURA COMPLEMENTAR
ESTRATÉGIAS DE PROGRAMAÇÃO MULTICORE: PIPELINING
Prof. Dr. João Bosco Mangueira Sobral
Pipelining é uma técnica em que várias instruções são sobrepostas durante a execução. O pipeline é dividido em estágios e esses estágios são conectados entre si para formar uma estrutura semelhante a um tubo. As instruções entram de uma extremidade e saem de outra.
O pipeline aumenta o rendimento geral da instrução. No sistema pipeline, cada segmento consiste em um registro de entrada seguido por um circuito combinacional.
O registrador é usado para armazenar dados e o circuito combinacional realiza as operações nele. A saída do circuito combinacional é aplicada ao registrador de entrada do próximo segmento.
O sistema de pipeline funciona como a configuração moderna da linha de montagem nas fábricas. Por exemplo, em uma indústria de fabricação de automóveis, grandes linhas de montagem são montadas e a cada ponto, há braços robóticos para realizar uma determinada tarefa, e então o carro se move adiante para o próximo braço.
O pipeline define a sobreposição temporal do processamento. Pipelines são vazios maiores do que linhas de montagem em computação que podem ser usadas para processamento de instruções ou, em um método mais geral, para executar qualquer operação complexa. Ele pode ser usado com eficiência apenas para uma sequência da mesma tarefa, muito semelhante às linhas de montagem.
Cada tarefa é subdividida em várias subtarefas sucessivas. Por exemplo, a execução de instruções de registro pode ser dividida em busca de instruções, decodificação, execução e write-back. Uma fase de pipeline relacionada a cada subtarefa executa as operações necessárias.
Além disso, uma quantidade de tempo semelhante é acessível em cada estágio para implementar a subtarefa necessária. Todos os estágios do pipeline funcionam como uma linha de montagem, ou seja, recebendo sua entrada geralmente do estágio anterior e transferindo sua saída para o próximo estágio.
Por fim, pode-se considerar que o pipeline básico opera com clock, ou seja, de forma síncrona. Isso define que cada estágio recebe uma nova entrada no início do ciclo de clock, cada estágio tem um único ciclo de clock disponível para implementar as operações necessárias e cada estágio produz o resultado para o próximo estágio pelo início do ciclo de clock subsequente.
Vantagens do Pipeline
O tempo de ciclo do processador é reduzido. Pode melhorar o rendimento da instrução. O pipeline não diminui o tempo necessário para fazer uma instrução. Em vez disso, ele pode aumentar as várias instruções que podem ser processadas juntas ("de uma só vez") e diminuir o atraso entre as instruções concluídas (conhecido como 'taxa de transferência').
Se o pipelining for usado, a unidade lógica aritmética da CPU pode ser projetada mais rapidamente.
O pipeline aumenta a execução em um núcleo sem pipeline por um elemento dos vários estágios (considerando que a frequência do clock também aumenta por um fator semelhante) e o código é ideal para execução do pipeline.
As CPUs com pipeline frequentemente trabalham em uma frequência de clock mais alta do que a frequência de clock da RAM (a partir das tecnologias de 2008, as RAMs operam em uma frequência baixa correlacionada às frequências da CPU), aumentando a implementação global do computador.
FONTE: SOBRAL, J. B. M. Estratégias de Programação Multicore : Pipelining. Universidade Federal de Santa Catarina (UFSC), 2017. Disponível em: <https://www.inf.ufsc.br/~bosco.sobral/ensino/ine5645/Pipelining_Estrategia_de_Programacao_Multicore.pdf>. Acesso em: 21 Jun. 2022.
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu:
Compreendemos que o software do sistema inclui programas gerais escritos para um computador. Isso consiste de programas pré-escritos e a documentação fornecida pelo fabricante junto com o computador.
Refletimos que um sistema operacional é o sistema mais importante e essencial para operar o computador. Um sistema operacional gerencia os recursos de forma eficaz, cuidando do agendamento de vários trabalhos para execução e gerencia o fluxo de dados e instruções entre as unidades de entrada/saída e a memória principal.
Entendemos que o software utilitário pode ser considerado como um software de sistema que é usado com bastante frequência no desenvolvimento de um programa.
Compreendemos que muitas linguagens e ferramentas de software diferentes podem ser usadas para desenvolver o software de aplicação. Os profissionais (programadores, gerentes e diretores) devem entender quais ferramentas de software e linguagens de programação são apropriadas para os objetivos de sua organização.
Visualizamos que as linguagens de terceira geração especificam instruções como breves declarações que são mais parecidas com as linguagens naturais do que a Assembly.
Compreendemos que o termo “software customizado”, refere-se a programas de computador especialmente escritos para corresponder às necessidades exatas do usuário.
AUTOATIVIDADE
1 O software do sistema é um conjunto de instruções para a máquina interpretar e executar o software de aplicação. Por exemplo, os tradutores (chamados compiladores e intérpretes), sistemas operacionais, utilitários e software para fins especiais.
O software do sistema inclui programas gerais escritos para um computador. A partir desse contexto, assinale a alternativa CORRETA:
( ) Isso consiste de programas pré-escritos e a documentação fornecida pelo fabricante junto com o computador.
( ) Isso consiste de cálculos matemáticos e a indexação dos dispositivos de entrada e saída.
( ) Isso consiste na análise do hardware e o desenvolvimento de um software compatível com os dispositivos.
( ) Isso consiste de programas pré-fabricados e a gestão e organização estrutural.
2 Leia o trecho a seguir:
Um sistema operacional, é um conjunto de programas, cujo propósito pode ser visto sob os seguintes aspectos, também denominados princípios: alocar recursos (como espaço em disco, tempo de processamento, dispositivos de E/S) e processos; mascarar detalhes do hardware ao usuário final; prover um ambiente de execução mais amistoso aos processos e aos seus respectivos usuários (DENARDIN, 1997, p. 65).
Com base nas definições dos Sistemas Operacionais, analise as sentenças a seguir:
I- Um sistema operacional gerencia os recursos do computador de forma muito eficaz, cuidando do agendamento de vários trabalhos para execução e gerencia o fluxo de dados e instruções entre as unidades de entrada/saída e a memória principal.
II- Um sistema operacional governa exclusivamente o funcionamento do computador, não sendo possível gerenciar a entrada/saída dos dispositivos.
III- O sistema operacional é um programa que controla a execução dos programas aplicativos e atua como uma interface entre o usuário e o hardware do computador.
Assinale a alternativa CORRETA:
a) ( ) As sentenças I e II estão corretas.
b) ( ) Somente a sentença II está correta.
c) ( ) As sentenças I e III estão corretas.
d) ( ) Somente a sentença III está correta.
3 O software aplicativo é escrito para executar uma tarefa ou processo específico, como a contabilidade, folha de pagamento, lista de discussão, preparação de resultados e assim por diante.
De acordo com esse contexto, classifique em V para as sentenças verdadeiras e F para as falsas:
( ) A maioria dos softwares aplicativos são escritos em linguagens de alto nível. Assumindo que a tarefa a ser realizada foi corretamente identificada (e definida), o usuário em potencial encontrará as seguintes fontes alternativas para este software aplicativo.
( ) O programa escrito pelo usuário pode apresentar uma solução específica e satisfatória. Será uma correspondência exata para as necessidades do negócio.
( ) Os pacotes de aplicativos referem-se a um conjunto de programas de computador, que foram escritos para executar tarefas normalmente requeridas. Cada programa é escrito de tal forma que é aplicável a um grande número de usuários.
Assinale a alternativa que apresenta a sequência CORRETA:
( ) V – V – V.
( ) V – F – V.
( ) F – V – F.
( ) F – F – V.
4 A primeira geração de linguagens de computador consistia na utilização de uma linguagem de máquina, que exigia que o programador escrevesse todas as instruções do programa em código binário (0s e 1s) e especificasse locais de armazenamento para cada instrução e item de dados usados.
Disserte sobre a programação em linguagem de máquina apontando os aspectos do seu funcionamento.
5 Leia o texto a seguir:
“Assembly é uma linguagem de baixo nível, que pode ser utilizada em programas para acelerar tarefas lentas. Basicamente ela consiste de sentenças que representam instruções em linguagem de máquina (mnemônicos) e, como ela está próxima ao código de máquina, ela se torna rápida” (LINZMEIER, 1999, p.12).
Neste contexto, disserte sobre o funcionamento da linguagem Assembly e de que forma podemos utilizar essa linguagem.