Buscar

Aulas-de-1-a-10-Organização-e-arquitetura

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 101 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 101 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 101 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Índice
Aula 1 - Evolução Histórica da Computação 	4
Introdução	4
Introdução da história da tecnologia	4
O surgimento e as gerações na evolução dos computadores	5
Geração Zero - Computadores Mecânicos e Eletromecânicos	5
500a.C. Ábaco	5
1642-1644. Calculadora de somar e subtrair	6
1673. Calculadora das quatro operações fundamentais	6
Revolução Industrial	7
A Geração de Computadores Eletrônicos	8
Saiba mais	9
Segunda Geração (Transistor)	9
Terceira Geração (Circuitos Integrados)	10
Quarta Geração (VLSI)	11
Altair 8080	12
IBM PC (Personal Computer)	12
Apple	12
Saiba mais	13
Atividade	13
Aula 2 - Hardware, Software e Conceitos 	15
Hardware e seus componentes	15
Unidade Central de Processamento (UCP ou CPU)	15
Memória	16
Dispositivos de Entrada	17
Dispositivos de Saída	17
Dispositivos Internos x Dispositivos Externos	17
Saiba Mais	18
Software	18
Classificação segundo a forma de aquisição ou de distribuição	19
Conceitos Básicos	19
Exemplo	20
Algoritmo X Linguagem de Programação X Programa	20
Como um ser humano programa em linguagem binária ou linguagem de máquina?	21
Exemplos de códigos com a mesma função	21
Saiba Mais	22
Tradução	22
Interpretação	22
Exemplo	22
Palavra (word)	23
Tempo de acesso (latência)	24
Tempo de resposta	24
Bits e bytes	24
Capacidade de armazenamento x Capacidade de transferência	25
Atividade	26
Aula 3 - Sistemas de Numeração 	27
Introdução	27
Simbologia para representar quantidades	27
Saiba Mais	27
Sistema de Numeração Não Posicional	27
Sistema de Numeração Posicional	28
Bases Numéricas	28
Sistemas de Numeração	29
Exemplo	29
Conversão de Decimal para outra Base	30
Atividade	31
Conversão de uma Base para Decimal	31
Conversão da base Binária para Octal e Hexadecimal	34
Atividade	36
Aula 4 - Aritmética e Representação de Sinais 	36
Introdução	36
Operações Aritméticas	36
Soma no Sistema Binário	36
Subtração no Sistema Binário	37
Atenção	38
Atividade	38
Soma no Sistema Hexadecimal	39
Subtração no Sistema Hexadecimal	39
Atividade	40
Representação de números positivos e negativos em binário	40
Sinal e magnitude	40
Complemento de 1	41
Complemento de 2	42
Atividade	43
Aula 5 - Circuitos lógicos 	44
Portas Lógicas	44
Atividade	45
Porta E ou AND	45
Porta OU ou OR	46
Porta NÃO / NOT	47
Atenção	48
Porta NÃO E, NE ou NAND	48
Porta NOU / NOR	49
Porta “OU – EXCLUSIVO” (XOR)	50
Porta “NOU – EXCLUSIVO” (XNOR) / COINCIDÊNCIA	50
Exemplo	51
Expressões Lógicas	51
Atividade	53
Tabela Verdade	53
Exercício	54
Aula 6 - Modelo de Von Neumann 	56
Conceito de Von Neumann	56
Atividade	57
Composição do Modelo de Von Neumann	57
Diagrama Funcional da CPU	57
Ciclo de Busca – Decodificação – Execução	59
Saiba mais	60
Exercícios	61
Aula 07: Processador e Conjunto de Instruções 	63
Introdução	63
Instrução de Máquinas	63
Formato das Instruções	63
Curiosidade	64
Quantidade de Operados	65
Modos de Endereçamento de Instruções	68
Paralelismo	68
Atenção	70
Atividade	70
Exercícios	70
Aula 08: Memória 	72
Memória primária 	72
Memória secundária	73
SAIBA MAIS 	74
Atenção	77
Exemplo	78
Write Through	80
Write Back	80
Atividade	80
Aula 09: Memória (Parte 2) 	82
Lembra o que é memória?	82
Memória Principal	82
Estrutura Processador/Memória Principal	83
Processo de leitura	83
Processo de escrita	84
Células e Endereços	84
Representação do endereço	85
Atividade	86
Classificações da memória	86
Memória secundária	88
Características importantes	89
Disco Rígido	89
Atividade	90
Aula 10: Dispositivo de E/S 	92
Exemplos	95
Atividade	100
Aula 1 - Evolução Histórica da Computação 
Introdução
A computação hoje conhecida é resultado de uma diversidade de pesquisas realizadas no passado. No decorrer dos anos, décadas e até mesmo séculos, o ser humano tem desenvolvido métodos que possam automatizar, otimizar ou agilizar tarefas que antes demandavam maior esforço. Assim, ao longo dos anos, cientistas, pesquisadores, entre outros, iniciaram o desenvolvimento de dispositivos ou recursos que pudessem trazer esses resultados.
Durante esta aula, iremos conhecer parte desta história, que continua sendo desenvolvida a cada dia, com novos resultados e lançamentos em tecnologias que poderíamos imaginar que já estariam em seu auge de desenvolvimento, mas que nos espanta com novos recursos.
De acordo com a época, veremos que equipamentos desenvolvidos se tornaram precursores de novas tecnologias. Alguns possuíam recursos tão grandes para a época, mas hoje já se pode possuir na palma da mão equipamentos com capacidade muito superior, como é o exemplo dos smartphones disponíveis no mercado atual.
Esta aula, portanto, possibilitará uma visão geral sobre a evolução dos computadores, suas gerações e o que motivou o desenvolvimento de cada uma delas. Também iniciaremos a definição de conceitos importantes para se identificar recursos de máquinas, bem como suas finalidades.
Introdução da história da tecnologia
A história da tecnologia e consequentemente da computação se dá desde o momento em que compreendemos o surgimento do fogo e o descobrimento que ele poderia ser usado a favor do ser humano como ferramenta de grande importância para a civilização.
Tais descobertas desencadearam a busca pelo conhecimento por parte do ser humano. Através desse conhecimento e da evolução do mesmo, novas tecnologias e ferramentas podem ser desenvolvidas e surgem a cada dia. Se não fosse isso, continuaríamos até os dias de hoje morando em cavernas, porém aquecidos com o fogo.
O fogo incentivou a descoberta da manipulação dos metais, que permitiu a criação de novas ferramentas para caça e manipulação da madeira etc.
Com o passar do tempo, podemos identificar que todo esse desenvolvimento possui uma motivação: a busca pela otimização de processos para a melhoria do cotidiano, seja de uma pessoa, ou até mesmo de uma civilização.
É muito importante, portanto, compreendermos essa busca pela otimização de processos e ferramentas para entendermos o desenvolvimento dos computadores como fruto desta descoberta. É isso que veremos a seguir. 
O surgimento e as gerações na evolução dos computadores
De acordo com os grandes autores da computação, a história dos computadores pode ser dividida em gerações.
Considerando Tanenbaum (2007), por exemplo, a Geração Zero é chamada dessa forma pois foi formada por dispositivos mecânicos.
As gerações seguintes foram formadas pelo surgimento de dispositivos eletrônicos, marcados por alguma inovação.
Já outros autores defendem a subdivisão da geração zero em dois momentos: a dos dispositivos mecânicos e a dos dispositivos eletromecânicos, mas nada que altere as gerações posteriores.
Para entendermos melhor toda essa evolução, veremos um pouco de cada uma delas, mas podemos enfatizar, neste momento, que as gerações de computadores antecederam até mesmo o surgimento da eletricidade, ou seja, dos dispositivos mecânicos, em que os equipamentos se baseiam no uso de engrenagens, entre outras formas de construção, e, por isso, também podem ser considerados equipamentos de grande tecnologia para a sua época.
A partir daí, com a vinda das gerações seguintes, veremos que um dos destaques será o tamanho dos equipamentos construídos, cada vez menores, e o desenvolvimento de capacidades de processamento cada vez maiores, devido ao surgimento de novas tecnologias eletrônicas usadas para marcar uma geração específica da evolução dos computadores.
Geração Zero - Computadores Mecânicos e Eletromecânicos
A geração de computadores mecânicos se resume ao uso de equipamentos que otimizaram processos da civilização através do uso de alguns dispositivos, como, por exemplo, aqueles que facilitavam o cálculo de resultados. 
500a.C. Ábaco
Podemos dizer que ela se inicia na Mesopotâmia, aproximadamente 500 a. C., com a invenção do ábaco, uma espécie de calculadora que permitia a contagem rápida de valores pelos trabalhadores agrários.
Existem vários tipos de ábaco, porém se resumem ao uso de bolinhas deslizantes que representam unidades decimais, dezenas, centenas, entre outros, e cálculos relativos à soma e à subtração.
Esse equipamento é o reflexode uma grande evolução nas formas de cálculo da época e perdura até hoje, já que o ábaco continua sendo utilizado com a mesma finalidade, inclusive como instrumento didático para incentivar o pensamento e a lógica matemática. 
1642-1644. Calculadora de somar e subtrair
Aceleramos, então, para séculos mais “próximos”, entre os anos 1642-1644, quando o físico e filósofo francês Blaise Pascal, interessado em otimizar o processo de cálculos aritméticos, criou uma calculadora totalmente mecânica, que permitia o cálculo através de engrenagens.
Pascal criou a calculadora de somar e subtrair para ajudar seu pai a contabilizar os impostos na França, país onde trabalhava. O cálculo era feito totalmente através de engrenagens, onde uma manivela, operada manualmente, permitia que a conta fosse efetuada. 
1673. Calculadora das quatro operações fundamentais
Como dito anteriormente, a máquina de Pascal foi desenvolvida para cálculos de soma e subtração. Com base na mesma ideia, por volta de 1673, Gottfried Wilhelm von Leibniz propôs uma evolução da calculadora, possibilitando o cálculo das quatro operações básicas, ou seja, incluindo a multiplicação e a divisão através do uso de operações sucessivas, também todas executadas de forma manual, através de engrenagens. 
Antes de continuar, assista ao vídeo que mostra o funcionamento da máquina de Pascal (Pascaline). 
Revolução Industrial
Não podemos deixar de citar uma época fundamental para o avanço das tecnologias de computação: a época da Revolução Industrial. Nela, tivemos uma transição nos processos de produção da forma artesanal e manual para uma fabricação que intensificou o uso de máquinas, permitindo maior eficiência e agilidade, bem como a redução de erros e retrabalhos. 
Veja outros destaques na história da evolução dos computadores: 
- TEAR PROGRAMÁVEL
Nessa época, um dos dispositivos inovadores foi o Tear Programável, criado por Joseph-Marie Jacquard, um mecânico de teares. Ele inventou um sistema de operações repetitivas e sequenciais, até então executadas manualmente pelos tecelões, usando um conjunto de cartões metálicos perfurados, de forma que, à medida que os cartões eram lidos por uma agulha, a máquina sabia o que deveria ser feito no tecido a ser produzido.
Veremos que essa invenção criou a primeira forma de comunicação e programação de uma máquina, mais uma inovação para a época.
- CAUCULADOR ANALÍTICO
Surge, então, Charles Babbage, cientista, matemático e engenheiro mecânico, que se tornou o precursor da computação moderna através do projeto-conceito do Calculador Analítico, em 1822.
Trata-se de uma máquina capaz de efetuar diversos cálculos, dotada de: 
	• Um mecanismo de processamento (que ele chamava de moinho); 
	• Uma unidade de entrada de dados através de cartões perfurados (baseado na ideia do tear programável), por meio do qual seriam inseridos os cálculos a serem efetuados; 
	• Cerca de 1000 bancos de memória (que ele chamava de armazém); e 
	• Uma unidade de impressão de cartões perfurados para o registro dos resultados. 
Juntamente com a matemática Ada Augusta Lovelace, foram desenvolvidas todas as rotinas e fórmulas para que as instruções fossem processadas. Essas instruções e recursos até hoje são usados pelos computadores!
O Calculador Analítico iniciou um desenvolvimento acelerado no que se refere à área de computação, de tal forma que Babbage hoje é conhecido como o precursor do Hardware e Ada Lovelace como a precursora do software e primeira programadora, assunto que veremos posteriormente. 
-TABULADOR DE HOLLERITH
Com a chegada da eletricidade, alguns equipamentos marcaram a evolução da computação. Um deles é conhecido como Tabulador de Hollerith.
Utilizando o princípio descoberto por Jacquard para automatizar os teares, Hermann Hollerith, então funcionário do censo nos EUA, inventou, em 1880, uma máquina para realizar as operações de recenseamento da população.
O objetivo desse equipamento era contar, classificar e ordenar informações armazenadas em cartões perfurados. O seu uso, na apuração dos dados de 1890, reduziu para dois anos e meio o tempo de apuração das informações. O censo anterior, feito de forma manual, demorou dez anos para ser concluído.
O sucesso fez com que ele criasse a Tabulating Machine Company, companhia que, após a fusão com mais algumas empresas, se tornou a conhecida IBM (International Bussiness Machines).
Percebemos que, em períodos onde ocorrem conflitos e guerras, há um grande avanço no desenvolvimento da tecnologia, em especial porque os países buscam inovações que os deixem à frente do inimigo.
Naquela época, por exemplo, o tabulador de censo, então da IBM, assim como outras soluções, começou a ser empregado inclusive pelos nazistas, mesmo sendo de uma companhia americana.
Para saber mais sobre esse assunto, leia a reportagem “A mãozinha da IBM” que relata o envolvimento da IBM durante aquela época e o desenvolvimento de tecnologias para os alemães. 
-CALCULADORA DE CONRAD ZUZE
O próximo equipamento a ser citado, também de grande importância, é a calculadora de Conrad Zuze.
Zuze construiu durante a década de 1930 uma série de máquinas de calcular baseadas em relés mecânicos, que serviam como chaves que abriam e fechavam automaticamente. Esse foi o princípio para a utilização de números binários posteriormente e pode ser considerado o primeiro computador operacional do mundo. 
O mais interessante de estudarmos essa evolução é percebermos a relação com os computadores atuais. Também identificamos facilmente o surgimento de grandes companhias de tecnologia que existem até hoje.
A Geração de Computadores Eletrônicos
Devido à baixa capacidade e ao desgaste de peças em máquinas essencialmente mecânicas, tornou-se uma necessidade a substituição dos equipamentos que conhecemos na geração zero pelos que possibilitassem maior agilidade e menos desgaste.
Certamente a eletricidade e a eletrônica cooperaram para a evolução que veremos a seguir, basicamente dividida em fases evolutivas demarcadas pelo surgimento de materiais que permitiram mudanças consideráveis na forma em que os computadores eram projetados. 
Primeira Geração (Válvula)
A primeira geração dos computadores foi marcada pela utilização de válvulas. A válvula é um tubo de vidro, muito similar a uma lâmpada, com eletrodos que possuem a finalidade de controlar o fluxo de elétrons.
Em resumo, substitui-se os relés eletromecânicos da aritmética binária pelo controle de fluxo de elétrons através da válvula ligada ou desligada (com corrente/sem corrente). Assim, os equipamentos já atingiam frequências de operação maiores do que os relés mecânicos e grande agilidade em cálculos. Surgem, então, diversos computadores, na sua maioria para propósitos militares ou científicos.
Dentro dessa geração, é importante citar os equipamentos de grande importância: 
Colossus (Segunda Guerra Mundial). ENIAC (Eletronic Numerical Integrator and Computer) 
Saiba mais
Para conhecer um pouco mais sobre a história de Alan Turing, Colossus e Enigma, não deixe de assistir ao filme The Imitation Game (Jogo da Imitação), de 2014.
Segunda Geração (Transistor)
A segunda geração de computadores iniciou com a chegada de um substituto para a válvula, o transistor.
Criado pela Bell Labs para uso em aparelhos telefônicos, o transistor ofereceu grande revolução na computação, uma vez que as válvulas consumiam muita energia e precisavam de pré-aquecimento para funcionar. Possuíam também pouca confiabilidade em seus resultados e curta vida útil, sendo necessárias trocas constantes.
Além de menores, os transistores consumiam menos energia, sofriam menos aquecimento e eram mais rápidos, o que permitiu que fossem incorporados ao desenvolvimento de computadores, durante o período de 1955 a 1964.
O TX-0 (Transistorized Experimental Computer Zero) foi o primeiro computador transistorizado a ser desenvolvido. 
Porém, há um fator interessante que vale a pena ser mencionado: o desenvolvimento do PDP-1, criado pela DIGITAL. Com o preço de U$120.000,00, foi o primeirocomputador comercializado, tento sido vendidas aproximadamente 50 unidades na época. Ele possuía memória de 4Kbytes e deu origem ao conceito de “minicomputadores”. 
Agora, assista ao vídeo para saber mais sobre o funcionamento do transistor. https://youtu.be/Xsv03w9YJqI
Terceira Geração (Circuitos Integrados)
A terceira geração veio com a invenção do circuito integrado de silício por Robert Noyce, físico e um dos fundadores da Intel.
Com o circuito integrado, dezenas de transistores poderiam estar em um único chip, o que possibilitava a construção de computadores menores e ainda mais rápidos e baratos, pois permitia também a produção em escala maior.
Quarta Geração (VLSI)
Traduzido como Very Large Scale Integration, ou Integração de Circuitos em Larga Escala, essa geração veio mais como uma evolução dos circuitos integrados, onde a tecnologia permite hoje a inclusão de milhões de transistores em um chip.
Para compreender isso, é necessário entender o processo de litografia. Contudo, neste momento, podemos nos ater à informação de que os fabricantes usam tecnologia de nanômetros distância na construção de microchips, ou seja, a distância entre um transistor e outro dentro do chip.
Para termos uma ideia dessa distância, um nanômetro equivale a um bilionésimo de milímetro.Era da computação pessoal
Altair 8080
Primeiro computador pessoal comercializado. Sua primeira linguagem de programação foi o Basic, desenvolvido pela Microsoft.
IBM PC (Personal Computer)
Computador pessoal desenvolvido pela IBM, também com o processador Intel 8080. Possuía frequência de 4.77Mhz, monitor monocromático e 16KB de memória.
Tal arquitetura da IBM possuía um projeto de circuito público, de forma que outros fabricantes poderiam desenvolver componentes facilmente acopláveis a essa arquitetura, tornando esse PC o equipamento mais vendido da história.
Apple
Criada por Steve Jobs e Steve Wosniak.
Os computadores Apple tinham o objetivo de ser equipamentos de acesso ao público em geral.
O primeiro modelo, o Apple I, foi construído originalmente em uma garagem, e teve muita procura. Porém, o alcance comercial se deu com a venda do Apple II, que já tinha uma linha de produção mais robusta.
Saiba mais
Antes de continuar, assista ao vídeo que mostra como é feito um chip.
Atividade
1 - Vamos começar a conhecer a evolução analisando o resultado dela na atualidade. Veja o gráfico abaixo relativo à quantidade de transistores na fabricação de processadores com o passar dos anos.
Que conclusões você pode tirar somente olhando este gráfico?
R: A lei de Moore surgiu em 1965 através de um conceito estabelecido por Gordon Earl Moore, cofundador da Intel. Essa lei dizia que a capacidade de processamento dos processadores dobraria a cada 18 meses. Moore não tinha essa certeza em 1965, mas imaginava que isso seria possível.
	Como podemos ver no gráfico, isso realmente tem acontecido. Nos últimos anos, chegando a menos que do isso, de forma que já se discute se esta lei irá se perpetuar mesmo.
	Isso tudo se deve ao desenvolvimento acelerado de toda tecnologia de computação, que conheceremos com detalhes nesta disciplina, compreendendo sua evolução. 
2 - O que Pascal trouxe como inovação no desenvolvimento da tecnologia? 
R:Criou uma calculadora mecânica baseada em engrenagens. 
3 - Sobre o ábaco, qual afirmativa está INCORRETA?
R:Surgiu séculos depois de Cristo.
4 - No que se refere ao surgimento das gerações de computadores, qual a ordem cronológica dos mesmos? 
R:Válvula, Transistor e CI
5 - Com base na história e evolução dos computadores, qual pode ser considerado o primeiro dispositivo de entrada em um equipamento? 
R:Cartão perfurado 
Aula 2 - Hardware, Software e Conceitos 
Hardware e seus componentes
Hoje temos contato com uma diversidade de dispositivos de computação, alguns com capacidade de processamento igual ao até mesmo superior a alguns computadores tradicionais. Por exemplo, o que conhecemos hoje como smartphones, telefones celulares de alta capacidade de processamento, possuem configurações de hardware realmente robustas.
O hardware de um computador é formado por diversos componentes e dispositivos interconectados, de forma que, através dessa comunicação, as suas funções em conjunto possam ser desempenhadas.
Cada equipamento possui a sua particularidade. Porém, como base, existem alguns componentes hoje presentes em qualquer equipamento, seja ele um computador de uso pessoal, uma calculadora, ou até mesmo o smartphone que citamos.
Veja abaixo os componentes do hardware cujas funcionalidades devemos conhecer: 
Agora, vamos conhecer cada um desses componentes mais detalhadamente.
Unidade Central de Processamento (UCP ou CPU)
É o dispositivo central de um computador. Muitos acreditam que a CPU é o gabinete do computador, mas, na verdade, ela é o que conhecemos hoje como processador.
Internamente, possui dois importantes componentes: 
	Unidade de Controle
	Responsável pelo gerenciamento de todo o fluxo de informações entre as unidades que fazem parte do hardware, bem como a execução das instruções.
	Unidade Lógica e Aritmética
	Responsável pelos cálculos e decisões a serem efetuadas de acordo com as instruções recebidas.
Memória
Responsável pelo armazenamento das instruções e dados a serem executados ou manipulados pela CPU e seus componentes, bem como armazenamento de informações recebidas pelas Unidades de Entrada e Saída. Podemos dizer que a memória poderia ser memória RAM ou até mesmo o HD (ou disco rígido) como unidades de memória.
Memória RAM 					Disco Rígido 
Dispositivos de Entrada
Todos os periféricos que são utilizados e interligados ao computador para envio de informações para o processamento. Por exemplo: mouse, teclado ou botões de função localizados no equipamento.
Mouse 						Teclado 
Dispositivos de Saída
Todos os periféricos utilizados para enviar alguma informação para o usuário. Uma impressora ou um monitor de vídeo são exemplos.
Impressora 					Monitor 
Esse é somente um resumo de tudo o que estudaremos de forma mais aprofundada nas próximas aulas, nos permitindo entender melhor a relação e a função de cada um desses componentes. 
Dispositivos Internos x Dispositivos Externos
É importante citarmos que o computador é formado por diversos componentes em sua montagem de hardware.
Em resumo, temos:
Dispositivos Internos
• Processador
• Placa-mãe
• Disco rígido
• Placa de rede
Dispositivos Externos
• Teclado
• Mouse
• Impressora
Saiba Mais
Antes de continuar seus estudos, saiba mais sobre Placa-mãe.
Software
Software são todos programas responsáveis por administrar a execução de funções pelo hardware e automatizar as tarefas que o computador irá desempenhar.
Classificação de acordo com as funcionalidades
Cada software possui uma função específica, de forma que é necessário, neste momento, classificá-lo em duas categorias principais:
Software Básico:
Utilizado para produzir ou gerenciar a operação do computador e a relação dentre softwares aplicativos com o hardware.
Exemplos:
• Linguagens de programação;
• Sistemas Operacionais;
• Compiladores.
Software Aplicativo:
Seu foco é o usuário final. Normalmente, os erros ou falhas percebidas pelo usuário são identificados nos softwares que se encaixam nesta categoria.
Exemplos:
• Editores de Texto;
• Planilhas;
• Sistemas de Folha de Pagamento;
• Sistemas Comerciais;
• Sistemas de Controle de Estoque;
• Antivírus.
Classificação segundo a forma de aquisição ou de distribuição
Antes de entrarmos no assunto Sistema Operacional, é muito importante citarmos outra classificação de software, agora quanto à sua forma de aquisição ou de distribuição:
Software Livre
Conceito criado por Richard Stallman, em 1983, que defendia uma liberdade de uso para utilizar, copiar, distribuir, modificar e melhorar o software, na condição de que o ciclo continuasse, ou seja, todas as melhorias e modificações no software deveriam ser livres.
Muitos desenvolvedores têm usado essa filosofia criando softwares disponíveis livremente parauso, de forma que sua cópia ou redistribuição não caracteriza pirataria. Instituições públicas têm utilizado essa classificação em vista da economia gerada com a compra de softwares.
Software Proprietário
Não é de livre utilização, cópia ou distribuição. Seu uso somente é possível e permitido mediante a compra de licenças de uso, que podem ser por usuário, por máquina ou por empresa. Porém, sempre mediante o investimento financeiro conforme contratado com o fabricante.
O aspecto positivo de um software proprietário se dá pelo fato do fabricante ter a obrigação contratual de oferecer suporte ao aplicativo comprado. Sua cópia ou distribuição sem a compra da licença é considerada pirataria.
Conceitos Básicos
Sistema
Conjunto de partes coordenadas que colaboram para a realização de um determinado objetivo.
Essa definição se aplica aos sistemas de computação em que partes (o teclado, a memória, o processador e os dispositivos periféricos) se coordenam para realizar um objetivo comum: computar. Lembre-se que sistema é simplesmente a descrição de um programa de computador.
Exemplo
O SUS (Sistema Único de Saúde) é um exemplo de um sistema com o objetivo de que partes coordenadas colaborem para cuidar da saúde do cidadão.
Algoritmo X Linguagem de Programação X Programa
Qual é a relação entre esses termos?
Por definição, algoritmo é o conjunto de etapas (instruções) finitas, ordenadamente definidas, com o propósito de obter solução para um determinado problema.
Para que um algoritmo seja executado por um computador, é necessário que o processador entenda o que está sendo solicitado. A sequência precisa ser finita, exata e sem duplicidade de interpretação para que a solicitação do algoritmo seja feita com eficiência.
Veja um caso simples de transcrição de um algoritmo para, por exemplo, trocar o pneu de um carro:
Perceba que é uma forma de documentar uma sequência de processos não somente em TI. Trata-se de uma ferramenta de uso em diversas áreas de atuação em uma empresa. 
Um algoritmo ou um conjunto de algoritmos podem formar um programa.
Esse conjunto de instruções é transformado em uma linguagem própria (linguagem binária ou linguagem de máquina) que será executada em uma máquina. 
Como um ser humano programa em linguagem binária ou linguagem de máquina?
Sabemos que em computação tudo se baseia no sistema binário (0 e 1).
A solução encontrada foi o desenvolvimento de outras formas de linguagem de programação, que fossem mais próximas do entendimento do programador. Elas são conhecidas como linguagem de Alto Nível.
De forma contrária, linguagem de Baixo Nível são aquelas linguagens mais complexas para o ser humano, em que é mais difícil a compreensão por parte do programador e são necessárias mais ações na programação.
Exemplos de códigos com a mesma função
Veja exemplos de códigos com a mesma função em linguagem de Alto e Baixo Nível. Dessa forma, fica mais fácil visualizar a diferença para um programador.
Exemplo para exibir a mensagem “Olá Mundo” em Linguagem de Alto Nivel - Python 
O processo consiste: 
No programador escrever o código, em sequências de instruções exatas e de fácil entendimento. 
Em seguida, essa sequência precisa ser convertida em linguagem binária, que é entendida e executada pelo processador do computador. 
Esses conversores são identificados como programas compiladores e ligadores (link editor ou linker). 
Saiba Mais
Antes de continuar seus estudos, clique aqui para saber mais sobre Linguagens de Alto Nível e Linguagem de Baixo Nível.
Sendo assim, um programa é a formalização de um algoritmo em linguagem inteligível pelo computador (linguagem de máquina). Normalmente, é composto por diversos algoritmos e feito, na sua maioria, com uma tecnologia única de linguagem de programação, que é uma linguagem formal. Por exemplo: Cobol, Pascal, Fortran, Visual Basic, Lisp, Assembly, C++, Delphi, Ada, Java etc. 
Tradução
Como o próprio nome diz, consiste na tradução de um programa escrito em linguagem de Alto Nível para a linguagem binária da máquina correspondente.
Os exemplos de tradutores são:
• Assembler (Montador) da linguagem Assembly e um Compilador da linguagem C++;
• Visual Basic.
É feito o processo de Compilação, onde o programa escrito na linguagem fonte é traduzido para linguagem máquina e depois ligado e carregado para ser executado.
Interpretação
O programa fonte é traduzido e executado, instrução a instrução, de modo interativo.
O interpretador traduz cada instrução para uma representação interna e interpreta-a simulando o funcionamento do processador.
Exemplo
Um exemplo de tradutor pode ser a Máquina Virtual Java, que traduz os byte codes produzidos pela compilação de um programa Java em instruções binárias da máquina onde tal programa está sendo executado.
Vantagens - O ciclo escrita, execução, modificação e atualização é mais rápido 
Desvantagens - A execução é mais lenta. 
Palavra (word)
Em Ciência da Computação, palavra (em inglês: word) é a unidade natural de informação usada por cada tipo de computador em particular. É uma sequência de bits de tamanho fixo processada em conjunto em uma máquina.
Trata-se de uma característica importante de uma arquitetura de computador, pois reflete diretamente em vários aspectos da estrutura, da performance e de sua operação, indicando a unidade de transferência entre a CPU e memória principal.
Os computadores modernos possuem tamanho de palavra de 16, 32 e 64 bits, o que indica a unidade básica de transferência de dados entre a CPU e a memória principal. 
Por isso, é importante ficarmos atentos para, caso tenhamos um equipamento 64 bits, também instalarmos softwares e aplicativos 64 bits, pois os mesmos foram desenvolvidos para usar essa transferência máxima entre CPU e Memória.
Quando instalamos um aplicativo em sua versão 32 bits, estamos diminuindo a capacidade de processamento do nosso equipamento. Por exemplo: Um processador de 32 bits possui palavra de comprimento fixo igual a 32 bits, ou 4 bytes. Já um processador de 64 bits possui palavra de 64 bits ou 8 bytes.
Tempo de acesso (latência)
Tempo para recuperação/escrever de uma informação na memória. Depende da tecnologia da memória utilizada.
Se formos comparar com uma vitrola, de disco de vinil, seria o tempo gasto desde o momento em que pegamos a agulha até quando colocamos a mesma no início da música que queremos ouvir, mas ainda não começou a tocar.
Tempo de resposta
Mede o desempenho global do sistema. Baseia-se no tempo gasto entre o início da solicitação e a apresentação da resposta.
Engloba o tempo de acesso ou latência. Considerando o mesmo exemplo da vitrola, seria o tempo gasto desde o momento em que pegamos a agulha até o tempo em que a música foi totalmente entregue a nós.
Bits e bytes
BITS - Sabemos que, com o passar da história, toda informação a ser reconhecida em um computador segue atualmente um modelo de comunicação.
Os computadores conhecidos como digitais somente são capazes de entender informações em código binário (0s e 1s). Esses códigos binários são conhecidos como bits (Binary Digit) e podem assumir somente dois valores: 0 ou 1.
Esses valores são identificados em eletrônica através de variações de tensão. Por exemplo, em um circuito de 3V, uma tensão próxima a 0V (zero volt) representa o bit 0, e uma tensão próxima a +3V (3 volts positivos) representa o bit 1.
BYTES - K (Kilo), M (Mega), G (Giga), T (Tera) e P (Peta)
Esses termos foram criados para indicar valores múltiplos de bits e bytes. São potências de 2 (afinal, estamos falando de uma base binária) e não de 10.
Assim: 
Kilo (= K) - Representa 1024 unidades (210), e não 1000.
Mega (= M) - Representa 1.048.576 unidades (220) ou 1024.K
(Afinal, 220 = 210.210).
É isso que nos permite entender o quadro abaixo, relativo às representações das unidades. 
	1 byte
	8 bits
	1 kilobyte
	1024 byte
	1 megabyte
	1024 kilobyte
	1 gigabyte
	1024 megabyte
	1 terabyte
	1024 gigabyte
Veja como fica a conversão através das potências de 2: 
	Sufixo
	Sufixo
	Kilo (K)
	210= 1.024
	Mega (M)220= 1.048.576
	Giga (G)
	230= 1.073.741.824
	Tera (T)
	240= 1.099.511.627.776
	Peta (P)
	250= 1.125.899.906.843.624
	Exa (E)
	260= 1.152.921.504.607.870.976
	Zeta (Z)
	270= 1.180.591.620.718.458.879.424
	Yotta (Y)
	280= 1.208.925.819.615.701.892.530.176
Capacidade de armazenamento x Capacidade de transferência
Esse tema é interessante e polêmico, pois esclarece muitas dúvidas, principalmente nas representações de bits e bytes.
Quando falamos em armazenamento, normalmente utilizamos representação em Bytes (B maiúsculo).
Exemplos:
1 Kbyte ou 1 KB = 1024 Bytes
1 Mbyte ou 1 MB = 1024 Kbytes
Quando falamos em capacidade de transferência usamos bits (b minúsculo), normalmente indicado em bits por segundo (bps).
Exemplos:
1 Kbit ou 1 Kb = 1024 bits
1 Mbits ou 1 Mb = 1024 Kbits
Perceba que usando os primeiros exemplos de cada item, temos 1 KB (Kbyte) e 1 Kb (Kbit), que são itens completamente diferentes.
Uma vez que sabemos que 1 byte equivale a 8 bits, teríamos:
	1 KB (Kbyte)
	1 Kb (Kbit)
	8 Kb (Kbits)
	1 Kb (Kbit)
	8 . 1024 . bits
	1 . 1024 . bits
	8192 bits
	1024 bits
Note também que as representações parecem iguais, mas os resultados finais são diferentes, já que de um lado trabalha-se com Bytes e do outro Bits.
É por isso que, quando contratamos um link de internet banda larga para nossa casa, por exemplo, de 10 Mbps, nunca conseguimos uma taxa de download de 10 Megabytes por segundo. Afinal, o link contratado equivale a 10 Megabits por segundo.
Atividade
1 - Considerando que você possui um link de internet de 10 Mbps, qual seria a taxa de download em Kbytes por segundo? Quanto tempo, em minutos, você conseguiria fazer o download de um arquivo de 600 Mbytes?
R:
Sabemos que 1 Byte = 8 Bits / 1M = 1024K
	Link em Mbps: 10 Mbps
	Arquivo em Mbytes: 600 MB
	Link em Kbps: 10240 kbps
	Arquivo em Kbytes: 614400 Kbytes
	Link em KB/s: 1280 Kbytes por segundo
	<- Dividindo pelo link: 480 segundos
Considerando 1 minuto = 60 segundos: 8 minutos
2 - Dos aspectos abaixo, referentes à software livre, marque a alternativa INCORRETA: 
R:a) Permitido usar
b) Permitido compartilhar
c) Permitido distribuir
d) Permitido modificar
e) Permitido vender
3 - Os dispositivos de E/S (Entrada e Saída), ou periféricos, são os equipamentos acoplados ao sistema de computação, que efetuam as funções de entrada e saída. Mouse, Monitor de vídeo e Teclado são, respectivamente, periféricos de:
a) Entrada, entrada e saída de dados
b) Entrada, saída e entrada de dados
c) Saída, entrada e entrada de dados
d) Saída, entrada e saída de dados
4 - Qual dos programas abaixo pode ser considerado como software básico?
a) Editores de Texto
b) Sistemas Operacionais
c) Editores de Planilhas
d) Sistemas de Folha de Pagamento
e) Sistemas Comerciais
Aula 3 - Sistemas de Numeração 
Introdução
410 + 710 	= 1110
68 + 38 	= 118
916 + 816	 = 1116
1012 + 112	 = 10002
Algo nas contas acima pareceu estranho?
Inicialmente, é muito provável, que a única conta que você imaginou estar correta seja a primeira. Porém, nesta aula, vamos entender porque todas as contas acima estão corretas, apesar de parecerem estranhas para nós.
Simbologia para representar quantidades
Os sistemas de numeração têm o objetivo de fornecer uma simbologia com regras para representar certas quantidades, de forma que, com essas regras e normas, a informação quantitativa possa ser identificada por quem a conheça.
Atualmente, essa representação é feita através de números. Em alguns casos, também letras. 
Saiba Mais
Os primeiros registros sobre o uso mais ordenado de números são de aproximadamente 4000 a.C., com as civilizações da Mesopotâmia, coincidência ou não, a mesma região onde o Ábaco foi criado.
De lá para cá, a sociedade vem criando e aprimorando formas de representação numérica, até a representação que conhecemos hoje: números definidos por símbolos básicos e limitados e a combinação deles através de sua posição, conhecida como sistema posicional.
Sistema de Numeração Não Posicional
O sistema de numeração não posicional já foi muito usado na antiguidade.
Apesar de muito utilizado, não era um sistema de numeração fácil para, por exemplo, fazer operações aritméticas. Isso pode ter sido uma das causas do sistema de numeração posicional.
O exemplo mais conhecido e estudado nas escolas até hoje é o sistema de numeração romano, onde letras representam certas quantidades.
Para ilustrar, temos: V X L 
Que possuem os valores 5, 10, 50, respectivamente. 
A única regra diferenciada na numeração romana é que se um algarismo menor for colocado à esquerda de um maior, o mesmo deverá ser subtraído do maior. Apesar de muito utilizado, não era um sistema de numeração fácil para, por exemplo, fazer operações aritméticas. Isso ter sido uma das causas do sistema de numeração posicional.
Sistema de Numeração Posicional
Nos sistemas de numeração posicionais, o valor representado pelo algarismo no número depende da posição em que ele aparece na representação, ou seja, seu valor absoluto é modificado por um fator (ou peso), que varia conforme a posição do algarismo, sendo crescente da direita para a esquerda. Vamos entender melhor através do exemplo:
Como podemos verificar, o exemplo trata do sistema na base decimal, onde o “peso” de cada número foi baseado em uma potência de 10, levando como referência a sua posição no número formado. Dependendo da posição onde o algarismo se localiza, seu resultado final e seu peso serão diferentes.
É o que podemos ver com o número 3. Ele aparece 3 vezes no número. Porém, de acordo com sua posição, seus pesos os transformam em 3000, 30 e 3, respectivamente.
Sendo assim, temos dois conceitos fundamentais no sistema de numeração posicional que deverão ser aplicados em todos os sistemas que veremos posteriormente:
	A base que representa este número.
	A posição em que o algarismo está.
Bases Numéricas
Como sabemos, é muito importante em um sistema de numeração posicional conhecer a base em que estamos trabalhando. Com ela, teremos o conhecimento de quais símbolos podem ser utilizados na representação numérica dos mesmos, de acordo com as posições.
	Sistema Binário
	Usado na computação, sabemos que todos números são formados pelo 0 e 1, ou seja, 2 algarismos.
	Sistema Decimal
	Usado em nosso cotidiano, sabemos que todos os números são formados pelos números que variam de 0 a 9, ou seja, 10 algarismos.
	Sistemas Octal e Hexadecimal
	Não é diferente, teremos a representação de todos os números com 8 e 16 algarismos, respectivamente.
Para conhecer os símbolos utilizados na representação dos números de acordo com sua base, veja a tabela abaixo: 
	Sistema
	Base
	Símbolos
	Binário
	2
	0, 1
	Octal
	8
	0, 1, 2, 3, 4, 5, 6, 7
	Decimal
	10
	0, 1, 2, 3, 4, 5, 6, 7, 8, 9
	Hexadecimal
	16
	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Isso quer dizer que, para cada algarismo representado em um sistema de base, temos um equivalente, sendo representado em qualquer outra base, mas não com a mesma simbologia.
Entenderemos isso em breve, mas, antes, veja o exemplo abaixo com uma pequena comparação de números representados nas quatro bases que estudaremos:
	Decimal (Base 10)
	Binário (Base 2)
	Octal (Base 8)
	Hexadecimal (Base 16)
	00
	00000
	00
	00
	01
	00001
	01
	01
	02
	00010
	02
	02
	03
	00011
	03
	03
	04
	00100
	04
	04
	05
	00101
	05
	05
	06
	00110
	06
	06
	07
	00111
	07
	07
	08
	01000
	10
	08
	09
	01001
	11
	09
	10
	01010
	12
	0A
	11
	01011
	13
	0B
	12
	01100
	14
	0C
	13
	01101
	15
	0D
	14
	01110
	16
	0E
	15
	01111
	17
	0F
	16
	10000
	20
	10
Sistemas de Numeração
O quadro anterior é bem interessante. Todavia, nos mostra somente uma pequena relação comparativa de números até o 16 decimal. Porém, não podemos ficar na dependência de consultar quadros para comparação, precisamos, na verdade, entender os métodos de conversão, a fim de que qualquer conversão necessária seja feita.
Exemplo
Um endereço IPV4, que hoje conhecemos com um IP 192.168.1.220, é somente uma representação decimal de um endereçamento, na realidade,binário que, se for necessário calcular a máscara de sub-rede ou até mesmo sumarizar uma rede, precisará ser convertido binário, para que tais cálculos sejam efetuado
192.168.1.220 (IPV4 Decimal)
		=
11000000.10101000.00000001.11011100 (IPV4 em Binário) 
Sendo assim, vamos conhecer as regras de conversão de um número decimal para as bases Binária, Octal e Hexadecimal. 
Conversão de Decimal para outra Base
A conversão de números da base 10 para uma base qualquer é realizada através da aplicação de algoritmos para a parte inteira e para a parte fracionária.
O algoritmo, para converter a parte inteira de um número decimal para outra base qualquer, consiste nos seguintes passos: 
1º Passo
Realizar divisões sucessivas pelo valor que identifica a base (exemplo: Binário dividir por 2).
A primeira divisão usa como dividendo o próprio número e as demais utilizarão o quociente obtido na divisão anterior.
Deverão ser feitas tantas divisões quanto necessário para o quociente se tornar zero ou ser menor do que a base, não sendo mais possível efetuar divisões.
2º Passo
Não sendo possível efetuar mais divisões, deve-se transcrever o último quociente juntamente com os restos das divisões, em ordem inversa ao cálculo efetuado.
Vejamos na prática a conversão de Decimal para as seguintes bases: 
-BINÁRIA
Na transformação do número 63310 para a base 2, fazemos uma sequência de divisões pela base usando os quocientes com números inteiros e mantendo os restos (em vermelho), até que o último quociente não seja mais divisível (em azul).
A partir daí, para se obter o binário correspondente, devemos simplesmente, de frente para trás, copiar o último quociente e os restos obtidos.
-OCTAL
Seguindo mais um exemplo, agora para a base Octal, vemos que a regra se mantém a mesma.
Consideremos a conversão do número 39410 para a base 8:
-HEXADECIMAL
Por último, e talvez um pouco mais complexo, vamos considerar a conversão do número 74610 para a base 16: 
Como vimos, a regra continua sendo a mesma, aplicando a divisão pela base, com um pequeno detalhe.
Percebemos que os restos podem ser maiores do que 9 e, como já estudamos, a simbologia acima de 9 em hexadecimal é representada por letras. Sendo assim, devemos efetuar a comparação com a letra relativa ao número encontrado no resto e transcrever, ao contrário do número, a letra hexadecimal. 
Em nosso exemplo, o resto 10 se tornou A e o resto 14 se tornou E.
Atividade
Nada melhor do que a prática para verificar se você entendeu o processo de conversão de números da base Decimal para as bases Binária, Octal e Hexadecimal.
Faça as conversões abaixo e digite o resultado:
a) 74610 para a base 2: 
	R:1011101010
b) 23410 para a base 8:
	R:352 
c) 45910 para a base 16: 
	R:1CB
25510 para a base 16: 
	R:FF
Conversão de uma Base para Decimal
Quando queremos converter de uma base qualquer para Decimal, utilizamos a mesma regra para todas as bases. Ao contrário da regra anterior, em que fazíamos a divisão pela base, na conversão de uma base para decimal, é feita a multiplicação de cada algarismo do número pela base, elevada à potência de sua posição do algarismo.
Neste momento, vamos perceber que o sistema de numeração posicional influenciará nos cálculos. Relembrando o sistema de posições, elas devem ser numeradas da direita para a esquerda, começando da posição 0.
Montada a expressão, podemos iniciar a resolução dos cálculos.
Em primeiro lugar, a multiplicação dos números pelo resultado das suas bases e potências.
em segundo lugar, somando-se os resultados de tudo o que foi obtido.
Feito isso, temos o número Decimal convertido. Primeiro a resolução das potências.
Vamos a alguns exemplo de conversão, para que fique mais claro a regra em questão:
6578 para a base 10
Multiplicar cada algarismo individualmente pela base elevada à sua potência e somar os resultados.
Com a expressão montada, podemos iniciar os cálculos, conforme abaixo: 
Vamos para mais um exemplo, agora em Hexadecimal, a ser convertido para Decimal.
Em primeiro lugar, antes de começar, é importante relembrar que existe uma particularidade no sistema Hexadecimal, em que temos números que são representados por letras, e isso também será usado.
	Decimais
	1
	2
	3
	4
	5
	6
	7
	8
	9
	10
	11
	12
	13
	14
	15
	Hexadecimais
	1
	2
	3
	4
	5
	6
	7
	8
	9
	A
	B
	C
	D
	E
	F
1AC216 para a base 10
Montando a formação para conversão, seguindo a mesma regra:Com a expressão montada, podemos iniciar os cálculos, conforme abaixo: 
Com a expressão montada, podemos iniciar os cálculos, conforme abaixo: 
Na segunda linha do cálculo, em vermelho, a única alteração feita foi a substituição das letras pelo seu valor numérico decimal correspondente, como dito anteriormente. 
Como último exemplo, vamos agora converter um número Binário para Decimal e identificar qual seria o equivalente do mesmo após a conversão.
110111102 para a base 10
Montando a formação para conversão, seguindo a regra: 
Para a conversão de números nas bases Octal e Hexadecimal para a base Binária, as regras são similares, respeitando-se as respectivas particularidades. 
1 - Cada algarismo do número deve ser convertido individualmente para a Base Binária;
2 - Ao ser convertido, cada algarismo convertido deve ser formado por um grupo de:
• 3 algarismos binários (se o original for Octal);
• 4 algarismos binários (se o original for Hexadecimal).
Atenção
Caso na conversão de cada algarismo, o binário não possua o total de três ou quatro binários necessários, deve-se completar com zeros à esquerda a fim de que os grupos sejam formados.
Vamos a alguns exemplos. 
Conversão da base Binária para Octal e Hexadecimal
Para a conversão de números Binários para as bases Octal e Hexadecimal, as regras também são similares às anteriores:
1 – Com o número binário a ser convertido, dividimos o mesmo, da direita para a esquerda, em grupos de:
• 3 algarismos binários (se o número a ser convertido for Octal);
• 4 algarismos binários (se o número a ser convertido for Hexadecimal);
2 – Uma vez efetuada essa divisão, cada grupo deve ser convertido para Decimal, que será o seu número representativo. No caso do Hexadecimal, se o número corresponder entre 10 e 15, o mesmo deverá ser substituído pela letra correspondente, de A até F.
Vamos usar como exemplo a conversão do mesmo algarismo Binário 11011002 para os sistemas:
Dessa forma, finalizamos todos sistemas de numeração e metodologias de conversão para os sistemas de numeração Decimal, Binário, Octal e Hexadecimal.
Não deixe de fazer novos cálculos. Para estudar, use a calculadora do Windows para comprovar que seus cálculos estão exatos.
Atividade
1 - Efetue a conversão do número 1000010010012 para a base 10: 
	R: 2121
2 - Efetue a conversão do número 12710 para a base 2: 
	R:1100111 
3 - Efetue a conversão do número 204710 para a base 16: 
	R:7FF
Aula 4 - Aritmética e Representação de Sinais 
Introdução
Toda operação aritmética ou lógica com mais é feita sem efetuar nenhuma conversão, mas, sim, em binário, para, dessa forma, ser convertido e visualizado pelo ser humano na base pretendida, seja ela decimal, hexadecimal ou outras.
Nesta aula, serão apresentados os processos de cálculo das operações aritméticas nestes sistemas de base. Também é muito importante entendermos como se faz a representação de números positivos e negativos na arquitetura de computadores.
Sendo assim, é fundamental que conheçamos as técnicas de: Sinal de Magnitude e Complemento de 1 e de 2 para tais representações.
Operações Aritméticas
As operações aritméticas em outros sistemas de base devem ser feitas da mesma forma que na base decimal, com uma particularidade importante: a quantidade de algarismos disponíveis no sistema de base. Isso trará resultados diferentes nas somas, de acordo com a base em questão.
Soma no Sistema Binário
Para esse caso, devemos lembrar que o sistema possui somente 2 algarismos: 0 e 1.
Sendo assim, diferente da soma decimal, onde:
110 + 110 = 210 
A soma em binário nos traz que: 
12 + 12 = 102 
Isso nos traz uma regra já conhecida no sistemadecimal: o transporte para outra coluna, “vai um”.
Sendo assim, temos: 
0 + 0 = 0 
0 + 1 = 1 
1 + 0 = 1 
1 + 1 = 0, com “vai 1”, ou seja, 10. 
Veja o exemplo da soma dos binários 101101 + 101111: 
Tomando como base o exemplo anterior, cada vez que ocorre a soma de 1+1, deve-se lembrar que “vai um” para o vizinho logo à esquerda, como é feito na soma de decimais. 
Subtração no Sistema Binário
Para este caso, devemos também lembrar que o sistema possui somente 2 algarismos: 0 e 1.
Apesar de usar o mesmo método de subtração da base decimal, a subtração em binário pode ser um pouco mais complexa, no caso de se ter a ocorrência 0 – 1, onde deve ser feito um empréstimo superior do primeiro algarismo diferente de zero, existente à esquerda.
Isso traz a seguinte regra:
0 - 0 = 0 
0 - 1 = 11 (“1 e empresta 1”) 
1 - 0 = 1 
1 - 0 = 1 
1 - 1 = 0 
Atenção
O empréstimo pode ser feito em qualquer local da operação. Porém, recomenda-se que seja feito no meio ou no final. Caso você coloque acima, pode se confundir com o “vai um” utilizado na soma de binários.
Veja, no exemplo da subtração dos binários 10100 – 1111, o passo a passo de como se fazer a subtração. 
Perceba a importância de executar o passo a passo, verificando quando é necessário “emprestar” do vizinho a fim de completar a subtração necessária. 
Essa atenção é necessária para que o cálculo seja feito com exatidão. Por isso, para não confundir, é recomendável inserir a representação do empréstimo com o sinal negativo e abaixo dos cálculos, conforme diagrama acima. 
Atividade
Nada melhor do que praticar as operações aritméticas para verificar se os conceitos e procedimentos foram assimilados!
Dessa forma, tente efetuar os cálculos abaixo, conforme regras estudadas:
	1010102 + 110112
1100112 + 1011012
1000112 – 11112
10002 – 1112
R:	1010102 + 110112 = 10001012
	1100112 + 1011012 = 11000002
	1000112 – 11112 = 101002
	10002 – 1112 = 12 
Soma no Sistema Hexadecimal
Para realizar operações aritméticas no sistema hexadecimal, é importante relembrar, assim como na base binária, que existe um número diferenciado de algarismos que representam esta base.
Dessa forma, antes de abordar as regras para cálculos com números hexadecimais, é importante relembrar a equivalência dos números decimais e seus respectivos hexadecimais:
	Decimais
	0
	1
	2
	3
	4
	5
	6
	7
	8
	9
	10
	11
	12
	13
	14
	15
	Hexadecimais
	0
	1
	2
	3
	4
	5
	6
	7
	8
	9
	A
	B
	C
	D
	E
	F
No caso da soma de hexadecimais, todas as regras continuam as mesmas, com um detalhe a ser observado: o “vai 1” será utilizado sempre que a soma de dois algarismos exceder o valor de 15 (ou seja, F), que é o maior algarismo da base hexadecimal, e irá com o valor 1 para o vizinho, e não como 15 ou F. 
Veja o exemplo a seguir, relativo à soma 12ABCD16 + 4B1F9116: 
Repare que, ao efetuar a soma, trocamos a letra pelo valor decimal correspondente. Caso seja superior, subtraímos o valor 16, a fim de verificar o valor que ficará nessa unidade, e o restante será transportado como “1” para o vizinho da esquerda.
Logo, o procedimento de soma em hexadecimal será concluído com sucesso. 
Subtração no Sistema Hexadecimal
Para realizar subtrações no sistema hexadecimal, é importante relembrar as regras do sistema da base hexadecimal, que também possui caracteres que representam alguns de seus algarismos.
A regra se assemelha à soma no sistema hexadecimal. Porém, ao contrário do transporte, conhecido como “vai um”, temos o empréstimo do vizinho. Assim como já é feito no sistema decimal. Porém, ao emprestar 1 unidade do vizinho, estará emprestando o equivalente a 16.
Vamos ao exemplo abaixo, da subtração dos hexadecimais D8A93C - 23E4A1:
Atividade
Nada melhor do que praticar as operações aritméticas para verificar se os conceitos e procedimentos foram assimilados!
Efetue os cálculos abaixo, conforme as regras estudadas:
1) AA16 + BB16
2) ABC16 + 2DE16
3) BB16 - AA16
4) CAFE16 - ABCD16 
R: 	AA16 + BB16 = 16516
	ABC16 + 2DE16 = D9A16
	BB16 - AA16 = 1116
	CAFE16 - ABCD16 = 1F3116 
Representação de números positivos e negativos em binário
É possível que você esteja se perguntando...Se os sistemas de computação processam tudo em binário, como podem fazer com números negativos?
Pois bem, é isto que será visto agora, ou seja, o uso de sinal + (positivo) ou – (negativo) em números binários.
Existem várias maneiras. Porém, falaremos dos três principais tipos.
Sinal e magnitude
Nesta representação, caso tenhamos um número com n algarismos binários (n bits), seu sinal é obtido inserindo-se um bit adicional mais à esquerda, para indicar o valor do sinal, e sua magnitude, ou seja, o seu valor, continua mantendo os bits restantes deste número.
Os valores dos bits de magnitude (ou seja, o valor binário do número) sempre permanecem os mesmos, sendo que a única alteração é o bit mais à esquerda, onde 0 indica POSITIVO e 1 indica NEGATIVO.
Veja um exemplo, da representação binária em 7 bits do número decimal 39:
	Número em binário:
	0100111 (7 Bits)
	39
	Sinal + (Bit adicional)
	00100111 (8 Bits)
	+39
	Sinal - (Bit adicional)
	10100111 (8 Bits)
	-39
Essa solução implementada gerou alguns problemas, pois iniciou uma dupla interpretação para o zero, que poderia ser um sinal positivo, ou somente uma indicação de um número, gerando ambiguidades de significado. 
Complemento de 1
Mais um método de representação de números positivos e negativos em binário. Um pouco mais complexo, porém mais confiável do que o método de sinal e magnitude.
Para executá-lo, devem ser feitos os seguintes procedimentos: 
1. Com o número binário a ser inserido o sinal, acrescenta-se um bit significativo 0 (zero) mais à esquerda do número, identificando o sinal POSITIVO do mesmo. Procedimento já executado anteriormente em sinal e magnitude;
2. Para identificação do número como negativo, é feita também a inclusão de um bit significativo à esquerda, porém agora invertido, ou seja, ao invés de 0 (zero), 1 (um), assim como a regra de sinal e magnitude. Porém, também são invertidos todos os Bits relativos à magnitude (ou identificação do valor) do número.
Veja um exemplo da mesma representação binária em 7 bits do número decimal 39 no Complemento de 1: 
	Número em binário:
	0100111 (7 Bits)
	39
	Sinal + (Bit adicional)
	00100111 (8 Bits)
	+39
	Sinal - (Bit adicional)
	11011000 (8 Bits)
	-39
Explicando a tabela, temos: 
Complemento de 2
Método muito utilizado em computação, por não dar ambiguidade no valor e significado do zero em seu significado. Este método é tido como o mais confiável da atualidade.
Para entendê-lo, devemos rever o processo do Complemento de 1, com um procedimento adicional:
1. Com o número binário a ser inserido o sinal, acrescenta-se um bit significativo 0 (zero) mais à esquerda do número, identificando o sinal POSITIVO do mesmo. Procedimento já executado anteriormente em sinal e magnitude; 
2. Para identificação do número como negativo, é feita também a inclusão de um bit significativo à esquerda. Porém, agora invertido, ou seja, ao invés de 0 (zero), 1 (um), assim como a regra de sinal e magnitude. Porém, também são invertidos todos os Bits relativos à magnitude (ou, identificação do valor) do número;
3. Realizada a inversão dos Bits, é adicionado 1 ao binário resultante;
4. Feito isso, é encontrado o Complemento de 2, relativo ao negativo de um
Veja um exemplo, da mesma representação binária em 7 bits do número decimal 39 no Complemento de 2: 
	Número em binário:
	0100111 (7 Bits)
	39
	Sinal + (Bit adicional)
	00100111 (8 Bits)
	+39
	Sinal - (Bit adicional)
	10100111 (8 Bits)
11011000 + 1
11011001
	-39
Explicando a tabela, temos: 
Atividade
1 - Vimos na atividade da aula passada a calculadora do sistema operacional e sua funcionalidade para conversão de sistemas de bases diferentes. Agora vamos fazer um novo teste.
Será que esta mesma calculadora também faz cálculos aritméticos com números de outras bases?
Encontre os resultados dos cálculos abaixo:
AAA16 + BBB16 = ?
1011012 + 1011112 = ?
101002 - 11112 = ?
Lembre-se:Abra a Calculadora e selecione o Menu. Depois, clique em Programador. A calculadora será alterada, podendo fazer conversões entre as bases.
Clique na base que você deseja fazer os cálculos. Ela alterará a cor e você poderá efetuar os cálculos naquela base especifica.
R:	AAA16 + BBB16 = 166516
	1011012 + 1011112 = 10111002
	101002 - 11112 = 1012 
2 - Efetue a operação aritmética 101012 - 11112: 
	R: 110 
3 - Efetue operação aritmética 1110001112 + 110012: 
	R: 111100000 
Aula 5 - Circuitos lógicos 
Como estudado, todo processamento em um computador é baseado em Bits, ou seja, 0´s e 1´s que, agrupados, podem gerar diversas informações para o ser humano.
Também vimos que o uso do sistema binário vem desde a geração de computadores valvulados, onde as válvulas eram usadas para controlar passagem ou não de corrente elétrica, de forma que, se válvula estivesse ligada ou desligada, indicaria o bit 0 ou o bit 1.
Lembrando que este processamento utiliza o sistema de numeração binário correlacionando-se justamente os níveis lógicos.
Por exemplo: 
	1
	LIGADO
	VERDADEIRO
	ALTO
	SIM
	0
	DESLIGADO
	FALSO
	BAIXO
	NÃO
Posteriormente, a válvula evoluía para transistores, utilizado até hoje nos computadores. Os transistores são formados por componentes eletrônicos que permitem a capacidade de processar informações binárias a nível lógico. Esses elementos são conhecidos como portas lógicas e são o assunto principal desta aula. 
Portas Lógicas
Uma porta lógica é um componente de hardware que recebe um ou mais sinais de entrada e produz um sinal de saída, de acordo com a lógica estabelecida para a construção do referido circuito definido.
As portas lógicas foram definidas como representação através de: 
	Símbolos
	Para que sejam montados os circuitos.
	Expressões
	Muito similares às expressões matemáticas.
Através desses tipos de representação, é possível identificar o resultado lógico que um circuito deseja representar. 
Pode-se entender melhor as expressões lógicas através do uso de Tabelas Verdade, onde são mapeadas as possibilidades de um problema e identificadas as similaridades e as diferenças. Vamos entender melhor através de um exemplo.
Veja a tabela verdade do problema da lâmpada. 
A – Lâmpada / B – Interruptor / S – Saída 
1- Lâmpada queimada, interruptor desligado;
2- Lâmpada queimada, interruptor ligado;
3- Lâmpada funcionando, interruptor desligado; e
4- Lâmpada funcionando, interruptor ligado. 
	A
	B
	S
	FALSO
	FALSO
	FALSO
	FALSO
	VERDADEIRO
	FALSO
	VERDADEIRO
	FALSO
	FALSO
	VERDADEIRO
	VERDADEIRO
	VERDADEIRO
			=
	A
	B
	S
	0
	0
	0
	0
	1
	0
	1
	0
	0
	1
	1
	1
Através dessa tabela, podemos perceber que o resultado lógico dependerá da função lógica que uma porta representará. É isso que estudaremos a partir de agora. 
Atividade
Quando falamos de lógica, podemos ter muitas dúvidas, mas existe a certeza de que é uma análise feita com base em algumas informações, de forma que há um resultado lógico no fim da análise.
Vamos começar de maneira básica, analisando variáveis de um pequeno problema. Imagine que você tenha um quarto e precise acender a luz no mesmo. As únicas variáveis possíveis dentro desta análise seriam o interruptor do quarto e uma lâmpada, conforme o exemplo dado anteriormente.
Fazendo uma análise desta lógica, qual a possibilidade do quarto ter sua luz acesa? 
R:
Se temos duas variáveis conhecidas, temos algumas possibilidades para a luz acesa:
1- Lâmpada queimada, interruptor desligado;
2- Lâmpada queimada, interruptor ligado;
3- Lâmpada funcionando, interruptor desligado;
4- Lâmpada funcionando, interruptor ligado.
Sendo assim, temos 25% de certeza de que o quarto será aceso, pois, se a lâmpada ou interruptor estiverem ruins, não há sucesso. 
Porta E ou AND
É aquela que executa a multiplicação de duas ou mais variáveis.
Com a porta E ou AND, temos na tabela verdade uma saída no um (1), ou seja, verdadeiro, SE E SOMENTE SE as suas entradas ou mais entradas forem todas iguais a um, ou seja, positivas.
A saída será igual a zero (0) nos demais casos.
O conceito é utilizado para qualquer número de variáveis de entrada.
Como simbologia e expressão lógica, tem-se:
Simbologia da porta E ou AND.
X = A . B
Onde se lê:
X = A e B 
Como Tabela Verdade, tem-se:
	A
	B
	A.B
	0
	0
	0
	0
	1
	0
	1
	0
	0
	1
	1
	1
Atenção
A porta lógica AND se baseia na tabela verdade da função AND, ou seja, a saída tem resultado um (1), se e somente se todas as suas entradas (ou variáveis) forem iguais a 1 (um). Nos demais casos, teremos a saída igual a zero (0).
Esse conceito é utilizado para qualquer número de variáveis de entrada, assim como na demonstração do circuito abaixo.
Porta OU ou OR
É aquela que executa a soma, em que se obtém o valor um (1) quando uma ou mais variáveis de entrada forem iguais a um (1) e assume valor zero (0) se e somente se todas as suas variáveis forem iguais a zero (0).
Vejamos como a porta OU é representada.
Como simbologia e expressão lógica, tem-se:
Simbologia da porta OU ou OR.
X = A + B
Onde se lê:
X = A ou B
Como Tabela Verdade, tem-se:
	A
	B
	A+B
	0
	0
	0
	0
	1
	1
	1
	0
	1
	1
	1
	1
Atenção
Na demonstração do circuito, também se deve atentar para mais de 2 entradas, assim como na função E, onde a regra permanece a mesma, bem como a representação da expressão lógica do circuito.
Simbologia da porta OU ou OR de três entradas.
Porta NÃO / NOT
A função NÃO (também conhecida como Complemento) é aquela que inverterá o estado ou valor da variável, ou seja, se a variável estiver com valor zero (0), vai para um (1), e, se a variável estiver com valor um (1), vai para zero (0).
O travessão sobre a letra ou expressão representa a variável, e esta simbologia representa onde ocorrerá uma inversão.
Pode-se dizer que A é a negação ou a inversão de A. Vejamos como é representada.
Como simbologia e expressão lógica, tem-se:
Simbologia da porta Não/NOT.
 _
X = A
Onde se lê:
X = não A
Como Tabela Verdade, tem-se:
	A
	X
	0
	1
	1
	0
Atenção
É importante lembrar que o inversor, ou a função NÃO, é uma representação que pode ser utilizada tanto em variáveis como em portas lógicas inteiras, invertendo toda sua saída. Porém, a simbologia, nas portas lógicas, pode ser feita de forma diferente quando ocorre a inversão em toda porta lógica:
As duas representações acima possuem o mesmo valor, ou seja, a inversão de uma porta OU.
Porta NÃO E, NE ou NAND
Essa função é uma composição de duas portas lógicas já estudadas, ou seja, da função E com a função NÃO, de forma que o resultado será uma nova função E invertida.
Vejamos como ela será representada.
Como simbologia e expressão lógica, tem-se:
Simbologia do inversor da porta NÃO.
 ____
X = A . B
Onde se lê:
X = não A e B
Como Tabela Verdade, tem-se:
	A
	B
	X
	0
	0
	1
	0
	1
	1
	1
	0
	1
	1
	1
	0
Veja e compare o resultado da Tabela Verdade com a função E. Você perceberá que realmente a saída foi totalmente invertida, sendo que o restante permaneceu da mesma forma. 
Porta NOU / NOR
Como o próprio nome diz, essa função é uma composição de duas portas lógicas já estudadas, ou seja, da função OU com a função NÃO, de forma que o resultado será uma nova função OU invertida.
Vejamos como ela será representada.
Como simbologia e expressão lógica, tem-se:
Simbologia do inversor da porta NOU / NOR.
 _____
X = A . B
Onde se lê:
X = não A e B
Como Tabela Verdade, tem-se:
	A
	B
	X
	0
	0
	1
	0
	1
	0
	1
	0
	0
	1
	1
	0
Porta “OU – EXCLUSIVO” (XOR)
Essa porta lógica, OU – EXCLUSIVO, apresenta como resultado lógico 1, se as variáveis de entrada forem diferentes entre si, ou seja, se houver EXCLUSIVIDADE de valor na variável. 
Como simbologia e expressão lógica, tem-se:
Simbologia da porta OU – Exclusivo (XOR).
Como Tabela Verdade, tem-se:
	A
	B
	X
	0
	0
	0
	0
	1
	1
	1
	0
	1
	1
	1
	0
Porta “NOU – EXCLUSIVO” (XNOR) / COINCIDÊNCIA
A função lógica XNOR, conhecida como COINCIDÊNCIA, ao contrário da OU-EXCLUSIVO, tem como resultado um (1), sempre que em suas variáveis de entrada houver uma igualdade.
Vejamoscomo ela é representada.
Como simbologia e expressão lógica, tem-se:
Como Tabela Verdade, tem-se:
	A
	B
	X
	0
	0
	1
	0
	1
	0
	1
	0
	0
	1
	1
	1
Exemplo
Antes de dar continuidade a seus estudos, veja exemplos de Portas Lógicas.
Expressões Lógicas
Uma vez reconhecidas as portas lógicas e suas funcionalidades, é importante entender a construção de circuitos através de expressões lógicas, bem como o inverso, ou seja, a construção de expressões com base no circuito já informado.
Dado o circuito abaixo, qual a expressão lógica o representa?
Vejamos um passo a passo de como descobrir. 
1. Procure iniciar a formação das expressões da direita para a esquerda:
Simbologia de um circuito.2. Para facilitar a identificação das expressões, pode ser útil desmembrar os membros da porta lógica final. Conforme exemplo abaixo, desmembrando, teríamos a expressão lógica:
De forma que, identificando X’ e X’’, simplesmente podemos substituir na expressão:
Simbologia de um circuito.
3. Pode-se verificar que ambos os desmembramentos, X’ e X’’, são formados pela mesma porta lógica, função OU, representada pelo símbolo +. Sendo assim, pode-se escrever as expressões que representam os mesmos:
X’ = A + B
X’’ = C + D
4. Uma vez identificado, temos:
X = X’ . X’’
X = (A+B) . (C+D)
Atividade
Uma vez entendido como construir a expressão lógica ou expressão booleana de um circuito, tente fazer a construção da expressão que represente o circuito abaixo:
Simbologia de um circuito.
R: ver o gabarito. 
Tabela Verdade
Como último assunto desta aula, falaremos detalhadamente sobre Tabela Verdade.
A Tabela Verdade, como vimos na verificação das portas lógicas, permite que possíveis saídas de um circuito sejam identificadas. Assim, é possível saber a probabilidade, por exemplo, de uma saída positiva em um circuito.
Mas quando há um circuito mais complexo e com mais variáveis? 
É necessário respeitar algumas regras para que a Tabela Verdade seja construída.
Uma dica importante é a probabilidade de variações possíveis de acordo com a quantidade de variáveis existentes na expressão. Considerando que o Sistema é Binário (Base 2), eleva-se a base 2 à quantidade de variáveis existentes.
Vamos entender: 
2 variáveis, 4 variações na Tabela Verdade (22);
3 variáveis, 8 variações na Tabela Verdade (23).
Agora, veja o exemplo abaixo:
3 variáveis , 8 variações na Tabela Verdade (23)
	
A
	
B
	
C
	_
A
	_
C
	
A.B.C
	
S
	0
	0
	0
	1
	1
	0
	1
	0
	0
	1
	1
	0
	0
	1
	0
	1
	0
	1
	1
	0
	1
	0
	1
	1
	1
	0
	0
	1
	1
	0
	0
	0
	1
	0
	0
	1
	0
	1
	0
	0
	0
	0
	1
	1
	0
	0
	1
	1
	1
	1
	1
	1
	0
	0
	0
	1
Considerando as 8 variações no exemplo, criam-se colunas com as variáveis existentes, inserindo metade das linhas (4 linhas) com bit 0 e 4 linhas com bit 1. Na próxima coluna, a mesma regra, agora com metade das linhas da coluna anterior (2 linhas), e assim por diante. Dessa forma, tem-se todas as variações possíveis com as 3 variáveis A , B e C.
As colunas seguintes foram criadas pois existem duas condições diferenciadas, ou seja, a inversão da variável A e também C, onde deve-se identificar os valores invertidos (veja que os valores dessas colunas são exatamente a inversão das colunas A e C).
Tendo a inversão da variação C e calculada a função A.B.C, sabe-se que é uma função E, onde a saída é igual a 1 SE e SOMENTE SE todas variáveis forem igual a 1. Sendo assim, devem ser comparadas as variáveis das três colunas relativas a A,B e C a fim de verificar quais compreendem essa regra.
Feito isso, já se pode finalizar a Tabela Verdade, aplicando a função OU entre as possibilidades A,B, A. B. C.
Essa função é caracterizada por saída igual a 1, se uma única variável for igual a 1.
Sendo assim, é obtido o resultado final da Tabela Verdade.
Exercício
Questão 1: Considere a Tabela Verdade da expressão S=(A+B).A. Qual a probabilidade de ocorrer uma saída positiva? (Igual a 1)
R: 50% 
Questão 2: Considere a Porta Lógica abaixo. Como ela é conhecida? 
R: NAND 
Questão 3: Considere a expressão lógica abaixo. Qual a probabilidade de ocorrer uma saída igual a zero (0)?
R: 12,5%
Aula 6 - Modelo de Von Neumann 
Conceito de Von Neumann
Conforme estudado na aula de história da computação, as primeiras máquinas tinham um propósito específico, ou seja, programas fixos para processar. Hoje ainda existem computadores com esta finalidade, como a calculadora de mesa, que pode fazer cálculos com as operações fundamentais, mas não pode ser utilizada para nenhuma outra finalidade, como processar um jogo ou realizar cálculos que não existam em sua função.
Alterar o programa de uma máquina de propósito específico exige muito trabalho e reestruturação da máquina, desenho e religação de componentes. Fato que ocorria com os primeiros computadores.
John Von Neumann, matemático húngaro de renome, com diversas contribuições científicas na matemática e na física e também professor na Universidade de Princeton, participou do projeto e construção do ENIAC, já estudado anteriormente.
Em 1945, John Von Neumann escreveu um artigo crítico sobre os princípios da computação, que se tornaram um padrão na construção de computadores até a atualidade.
O Conceito de Von Neumann se baseava na criação de um modelo de computador em que a máquina possuiria o programa (e suas instruções) armazenado em memória, de forma que os programas em execução poderiam ser alterados durante a execução (uma variável poderia ser alterada em meio à execução) e todas as instruções seriam armazenadas e executadas sequencialmente em memória, de acordo com seu endereçamento.
Além disso, Von Neumann propôs uma arquitetura básica, composta pelos elementos abaixo:
Basicamente, todo e qualquer computador possuiria os seguintes elementos:
• CPU (ou UCP);
• Unidade de memória;
• Unidade de entrada;
• Unidade de saída.
Nesse modelo, dados e instruções são armazenadas em uma única memória, utilizada tanto para leitura quanto para escrita, e podem ser acessados através de endereços. 
Programas agora são tratados também como dados, que, uma vez executados, iniciam o ciclo de Busca-Decodificação-Execução para que obtenham o resultado esperado de suas instruções. 
Atividade
Você sabe o que são unidades de entrada e de saída em um computador? Cite alguns exemplos.
R: 	• Unidades de Entrada: Mouse, Teclado, Touchpad de um notebook;
	• Unidades de Saída: Impressora, Monitor (que não seja touch); 
Composição do Modelo de Von Neumann
Todos os componentes estão interligados através de barramentos que permitem a transmissão dos bits entre eles, facilitando o processamento e integrando melhor todos os componentes na arquitetura de computadores.
Como caraterísticas de funcionamento do Modelo de Von Neumann, temos:
• Programação sequencial;
• Valor de uma variável alterado durante a execução de um programa;
• Instruções e dados armazenados indistintamente na memória e acessíveis através de endereços.
Diagrama Funcional da CPU
Para entender melhor a estrutura funcional da CPU e demais componentes, veja o diagrama abaixo:
A Unidade Central de Processamento - UCP (ou CPU, que vem do inglês Central Processing Unit) é considerada o cérebro do computador, responsável pela execução dos programas armazenados na memória através do ciclo de Busca-Decodificação-Execução.
Além disso, tem como função controlar as operações do computador entre os demais componentes.
Veja seus principais elementos:
Unidade de Controle (UC)
Responsável por buscar instruções na memória principal, determinar seu tipo e encaminhar.
Unidade Lógica e Aritmética (ULA)
Responsável por executar as instruções, efetuando operações matemáticas e operações lógicas, como já estudado.
Registradores
Memórias de alta velocidade, responsáveis, principalmente, pelo armazenamento de resultados necessários na execução de instruções. Na verdade, são as mais rápidas existentes em um computador.
Alguns registradores tem uma finalidade específica e fazem parte do diagrama funcional da CPU, sendo eles:
	RDM
	Registrador de Dados de Memória - tem conteúdo quefoi lido ou que será gravado em uma local da memória.
	REM
	Registrador de Endereços de Memória - contém o endereço da Memória Principal onde a CPU deseja efetuar uma leitura ou gravação.
	RI
	Registrador de Instruções - tem o conteúdo da instrução em execução no momento.
	CI
	Contador de Instrução - também chamado de Contador de Programa, contém o endereço da próxima instrução que será requisitada na memória. Toda vez que este conteúdo é lido, já á alterado para o endereço da próxima instrução a ser executada.
	ACC
	Acumulador - armazena os dados temporários para as operações na ULA.
Barramentos
Dentro de toda organização de computadores, também se baseando no diagrama funcional da CPU, verifica-se a existência de três barramentos distintos.
Como se sabe, barramentos são elementos que efetuam a ligação entre componentes dos computadores. Da mesma forma, esses barramentos distintos têm a mesma função e especializada, ou seja, somente um determinado conteúdo pode trafegar nos mesmos.
	Barramento de dados
	Barramento de endereços
	Barramento de controle
	Canal de comunicação bidirecional que interliga o RDM à memória e outros dispositivos. Sua função é a transferência de conteúdo entre a CPU e a memória principal e os dispositivos de entrada e saída.
	Canal unidirecional que faz a transferência de bits que representam um endereço de memória.
	Canal bidirecional que efetua o envio de sinais de controle utilizados para diversos elementos do computador, como se fossem ações a serem feitas por estes elementos.
	
Decodificador de instruções (DI)
Este elemento não faz parte de barramentos nem registradores, mas tem uma função de grande importância no processo de execução das instruções.
Ele é o responsável por decodificar o conteúdo dos dados enviados pelas instruções armazenadas na memória, interpretando as operações a serem realizadas.
Feita a decodificação, a unidade de controle poderá enviar para o respectivo responsável a finalização da operação requisitada na instrução, seja ela um cálculo matemático, gravação em um arquivo ou uma impressão.
Ciclo de Busca – Decodificação – Execução
Tendo conhecimento de todos personagens envolvidos no modelo funcional de uma CPU, é importante entender o funcionamento do ciclo de Busca–Decodificação–Execução, que ocorre diversas vezes em um computador, de acordo com sua capacidade de operação.
Basicamente, esse ciclo ocorre desde o momento em que a CPU busca uma instrução armazenada na memória até o momento em que ela foi executada, estando, assim, a CPU disponível para mais uma execução.
Veja o funcionamento, com detalhes, do ciclo:
	Busca
	Decodificação
	Execução
	• Copiar o endereço contido no CI para o registrador de endereços da memória (REM) através do barramento de endereços;
• Enviar um sinal de controle com comando de leitura, via barramento de controle, pela UC para a Memória Principal;
• Ler o conteúdo no endereço da memória, armazenando o mesmo no RDM, através do barramento de dados de memória;
• Copiar o registrador de dados da memória (RDM) para o (RI);
• Atualizar o CI com o próximo endereço a ser executado.
	Nessa fase, é determinada qual instrução deve ser executada, enviando o conteúdo do RI para decodificação pelo DI.
	• Encaminhamento da operação para finalização pela UC;
• Fim da execução da operação.
Finalizado esse ciclo, um novo ciclo é iniciado, para a execução de uma nova instrução.
CLOCK
Como último elemento, é visto, no diagrama funcional da CPU, o CLOCK, um gerador de pulsos regulares de curta duração.
Esse sinal é enviado pela CPU, como referência de tempo para todas as atividades dentro de um computador, de forma a garantir o sincronismo de todas as operações, independente do dispositivo, uma vez que alguns periféricos possuem clocks diferentes do clock interno da CPU.
O clock é medido em quantidade de vezes por segundo, ou Hertz (hz).
Saiba mais
Antes de continuar seus estudos, saiba mais sobre clock.
Exercícios
Questão 1: Considere as alternativas abaixo sobre overclock:
1) Técnica que permite que o processador trabalhe em uma frequência maior do que aquela para a qual foi projetado;
2) Permite que ocorra uma queda na emissão de calor por parte do processador;
3) É utilizado também para aumentar a frequência de trabalho em outros periféricos, como placas de vídeo.
R: Somente a alternativa 1
Questão 2: Registrador de Instrução (ou PC Counter) é: 
R: Um registrador interno ao processador que armazena o endereço da próxima instrução a ser executada.
Questão 3: É responsável por enviar para a memória principal o endereço do conteúdo a ser consultado para execução da instrução: 
R: REM
Aula 07: Processador e Conjunto de Instruções 
Introdução
Uma vez conhecido o funcionamento de um processador de acordo com o modelo de Von Neumann e do ciclo de instrução, é importante entender as instruções.
Todo programa desenvolvido precisa ser traduzido para linguagem de máquina, de forma que as instruções sejam compatíveis com aquele processador, uma vez que todo o processador contém um conjunto de instruções relacionado à capacidade de executar.
Instrução de Máquinas
Como já estudado, quem executa um programa e suas instruções é o hardware, que, através dos ciclos de instrução do processador, busca as instruções em linguagem de máquina.
Afinal, um programa desenvolvido em linguagem de Alto Nível (mais amigável ao programador) não pode ser executado diretamente pelo hardware. Ele precisa ser traduzido para linguagem de máquina por um compilador antes de ser efetivamente carregado em memória, a fim de que o processador possa executá-lo.
A linguagem de máquina é composta de códigos binários, representando essas instruções, endereços e dados e está totalmente vinculada ao conjunto de instruções definido para uma máquina.
Em termos de funcionalidade, as operações da máquina podem ser:
	Matemáticas
	Ex: Operações aritméticas, lógicas, de complemento.
	Movimentação de dados
	Ex: Movimentação da memória para um registrador.
	Entrada/saída
	Ex: Leitura e gravação de dados em dispositivos externos.
	Controle
	Ex: Desvio condicional da sequência de execução (Se X>18 então ...).
Formato das Instruções
	
	Operando
Define o valor binário da localização do
dado ou mesmo o próprio conteúdo do dado a ser processado pela instrução
definida em seu código de operação.
Normalmente o operando define um endereço
de memória que possui o dado armazenado ou onde será armazenado o resultado de
uma operação. Operações aritméticas possuem em geral 2 ou 3 operandos.
	Código
de operação
	Operando
1
	Operando
2
	Operando
3
	Código de Operação
Define a operação que será realizada pelo
processador. É o campo da instrução onde o valor binário identifica a operação
a ser realizada
Este código é a entrada no Decodificador de
Instruções para a unidade de controle. Cada instrução possui um código único,
que será seu identificador dentro da execução de instruções em um processador.
	
Aspectos dos Conjuntos de Instruções
Há diversos formatos de instruções, com características particulares, vantagens e desvantagens.
O conjunto de instruções de uma máquina pode ser constituído por instruções de diversos formatos. Esta flexibilidade permite a escolha da instrução adequada para aplicação em cada caso.
O conjunto de instruções normalmente pode ser analisado sob alguns aspectos, como, por exemplo:
	Quantidade de instruções
	
	Quantidade de operandos (normalmente 1, 2 ou 3 operandos)
	
	Modo de endereçamento
Veja o exemplo de uma instrução com 2 operandos:
	ADD 
	SALÁRIO 
	TAXA 
	11010011
	110011001100
	101010101010
	8 BITS 
	 12 BITS 
	12 BITS 
Podemos ver que na formação da instrução temos:
	A Operação ADD definida por um código binário de 8 bits
	→ 
	Somado a 2 Operandos, separados por vírgulas e definidos por 12 Bits cada um
Totalizando 32 Bits de uma instrução
Isso já nos leva a entender que a Palavra desse processador seria de 32 Bits, que é o tamanho da informação que trafega entre a CPU e a memória principal.

Outros materiais