Prévia do material em texto
Maxwel Vitorino da Silva Conceitos de computação I Dados Internacionais de Catalogação na Publicação (CIP) (Jeane Passos de Souza – CRB 8a/6189) Silva, Maxwel Vitorino da Conceitos de computação I / Maxwel Vitorino da Silva. – São Paulo : Editora Senac São Paulo, 2020. (Série Universitária) Bibliografia. e-ISBN 978-65-5536-180-3 (ePub/2020) e-ISBN 978-65-5536-181-0 (PDF/2020) 1. Tecnologia da informação (TI) – Conceitos 2. Tecnologia da informação (TI) – Desenvolvimento 3. Arquitetura de computador : Hardware 4. Arquitetura de computador : Software I. Título. II. Série. 20-1157t CDD – 005 BISAC COM032000 Índice para catálogo sistemático 1. Tecnologia da informação 005 M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Maxwel Vitorino da Silva CONCEITOS DE COMPUTAÇÃO I M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Administração Regional do Senac no Estado de São Paulo Presidente do Conselho Regional Abram Szajman Diretor do Departamento Regional Luiz Francisco de A. Salgado Superintendente Universitário e de Desenvolvimento Luiz Carlos Dourado M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Editora Senac São Paulo Conselho Editorial Luiz Francisco de A. Salgado Luiz Carlos Dourado Darcio Sayad Maia Lucila Mara Sbrana Sciotti Jeane Passos de Souza Gerente/Publisher Jeane Passos de Souza (jpassos@sp.senac.br) Coordenação Editorial/Prospecção Luís Américo Tousi Botelho (luis.tbotelho@sp.senac.br) Márcia Cavalheiro Rodrigues de Almeida (mcavalhe@sp.senac.br) Administrativo João Almeida Santos (joao.santos@sp.senac.br) Comercial Marcos Telmo da Costa (mtcosta@sp.senac.br) Acompanhamento Pedagógico Mônica Rodrigues dos Santos Designer Educacional Hágara Rosa da Cunha Araujo Revisão Técnica Marco Antonio Barreto Coordenação de Preparação e Revisão de Texto Luiza Elena Luchini Preparação de Texto Bianca Rocha Revisão de Texto Bianca Rocha Projeto Gráfico Alexandre Lemes da Silva Emília Corrêa Abreu Capa Antonio Carlos De Angelis Editoração Eletrônica Stephanie Reis Baldin Ilustrações Stephanie Reis Baldin Imagens iStock Photos E-pub Ricardo Diana Proibida a reprodução sem autorização expressa. Todos os direitos desta edição reservados à Editora Senac São Paulo Rua 24 de Maio, 208 – 3o andar Centro – CEP 01041-000 – São Paulo – SP Caixa Postal 1120 – CEP 01032-970 – São Paulo – SP Tel. (11) 2187-4450 – Fax (11) 2187-4486 E-mail: editora@sp.senac.br Home page: http://www.livrariasenac.com.br © Editora Senac São Paulo, 2020 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Sumário Capítulo 1 História e desenvolvimento da TI, 7 1 Impactos sociais, 8 2 Até o século XIX, 10 3 Século XIX, 11 4 Século XX, 12 5 Século XXI, 18 Considerações finais, 19 Referências, 20 Capítulo 2 A transformação do dado à criação do conhecimento, 23 1 Conceito de dado, 24 2 Conceito de informação, 26 3 Conceito de conhecimento, 27 4 Evolução da gestão dos dados e plataformas atuais de gestão, 28 5 Plataformas atuais de gestão, 32 Considerações finais, 34 Referências, 34 Capítulo 3 Sistemas de numeração decimal, binário e hexadecimal, 37 1 Sistema numérico, 39 2 Sistema decimal, 41 3 Sistema binário, 42 4 Sistema hexadecimal, 47 Considerações finais, 50 Referências, 50 Capítulo 4 Operações numéricas e conversões de base, 53 1 Operações numéricas, 54 2 Conversão de decimal para binário, 60 3 Conversão de binário para decimal, 62 4 Conversão de decimal para hexadecimal, 63 5 Conversão de hexadecimal para decimal, 64 6 Conversão de hexadecimal para binário, 65 Considerações finais, 66 Referências, 67 Capítulo 5 Álgebra de Boole e funções booleanas, 69 1 Funções booleanas, 69 Considerações finais, 83 Referências, 84 Capítulo 6 Álgebra de Boole e postulados, 85 1 Álgebra de Boole, 85 2 Postulado da complementação, 87 3 Postulado da adição, 88 4 Postulado da multiplicação, 90 5 Propriedades algébricas, 92 6 Teoremas de De Morgan, 93 Considerações finais, 98 Referências, 98 6 M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Conceitos de computação I Capítulo 7 Arquitetura de computador – hardware, 99 1 CPU, 100 2 Memória, 104 3 Módulo de entrada/saída (E/S) ou input/output (I/O), 108 4 Barramentos, 109 Considerações finais, 113 Referências, 113 Capítulo 8 Arquitetura de computador – software, 115 1 Infraestrutura, 116 2 Aplicativos e utilitários, 129 Considerações finais, 130 Referências, 131 Sobre o autor, 133 7 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 1 História e desenvolvimento da TI A busca de cientistas, matemáticos e filósofos pela automatização do raciocínio e do cálculo marca o início da história da computação no século XIX. A partir desse período, ocorreram descobertas substanciais que impulsionaram avanços na área computacional e a introdução a conceitos nunca antes abordados, como o princípio da computabili- dade, cunhado pelo matemático e filósofo David Hilbert (1862-1943) (MATIYASEVICH, 1993). Em meados do século XX, a tese de Turing-Church possibilitou aos cientistas da época uma noção matemática bem definida e precisa do que seria um algoritmo (TURING, 1937). Também ocorreram des- cobertas fascinantes que impulsionariam a capacidade de processa- mento das máquinas, como a invenção do transistor e dos componen- tes integrados (CIs). 8 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Essas descobertas contribuíram para uma miniaturização do hardware, possibilitando seu comércio e utilização em larga escala. Todas essas evoluções determinaram o surgimento da tecnologia da informação (TI), área de estudo sem a qual uma organização ou em- presa não conseguiria gerenciar seus recursos de forma a se manter competitiva no século da informação. Neste capítulo, apresentaremos algumas importantes definições a respeito dos impactos nas relações com o advento da computação. Por meio da leitura deste capítulo, espera-se que o leitor tenha capacidade de contextualizar as mudanças sociais acódigo, mas é importante saber que ele é formado por 8 bits, que ficarão armazenados na memória do computador, ocupando exata- mente 1 byte. Neste ponto, veremos o significado das abreviaturas: KB (kilobyte), MB (megabyte) e GB (gigabyte). Previamente, definiu-se que 1 KB é aproximadamente 1.000 bytes. Na verdade, 1 KB são 1.024 bytes. Esse número foi selecionado porque sua representação binária é muito mais simples que a representação do número 1.000: 1.000 = 01111101000 em binário, enquanto 1.024 = 10000000000 em binário (TOCCI; WIDMER; MOSS, 2011). Uma aplicação conhecida em sistemas digitais é a utilização da codificação BCD (binary-coded decimal). Esse código é utilizado para apresentar números decimais em formato binário. Por meio dessa co- dificação, cada dígito é convertido em um binário equivalente. É impor- tante ressaltar que o sistema de codificação BCD não é um sistema numérico. É um número decimal com cada dígito codificado para seu equivalente binário (TOCCI; WIDMER; MOSS, 2007). Uma das principais vantagens do BCD é a relativa facilidade de conversão em decimal, e vice-versa. 47Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Agora, vamos aprender a codificar o número 95310 para BCD, onde cada dígito decimal é representado por 4 bits. Tabela 2 – Representação do número 95310 em BCD 9 5 3 Decimal 1001 0101 0011 BCD Para decodificar o código BCD 1001001110000001 em seu equiva- lente decimal, é necessário agruparmos os dígitos em agrupamentos de 4 bits, conforme apresentado na tabela 3. Tabela 3 – Decodificação do código em decimal 1001 0011 1000 0001 BCD 9 3 8 1 Decimal Um equívoco frequente é confundir a codificação BCD com con- versão binária simples, visto que a codificação BCD é digito a digito. Exemplo: 13710 = 100010012 (número binário) 13710 = 0001 0011 0111 (codificação BCD) 4 Sistema hexadecimal Segundo Tocci, Widmer e Moss (2007), o sistema hexadecimal utili- za a base 16, sendo assim, essa base possui 16 símbolos, que podem vir seguidos de um número correspondente à sua base ou de uma letra, por exemplo, 48H. A nomenclatura “hexadecimal” é usada devido aos termos “hexa”, que significa “6”, e “deci”, que representa “10”, portanto, indicando a base 48 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 16. Cada número hexadecimal significa 4 bits de dados binários. Um byte é criado por 8 bits e é representado por dois dígitos hexadecimais. As posições dos dígitos são representadas por potências de 16, as- sim como realizado na representação decimal. A figura 5 apresenta as posições dessas potências de base 16. Figura 5 – Representação em sistemas numéricos em potências de 16 Dígitos menos significativos (LSD)Dígitos mais significativos (MSD) 163164 162 161 160 16-1 16-2 16-3 16-4 Os algarismos do sistema numérico hexadecimal são: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Os símbolos/letras A, B, C, D, E e F valem, res- pectivamente: 10, 11, 12, 13, 14 e 15. NA PRÁTICA No sistema hexadecimal, fica mais fácil a representação de dados. Exemplos: • Para representar um nibble (0000 a 1111), basta exatamente um algarismo hexadecimal (0 a F). • Para representar um byte, bastam dois algarismos (00 a FF). • O número binário 01011111 em hexadecimal é representado apenas por 5F. • Um MAC address de placa de rede é representado por 00-5F-FF-E- 0-AA-FF em vez de 0-95-255-224-170-255. • A cor RGB (255,0,204) é representada apenas por #FF00CC. Para uma melhor compreensão da conversão numérica, vamos to- mar o exemplo de conversão de um número da base 16 para a base 10: 49Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. (210)16 = 2 × 162 + 1 × 161 + 0 × 160 = (528)10 A tabela 4 apresenta a codificação dos símbolos em três diferentes bases: hexadecimal, decimal e o binário. Tabela 4 – Representação dos sistemas numéricos hexadecimal, decimal e binário Hexadecimal Decimal Binário 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 Fonte: adaptado de Tocci, Widmer e Moss (2007). 50 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Uma aplicação prática dos sistemas alfanuméricos é o código alfanu- mérico mais conhecido por ASCII. Essa codificação foi construída para representação de todos os caracteres e funções encontrados em um te- clado de computador (26 letras minúsculas e 26 maiúsculas, 10 dígitos, 7 sinais de pontuação e de 20 a 40 outros caracteres). Em sua estrutura, utiliza 7 bits: 27 = 128 possíveis grupos de código. Pode ser utilizado para transferir informações entre computadores, entre computadores e im- pressoras e para armazenamento interno (TOCCI; WIDMER; MOSS, 2007). PARA SABER MAIS O ASCII (American Standard Code for Information Interchange, ou Código Padrão Americano para Intercâmbio de Informações) tornou-se um dos códigos mais utilizados da atualidade. Para saber mais, pesqui- se por “tabela ASCII”. Na internet, existem muitos exemplos disponíveis. Considerações finais Neste capítulo, foram apresentados as definições e o contexto histó- rico para os sistemas de numeração mais utilizados pela humanidade. Esses sistemas numéricos são descritos como sistemas decimal, biná- rio e hexadecimal. Além disso, foram demonstrados alguns exemplos de representação para sistema numérico, sua utilização na computa- ção e suas vantagens e desvantagens. Referências BOYER, Carl B.; MERZBACH, Uta C. História da matemática. São Paulo: Blucher, 2012. CAJORI, Florian. A history of mathematical notations. New York: Dover Publications, 1993. 51Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. CLARKE, Desmond M. Descartes’ philosophy of science. Manchester: Manchester University Press, 1982. DOBERSTEIN, Arnoldo W. O Egito antigo. Porto Alegre: EDIPUCRS, 2010. Disponível em: www.pucrs.br/edipucrs/oegitoantigo.pdf. Acesso em: 19 nov. 2019. HAYKIN, Simon; MOHER, Michael. Sistemas modernos de comunicações wireless. Porto Alegre: Bookman, 2008. KRONECKER, Leopold. Zwei Sätze über Gleichungen mit ganzzahligen Coefficienten. Journal für die reine und angewandte Mathematik, v. 53, p. 173- 175, 1857. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 10. ed. São Paulo: Pearson Prentice Hall, 2007. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. 53 M aterial para uso exclusivode aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 4 Operações numéricas e conversões de base Neste capítulo, abordaremos as operações numéricas mais utiliza- das e as formas de conversão de bases numéricas. Apresentaremos operações como a adição direta nas bases 2 e 16 e a subtração direta na base 2. Veremos as conversões numéricas entre sistemas numéri- cos de bases diferentes, de base 10 para qualquer base, de qualquer 54 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . base para base 10 e entre sistemas de base 16 para base 2 e de base 2 para base 16 1 Operações numéricas Os computadores recebem o nome de “computadores digitais” por trabalharem o tempo todo no sistema numérico binário. Sendo assim, é importante apresentarmos a técnica utilizada para efetuar operações aritméticas na base 2. Segundo Tocci, Widmer e Moss (2011), um dos motivos principais de o sistema de numeração decimal não ser implementado em dispo- sitivos eletrônicos é a dificuldade de construir dispositivos eletrônicos multiníveis, com dez níveis diferentes de tensão (cada um representan- do um caractere decimal de 0 a 9). Por outro lado, a criação de equipa- mentos eletrônicos que trabalham com dois níveis de tensão é, sem dúvida, muito mais simples e de baixo custo de complexidade. Dessa forma, quase todos os dispositivos digitais usam o sistema de numera- ção binário (base 2) como sistema básico de numeração para suas ope- rações. Além disso, os sistemas digitais sofreram muitas modificações à medida que a tecnologia avançou, mas os princípios de representação binária se mantiveram sem mudanças (TOCCI; WIDMER; MOSS, 2011). A representação dos dois estados lógicos de um sinal digital é apre- sentada na figura 1. Pode-se perceber que os níveis mais altos de ten- são representam o bit 1 e os níveis mais baixos de tensão representam o bit 0. As terminologias “alto” e “baixo” são utilizadas para represen- tar os dois estados de um sistema digital, em vez dos números 1 e 0. Dependendo da tecnologia e do tipo de implementação, os limiares das faixas de tensão para representar 1 e 0 podem ser distintos. No exemplo da figura 1, o bit 1 é representado pelo intervalo de 2 V a 5 V, e o bit 0 é representado pelo intervalo de 0 V a 0,8 V, sendo o intervalo de 0,8 V a 2 V considerado como tensões inválidas (não utilizadas). 55Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 1 – Designações de tensões típicas em um sistema digital 0 V 0,8 V 2 V 5 V Nível altoBinário 1 Não usadas Nível baixoBinário 0 Tensões inválidas Fonte: adaptado de Tocci, Widmer e Moss (2011, p. 14). Quando utilizamos N bits, podemos contar 2 elevado a N diferentes possibilidades. Podemos relacionar essas possibilidades aos números em decimal (de 0 a 2N – 1). Por exemplo, para N = 4, podemos contar de 00002 a 11112, que corresponde a 010 a 1510, em um total de 16 números diferentes. Nesse caso, o valor do maior número decimal é 24 – 1 = 15, e há 24 números diferentes (TOCCI; WIDMER; MOSS, 2011, p. 27). O sistema numérico hexadecimal é conhecido por utilizar 16 dígitos diferentes entre números e letras para representar uma informação: os números de 0 a 9 e as letras de A a F. Cada letra corresponde a um número do sistema decimal (A: 10; B: 11; C: 12; D: 13; E: 14; F: 15). Para representar sequências binárias muito longas, é conveniente usar o sistema numérico hexadecimal, por oferecer um tamanho menor para representar a mesma informação, sendo mais fácil de entender do que longas sequências de 0 e 1. Para exemplificar, imagine sequências lon- gas de até 64 bits. Essas sequências são comuns quando se trabalha, por exemplo, com armazenamento em memória. Sendo assim, quando nos deparamos 56 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . com longas sequências de 0 e 1, é sempre mais conveniente e menos sujeito a erros convertê-las em hexadecimal. O sistema hexadecimal é extremamente utilizado na área dos micro- processadores e, também, amplamente utilizado em circuitos digitais, tratando-se de um sistema numérico muito importante, sendo aplicado em projetos de software e hardware (IDOETA; CAPUANO, 1999). 1.1 Operação aritmética soma Agora, vamos apresentar como a operação aritmética soma com números na base 2 e na base 16 funciona, mas, para isso, primeiro pre- cisamos entender como funciona a operação na base 10. Considere os algarismos decimais dispostos em ordem crescente de 0 a 9: 0 1 2 3 4 5 6 7 8 9 “Somar” significa deslocar à direita na sequência dos algarismos de- cimais, ou seja, 4 + 3 = 7 porque, estando no 4 e executando três des- locamentos à direita nos algarismos decimais ordenados, paramos no algarismo 7. Acompanhe: 0 1 2 3 4 5 6 7 8 9 Analise agora o que acontece com a seguinte operação aritmética decimal: 7 + 7 = ? 0 1 2 3 4 5 6 7 8 9 (vai 1) Analisando a representação anterior, pode-se concluir que 7 + 7 = 4, o que está errado. Vamos entender o que acontece. Quando não 57Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. existem mais algarismos à direita e, mesmo assim, é necessário fazer um deslocamento, ocorre o retorno para o algarismo 0 e continua-se a contar a partir daí (contando inclusive o retorno). Esse fato é conhecido como “estouro”, e é o famoso “vai 1”. 1 1 4(10) 7 7 + Os algarismos do sistema numérico binário são 1 e 0. Somar no sis- tema numérico binário não é diferente de somar em outros sistemas numéricos. O problema é que, como ocorrem muitos estouros, é neces- sário um pouco mais de atenção para não errar. A tabela 1 exemplifica as possibilidades de operações binárias. Tabela 1 – Possibilidades de operações binárias 0 + 0 0 1 + 0 1 0 + 1 1 1 + 1 0 vai 1 Por exemplo, podemos somar 137 na base 10 com 72 na base 10. Para isso, uma forma alternativa seria transformar esses números para binários: 137 = 10001001; 72 = 01001000. Na sua soma, obteríamos o seguinte número binário: 11010001, que representa o mesmo valor da soma decimal. 137(10) = 10001001 72(10) 01001000 Soma = 209 11010001 58 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . 1.1.1 Soma hexadecimal Um número no formato hexadecimal pode ser seguido pelo número 16, como em 6AD(16), ou pela letra H, comoem 26H. A grande diferença de um sistema numérico para outro é a quantidade de algarismos para representar os valores. A montagem e a técnica são as mesmas utiliza- das para somar números nas bases 10 e 2. Primeiramente, são escritos os algarismos na ordem crescente, e, depois, são contados os desloca- mentos e os estouros. 0 1 2 3 4 5 6 7 8 9 A B C D E F Agora, um exemplo de operação de soma do número hexadecimal 8 somado a A na base hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F (vai 1) Logo, a resposta será 12 em hexadecimal, que corresponde a 18 na base decimal. 1 +8 A 1 2 Vamos acompanhar um outro exemplo: somar 531 + 19C, ambos os números na base hexadecimal. A soma de 1 + C, onde C vale 12. Representaremos o deslocamento de doze casas, a partir de 1. Assim fazendo, paramos na letra D. 59Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 0 1 2 3 4 5 6 7 8 9 A B C D E F (não ocorreu estouro) Representando a soma de 3 + 9, iniciamos na posição 3 e andamos nove casas para a direita, parando no C. 0 1 2 3 4 5 6 7 8 9 A B C D E F (não ocorreu estouro) Concluindo a soma, resta somarmos 5 + 1. Usando o mesmo proce- dimento, estando em 5, move-se uma casa para a direita, parando no 6. 0 1 2 3 4 5 6 7 8 9 A B C D E F (não ocorreu estouro) Resposta: somando 531 + 19C na base hexadecimal, temos um resultado de 6CD na base hexadecimal: 531(16) + 19C(16) = 6CD(16). +5 3 1 1 9 C 6 C D 1.1.2 Subtração binária Idoeta e Capuano (1999) descrevem o método de subtração binária como sendo semelhante à subtração de números decimais. São possí- veis apenas quatro situações para efetuar operações de subtração de 60 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . um bit de outro em posições de um número binário. São elas (IDOETA, CAPUANO, 1999): 0 – 0 = 0 1 – 1 = 0 1 – 0 = 1 0 – 1 à precisa tomar emprestado à 10 – 1 = 1 O último caso aponta que é preciso emprestar da coluna seguinte para a esquerda quando subtrair 1 de 0. Vamos acompanhar um exemplo da subtração de dois números bi- nários e seus equivalentes decimais. Exemplo: a subtração do número binário 10011 menos o número bi- nário 1000 (100112 – 10002). 1 1 0 0 1 1 – 1 0 0 0 1 0 1 1 Resposta: a subtração do número binário 10011 menos o número binário 1000 é igual a 1011 (100112 – 10002 = 10112). 2 Conversão de decimal para binário O sistema binário pode ser utilizado para representar qualquer quan- tidade também no sistema decimal ou em outro sistema de numera- ção. Tocci, Widmer e Moss (2011) fazem uma importante consideração sobre a aritmética binária. Essa consideração define o posicionamento dos bits com maior e menor valor significativo, conhecidos, respectiva- mente, como MSB e LSB: 61Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. • MSB (most significant bit): indica o bit mais significativo (o que tem maior valor). • LSB (less significant bit): indica o bit menos significativo (o que tem menor valor). Conhecendo os valores MSB e LSB, é possível efetuar a conversão de um número decimal inteiro para seu equivalente binário, e vice-versa. Um método para conversão de um número na base decimal para a base binária utiliza dois algarismos (0 e 1). Cada posição tem um peso de uma potência de 2 (base do sistema binário). Sendo assim, para se con- verter um número de binário para decimal, deve-se multiplicar cada bit pela potência de sua posição e somar os resultados. Exemplo: 2510 = 16 + 8 + 1 = 24 + 23 + 0 + 0 + 20 = 1 1 0 0 12 O algarismo 0 é inserido nas posições 21 e 22, pois todas as posições devem ser consideradas. Vamos a outro exemplo: 7810 = 64 + 8 + 4 + 2 = 26 + 0 + 0 + 23 + 22 + 21 + 0 = 1 0 0 1 1 1 02 Na conversão, realizada a seguir para o número 3010, utilizaremos o método por divisões sucessivas pelo qual o número decimal é dividido sucessivamente por 2. Podemos obter, por meio desse método, os res- tos de cada divisão, até que se obtenha quociente 0. 30 / 2 = 15 + resto 0 LSB 15 / 2 = 7 + resto 1 7 / 2 = 3 + resto 1 3 / 2 = 1 + resto 1 Para a divisão 1 / 2, como o dividendo é menor que 2, (no caso, 1), 1 será o MSB. 3010 = 111102 62 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Observe que o resultado binário corresponde à concatenação dos restos resultantes das divisões sucessivas por 2, e, então, o resultado é alcançado ao escrevermos o primeiro resto na posição do LSB até o último resto na posição do MSB. 3 Conversão de binário para decimal Segundo Idoeta e Capuano (1999), a conversão do sistema de nu- meração binário é realizada utilizando um sistema posicional em que cada dígito binário (bit) possui um certo peso, de acordo com a posição relativa ao LSB. Qualquer número binário pode ser convertido em seu decimal equivalente, simplesmente somando os pesos das posições em que o número binário tiver um bit 1. Exemplificando, realizaremos a conversão do número binário 100112 em seu equivalente decimal: 1 0 0 1 12 24 + 0 + 0 + 21 + 20 = 16 + 2 + 1= 1910 Vejamos outro exemplo com um número maior de bits: 1 1 0 0 1 12 25 + 24 + 0 + 0 + 21 + 20 = 5110 A partir do exemplo anterior, e de acordo com Tocci, Widmer e Moss (2011), podemos determinar os pesos, isto é, as potências de 2, para cada posição que contenha um bit 1 e, então, somá-los. O bit MSB tem peso de 25, ainda que seja o sexto bit. Isso ocorre porque o LSB é o pri- meiro bit e tem peso de 20. 63Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 4 Conversão de decimal para hexadecimal A conversão de decimal em binário tem a característica de utilizar divisões sucessivas por 2. Desse modo, a conversão de decimal em he- xadecimal pode ser feita usando divisões sucessivas por 16, e seu resul- tado é obtido escrevendo do quociente da última divisão até o resto da primeira divisão. Exemplificando: a) Converta 37310 em hexadecimal. Solução: 373 / 16 = 23 + resto 5 23 / 16 = 1 + resto 7 Para a divisão 1 / 16, como o dividendo é menor que 16, (no caso, 1), 1 será o MSB. 37310 = 17516 Para a operação de conversão do número decimal 373 em hexade- cimal, primeiro dividimos 373 por 16, resultando em 23 com resto 5; depois, dividimos 23 por 16, ficando 1 com resto 7. Por fim, dividimos 1 por 16, fica 0 com resto 1. b) Converta 23110 em hexadecimal. Solução: 231 / 16 = 14 + resto 7 LSB Para a divisão 14 / 16, como o dividendo é menor que 16, (no caso, 14), 14 será o valor que entra como MSB. 23110 = E716 Para a conversão do número decimal231 para hexadecimal, dividi- mos 231 por 16, que resulta em 14 com resto 7. Então, dividimos 14 por 64 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . 16, que resulta em 0 com resto 14. Pegando do primeiro resto LSB ao MSB, resulta em E7 na base 16. Lembre-se de que E na base hexadeci- mal é igual a 14. Observe novamente que os restos do processo de divisões sucessi- vas formam o número hexadecimal. 5 Conversão de hexadecimal para decimal Idoeta e Capuano (1999) citam que um número hexadecimal pode ser convertido em seu equivalente decimal conhecendo a posição de cada dígito hexadecimal, por ter um peso que é uma potência de 16. O LSD tem um peso de 160 = 1; o dígito da próxima posição superior tem um peso de 16¹ = 16; o próximo dígito tem um peso de 16² = 256, e as- sim sucessivamente. Vamos acompanhar alguns exemplos de conversão: a) 35616 = 3 × 162 + 5 × 161 + 6 × 160 = 768 + 80 + 6 = 85410 Para a conversão do número hexadecimal 356 para decimal, deve-se multiplicar cada algarismo por 16 elevado à potência correspondente e, no final, somar todos os itens. Ficaria 3 × 16 elevado a 2 mais 5 × 16 elevado a 1 mais 6 × 16 elevado a 0. O resultado de cada multiplicação fica 768 + 80 + 6, perfazendo um total de 854 na base 10. b) 2AF16 = 2 × 162 + 10 × 161 + 15 × 160 = 512 + 160 + 15 = 68710 65Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para a conversão do número hexadecimal 2AF para o seu correspon- dente em decimal, deve-se multiplicar cada algarismo por 16 elevado à potência correspondente e, depois, somar os resultados. Ficaria 2 × 16 elevado a 2 mais 10 × 16 elevado a 1 mais 15 × 16 elevado a 0. O resultado de cada multiplicação fica 512 + 160 + 15, com total de 687 na base 10. 6 Conversão de hexadecimal para binário Uma particularidade das conversões de hexadecimal para binário é que, implicitamente na base 2, “n” dígitos binários podem ser representa- dos por 2n números diferentes. Para exemplificar, tomaremos quatro dígi- tos binários, e assim teremos 24 = 16 números diferentes. Uma vez que o hexadecimal é um sistema de base 16, um número de um dígito pode ser usado para representar 161 = 16 números diferentes. Como veremos a se- guir, isso torna a conversão entre os dois sistemas extremamente simples. Exemplo: considere o número hexadecimal 5B16. Vamos converter esse número em binário. Para isso, separamos 5 e B e os convertemos direta- mente em binários: 5 / 2 = 2 + resto 1 2 / 2 = 1 + resto 0 Como o dividendo resultante é menor que 2 (no caso, 1), é justamen- te o valor 1 do dividendo que entra como MSB. 516 = 1012 B = 11 11 / 2 = 5 + resto 1 5 / 2 = 2 + resto 1 2 / 2 = 1 + resto 0 66 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Como o dividendo resultante é menor que 2 (no caso, 1), é justamen- te o valor 1 do dividendo que entra como MSB. B = 10112 Resultado: 10110112 Para a conversão do número hexadecimal 5B para o seu correspon- dente em binário, primeiramente, são efetuadas as divisões diretas e sucessivas na base 2, e, depois, são concatenados os resultados. O al- garismo 5 em hexadecimal equivale ao binário 1012, e B equivale a 11 em decimal e 1011 na base 2. Logo, concatenando os resultados, obte- remos o equivalente binário 1011011. Uma vez conhecido o equivalente binário para um número hexadeci- mal, pode-se mostrar como será realizada a conversão, como verificado no exemplo a seguir: 3 = 11 A = 1010 B = 1011 Após a conversão do número hexadecimal para base binária, fare- mos a concatenação e obteremos o equivalente binário 1110101011 para o número hexadecimal 3AB. Considerações finais Neste capítulo, compreendemos como efetuar operações numéricas para diferentes bases. Vimos também como efetuar as conversões da base decimal para binário e hexadecimal. Além disso, apresentamos, suscintamente, as vantagens de utilização de cada base. Foi possível verificar que existe mais de uma maneira para operações de conver- são de números de diferentes bases. Possivelmente, você pode chegar 67Operações numéricas e conversões de base M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. à conclusão de que muitas dessas conversões podem ser realizadas automaticamente, em uma calculadora de conversão disponível na in- ternet. No entanto, o objetivo deste capítulo é que o aluno domine essas conversões, para que, assim, compreenda os processos de operações lógicas que os dispositivos digitais realizam. Referências IDOETA, Ivan Valeije; CAPUANO, Francisco Gabriel. Elementos de eletrônica digital. São Paulo: Érica, 1999. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. 69 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 5 Álgebra de Boole e funções booleanas 1 Funções booleanas De acordo Tocci, Widmer e Moss (2011), os circuitos internos dos computadores operam com a presença ou a ausência de sinais elétri- cos, é e por meio de operações lógicas com esses sinais que todas as Neste capítulo, abordaremos a álgebra de Boole e suas funções: OR, AND, NOT, XOR, NAND, NOR e XNOR. Exemplificaremos um circuito ló- gico, a tabela-verdade e a expressão correspondente para cada função. Ao longo da disposição do conteúdo, demonstraremos algumas aplica- ções práticas, para melhor entendimento do uso das funções na resolu- ção de problemas. 70 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . informações são processadas. A lógica para processar informações digitais é conhecida como lógica booleana, na qual os operadores boo- leanos efetuam operações sobre dados físicos, e, para isso, são neces- sários componentes físicos para implementação do circuito digital. Segundo Tocci, Widmer e Moss (2011): Em 1854, um matemático chamado George Boole escreveu: Uma in- vestigação das leis do pensamento, em que descrevia o modo como se toma decisões lógicas com base em circunstâncias verdadeiras ou falsas. O método que ele descreveu é hoje conhecido como lógi- ca booleana, e o sistema que emprega símbolos e operadores para descrever essas decisões é chamado de álgebra booleana. (TOCCI; WIDMER; MOSS, 2011, p. 49) Uma das motivações para o estudo desse tema é que os circuitos di- gitais são os responsáveispela implementação lógica dos computado- res atuais. Podemos citar como exemplo a unidade lógica e aritmética (ULA) que fica dentro do processador – a parte física responsável por efetuar todas as operações aritméticas lógicas do computador. Dentro desse dispositivo, existem muitos circuitos com diferentes funções, como: somadores (que realizam operações de soma com valores de duas entradas), subtratores (circuitos combinacionais que executam operações de subtração) e comparadores (que, em situações práticas, são utilizados para comparação de dois sinais sendo provenientes de origens distintas). Também é importante nos atermos a duas definições da álgebra booleana: a variável booleana (uma quantidade que pode ser, em dife- rentes momentos, igual a 0 ou 1) e as funções booleanas (associam a cada “n” variáveis de entrada uma única saída). 71Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. IMPORTANTE De acordo com Tocci, Widmer e Moss (2011), é equivocado afirmar que a álgebra booleana é utilizada somente como instrumento de análise e simplificação de sistemas lógicos. A álgebra booleana pode ser ampla- mente utilizada como ferramenta de projeto para que um circuito lógico produza uma relação entrada/saída. A esse processo dá-se o nome de “síntese de circuitos lógicos”. Alguns recursos, como tabela-verdade, símbolos esquemáticos, dia- gramas de tempo e linguagens, são utilizados na análise, síntese e do- cumentação de sistemas e circuitos lógicos. Idoeta e Capuano (1999) citam que a álgebra booleana é definida como uma ferramenta matemá- tica; a tabela-verdade é utilizada como forma de organização de dados; os símbolos esquemáticos, de desenho e os diagramas de tempo são gráficos; e as linguagens são descritivas de interpretação universal. Nesse sentido, podemos descrever uma função booleana utilizando portas lógicas, tabela-verdade e equações. Os componentes físicos capazes de efetuar as operações booleanas sobre os sinais elétricos recebem o nome de portas lógicas, que, na prática, são vendidas encapsuladas em uma pastilha de silício chamada chip e devem ser colocadas a uma placa de circuito impresso para for- marem os circuitos. Dessa forma, as portas lógicas são dispositivos ele- trônicos que têm a função de implementar circuitos booleanos. Vamos conhecer as principais portas lógicas e cada um de seus símbolos para representação gráfica, além da apresentação da tabela-verdade, que descreverá o seu funcionamento. De acordo com Idoeta e Capuano (1999), a tabela-verdade é o nome dado à organização de valores para todas as possíveis situações e seus resultados, no formato de tabela ou mapa. Assim, na tabela, é possível encontrar a forma como uma função se comporta. 72 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Diferente da álgebra comum, a álgebra booleana possui somente três operações básicas: OR, AND e NOT, conhecidas como operações lógicas. 1.1 OR (ou booleano) Segundo Tocci, Widmer e Moss (2011), uma porta lógica OR assume o valor 1 quando uma ou mais variáveis de entrada de um circuito fo- rem iguais a 1 e assume valor 0 se, e somente se, todas as variáveis de entrada forem iguais a 0. Para entradas {X1,...,Xn}, ela é definida como: f(X1, …, Xn) = ∑n Xi i = 1 E vale 1 se qualquer uma das entradas for igual a 1. Para duas entradas, temos a tabela-verdade, que mostra duas entra- das, X1 e X2, e uma de saída f(X1, X2). Para as entradas 0 ou 0, a saída é 0; para as entradas 0 ou 1, a saída é 1; para as entradas 1 ou 0, a saída é 1; para as entradas 1 ou 1, a saída é 1. Tabela 1 – Tabela-verdade para função OR X1 X2 f(X1, X2) 0 0 0 0 1 1 1 0 1 1 1 1 Por meio da porta lógica, também podemos representar as duas entradas e sua saída. 73Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 1 – Representação de porta lógica OR X1 + X2 X2 X1 Sendo que, a partir da saída evidenciada na porta lógica, temos a expressão: S = X1 + X2. A seguir, são mencionados alguns pontos-chave em relação à opera- ção OR e às portas OR (TOCCI; WIDMER; MOSS, 2011, p. 121): • A operação OR promove um resultado (saída) 1 sempre que quaisquer das entradas forem 1, pois, do contrário, a saída seria 0. • Uma porta OR é um circuito lógico que faz operação OR nas en- tradas do circuito. • A expressão S = X1 + X2 é lida como “S é igual a X1 ou X2”. Conforme Tocci, Widmer e Moss (2011) exemplificam, uma aplica- ção para porta lógica OR pode ser encontrada em sistemas industriais, os quais necessitam de ativação de uma função de saída sempre que qualquer de suas várias entradas for ativada, como é o caso de um pro- cesso químico em que um alarme deve ser ativado sempre que a tem- peratura do processo passar de um valor máximo predeterminado ou sempre que a pressão ultrapassar um limite máximo. A figura 2 ilustra um sistema de alarme com o uso de uma porta lógica OR. 74 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Figura 2 – Exemplo do uso de uma porta lógica OR em um sistema de alarme Alarme Comparador Transdutor de temperatura Transdutor de pressão Processo químico Comparador VT VTR TH PH VP VPR VT: valor de temperatura VTR: valor de temperatura de referência VP: valor de pressão VPR: valor de pressão de referência TH: valor lógico de temperatura PH: valor lógico de pressão Fonte: adaptado de Tocci, Widmer e Moss (2011, p. 54). 1.2 AND (e booleano) A porta lógica AND executa a multiplicação de duas ou mais variá- veis booleanas. Uma saída só será 1 se todas as entradas forem 1; para todos os outros casos, a saída é 0. Para entradas {X1,...,Xn}, ela é definida como: f(X1, …, Xn) = n i = 1 Xi E vale 1 apenas se todas as entradas forem iguais a 1. Para duas entradas, temos: 75Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Tabela 2 – Tabela-verdade para função AND X1 X2 f(X1, X2) 0 0 0 0 1 0 1 0 0 1 1 1 Figura 3 – Representação de porta lógica AND X1 × X2 X2 X1 Expressão: S = X1 × X2 1.3 NOT (não booleano) A porta lógica NOT faz a negação de qualquer entrada, ou seja, se a entrada for 0, a saída será 1, e, se a entrada for 1, a saída será 0. A operação NOT para qualquer entrada X é definida como: f(X) = X _ Ou seja, é a entrada negada (barrada). Para uma entrada X1, por exemplo, temos: 76 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id aa re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Tabela 3 – Tabela-verdade para função NOT X1 f(X1) 0 1 1 0 Figura 4 – Representação de porta lógica NOT X1 X1 Expressão: S = X1 _ 1.4 XOR (ou exclusivo) De acordo com Tocci, Widmer e Moss (2011), a função do XOR é for- necer 1 à saída quando as variáveis de entrada forem diferentes entre si. Para entradas {X1,...,Xn}, ela é definida como: f(X1, X2) = _ _ X2X1 × X2 + X1 × X2 = X1 E vale 1 apenas se as entradas forem diferentes. Para duas entradas, temos: Tabela 4 – Tabela-verdade para função XOR X1 X2 f(X1, X2) 0 0 0 0 1 1 1 0 1 1 1 0 77Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 5 – Representação de porta lógica XOR X1 X2 X2 X1 Expressão: S = X1 X2 1.4.1 Aplicações de circuitos práticos utilizando a porta lógica XOR De acordo com Tocci, Widmer e Moss (2011), no fluxo de dados, a co- dificação em códigos binários de um local para outro é a operação mais frequentemente realizada em sistemas digitais de comunicações, como: • transmissão de voz digitalizada por um enlace de micro-ondas; • armazenamento e controle de erros nas sequências de bits arma- zenados em dispositivos de memorização externa, como discos óticos e magnéticos; • transmissão de dados de um computador para outro, que esteja distante, por meio de cabos ou mesmo fibras ópticas (essa é a principal maneira de enviar e receber informações pela internet). Para que essas informações sejam transmitidas e recebidas de for- ma íntegra, existe um circuito verificador de paridade, o qual permite que o transmissor anexe um bit de paridade em um conjunto de bits de dados antes, para, então, transmiti-lo ao receptor. Sendo assim, esse bit de paridade faz com que o receptor detecte qualquer erro em um bit que tenha ocorrido na transmissão (TOCCI; WIDMER; MOSS, 2011). A figura 6 apresenta o conjunto dos dados a serem transmitidos sen- do aplicados em um circuito gerador de paridade, que produz um bit 78 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . de paridade par (P) em sua saída. Esse bit de paridade, segundo Tocci, Widmer e Moss (2011, p. 148), “é transmitido para o receptor juntamen- te com os bits do dado original, totalizando cinco bits”. Figura 6 – Porta XOR utilizada para implementar um gerador de paridade Dados transmitidos com bit de paridade Dados originais Gerador de paridade par D3 D2 D1 D0 Paridade (P) { Fonte: adaptado de Tocci, Widmer e Moss (2011, p. 148). Na figura 7, temos os mesmos cinco bits (dado e paridade) entran- do no circuito verificador de paridade do receptor, que gera uma saída de erro (E), que indica a ocorrência ou não de um erro em um único bit (TOCCI; WIDMER; MOSS, 2011). Figura 7 – Porta XOR utilizada para implementar um verificador de paridade Verificador de paridade par Do transmissor Erro (E) {1 = erro 0 = não erro} D3 D2 D1 D0 P Fonte: adaptado de Tocci, Widmer e Moss (2011, p. 148). 79Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para exemplificar nossa aplicação prática, vamos considerar a saída do verificador de paridade e determinar cada um dos conjuntos de dados enviados pelos transmissores. Tabela 5 – Tabela de transmissão P D3 D2 D1 D0 Transmissão 1 0 1 0 1 0 Transmissão 2 1 1 1 1 0 Transmissão 3 0 1 1 1 1 Transmissão 4 0 0 0 0 0 Submetendo as entradas de dados D3, D2, D1, D0 da transmissão 1 aos circuitos lógicos anteriores, teremos: D3 XOR D2 = 1 XOR 0 = 1 D0 XOR D1 = 0 XOR 1 = 1 Realizando (D3 XOR D2) XOR (D1 XOR D0) = 0 com XOR do bit de pari- dade P = 0, então teremos: 0 XOR 0 = 0, e, assim sendo, a saída de erro será 0, o que indica que não houve erro. Submetendo as entradas de dados D3, D2, D1, D0 da transmissão 2 aos circuitos lógicos anteriores, teremos: D3 XOR D2 = 1 XOR 1 = 0 D1 XOR D0 = 1 XOR 0 = 1 Realizando (D3 XOR D2) XOR (D1 XOR D0) = 1 com XOR do bit de pari- dade P = 1, então teremos: 1 XOR 1 = 0, e, assim sendo, a saída de erro será 0, o que indica que não houve erro. Submetendo as entradas de dados D3, D2, D1, D0 da transmissão 3 aos circuitos lógicos anteriores, teremos: 80 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . D3 XOR D2 = 1 XOR 1 = 0 D0 XOR D1 = 1 XOR 1 = 0 Realizando (D3 XOR D2) XOR (D1 XOR D0) = 0 com XOR do bit de pari- dade P = 0, então teremos: 0 XOR 0 = 0, e, assim sendo, a saída de erro será 0, o que indica que não houve erro. Submetendo as entradas de dados D3, D2, D1, D0 da transmissão 4 aos circuitos lógicos anteriores, teremos: D3 XOR D2 = 0 XOR 0 = 0 D0 XOR D1 = 0 XOR 0 = 0 Realizando (D3 XOR D2) XOR (D1 XOR D0) = 0 com XOR do bit de pari- dade P = 0, então teremos: 0 XOR 0 = 0, e, assim sendo, a saída de erro será igual a 0, o que indica que não houve erro. IMPORTANTE Tocci, Widmer e Moss (2011) definem que a saída E terá nível 1, caso as entradas do verificador de paridade sejam um número ímpar de 1’s, e que um número ímpar de 1’s indica que um erro ocorreu de acordo com o critério de paridade par. 1.5 NAND (não e) NAND é a operação AND negada. Para duas entradas {X1,X2}, por exemplo, ela é definida como: f(X1, X2) = X1 × X2 __ 81Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Sendo o resultado do teorema de De Morgan,1 e vale 1 se qualquer uma das entradas for igual a 1. Para duas entradas, temos: Tabela 6 – Tabela-verdade para função NAND X1 X2 f(X1, X2) 0 0 1 0 1 1 1 0 1 1 1 0 Figura 8 – Representação de porta lógica NAND Expressão: S = X1 × X2 __ 1.6 NOR (não ou) NOR é a operação OR negada. Para duas entradas {A1,A2}, por exem- plo, ela é definida como: 1 Os teoremas de De Morgan foram sugeridos pelo matemático Augustus De Morgan no século XIX, e são utilizados para realização de simplificações de expressões booleanas e, também, para desenvolvimento de muitos circuitos digitais (TOCCI; WIDMER; MOSS, 2011, p. 103). X2 X1 X1 × X2 X1 + X2 __ X1 × X2 __ __ = 82 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . E vale 1 se as entradas forem iguais a 0. Para duas entradas, temos: Tabela 7 – Tabela-verdade para função NOR X1 X20 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 X1 × X2 X1+ X2 Figura 9 – Representação de porta lógica NOR X1 + X2 X2 X1 Expressão: S = X1 + X2 1.7 XNOR (ou exclusivo ou coincidência) Definida apenas para duas entradas {X1,X2}, como sendo: f(X1, X2) = X1 × X2 + X1 × X2 = X1 _ _ X2 E vale 1 apenas se as entradas forem iguais. Para duas entradas, temos: 83Álgebra de Boole e funções booleanas M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Tabela 8 – Tabela-verdade para função XNOR X1 X2 f(X1, X2) 0 0 1 0 1 0 1 0 0 1 1 1 Figura 10 – Representação de porta lógica XNOR X1 X2 X2 X1 Expressão: S = X1 X2 Considerações finais Neste capítulo, apresentou-se uma breve introdução sobre a álgebra booleana, sua aplicação na computação e seu emprego na resolução de problemas para a área industrial. A principal utilidade dessas expres- sões lógicas é descrever o relacionamento entre as saídas do circuito lógico (as decisões) e as entradas (as circunstâncias). Conhecemos, também, todos os sete tipos de portas lógicas, seus símbolos, suas tabelas-verdade e suas expressões correspondentes. 84 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Referências IDOETA, Ivan Valeije; CAPUANO, Francisco Gabriel. Elementos de eletrônica digital. São Paulo: Érica, 1999. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. 85 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 6 Álgebra de Boole e postulados Anteriormente, abordamos o funcionamento das portas lógicas OR, AND, NOT, XOR, NAND, NOR e XNOR, suas aplicações e a tabela-verdade para cada uma das portas com os resultados de cada entrada. Dando continuidade a esse tema, neste capítulo, falaremos sobre os postula- dos e os teoremas de De Morgan. 1 Álgebra de Boole A álgebra de Boole refere-se à simplificação algébrica de circuitos ló- gicos. Segundo Idoeta e Capuano (1999), para um melhor entendimento da simplificação de circuitos lógicos, é necessário primeiramente estu- darmos sobre a álgebra de Boole, pois é por meio de seus postulados, propriedades e teoremas que realizamos as simplificações nos circuitos. 86 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . De acordo com Tocci, Widmer e Moss (2011), a diferença entre a álgebra tradicional e a álgebra booleana é que, na álgebra tradicional, as constantes e variáveis podem ter infinitos valores reais, enquanto, na ál- gebra booleana, essas variáveis assumem dois valores possíveis, “0” ou “1”, “verdadeiro” ou “falso”, “cara” ou “coroa”. As variáveis booleanas são bem úteis quando temos que representar níveis de tensão em uma co- nexão ou em terminais de entrada/saída de um circuito. Uma expressão booleana é uma expressão matemática cujas variáveis são booleanas e o resultado será sempre 0 ou 1. Podemos citar como exemplo de aplicação um sistema digital, no qual o valor booleano 0 pode representar qualquer tensão entre 0 e 0,8 V, e o valor booleano 1 pode representar qualquer tensão dentro da faixa de 2 a 5 V. Assim, as variáveis booleanas não apresentam números, mas, sim, o estado do nível de tensão de uma variável, que é chamado de nível lógico. Na lógica digital, vários outros termos são usados para nomear esses níveis lógicos, como demonstrado no quadro 1 (TOCCI; WIDMER; MOSS, 2011). Quadro 1 – Terminologia para os níveis lógicos Lógico 0 Lógico 1 Falso Verdadeiro Desligado Ligado Baixo Alto Não Sim Aberto Fechado A tabela-verdade pode ser obtida a partir de uma expressão booleana. Entretanto, é de especial interesse encontrar a expressão booleana que produza a mesma tabela-verdade com a menor complexidade possível, pois, dessa forma, também é possível implementar o circuito lógico que 87Álgebra de Boole e postulados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. produz a referida tabela-verdade com um reduzido número de portas, proporcionando uma economia de circuitos. Podemos verificar o exemplo de uma expressão com a sua corres- pondente tabela-verdade. Exemplo: Y = A × B + A × Bà Y = A Tabela 1 – Tabela-verdade correspondente à expressão indicada A B Y 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 Existem algumas técnicas empregadas para a simplificação de ex- pressões booleanas e, com isso, a simplificação dos circuitos lógicos. Uma das técnicas é a fatoração. A fatoração é uma técnica que utiliza postulados, propriedades, teoremas e identidades da álgebra de Boole para realizar as simplificações. 2 Postulado da complementação De acordo com Idoeta e Capuano (1999), os postulados são utiliza- dos na minimização, bem como na manipulação, de expressões lógi- cas. O postulado da complementação mostra como são as regras da complementação na álgebra de Boole. Chamaremos de (A barrado) o complemento de A. O bloco lógico que executa o postulado da comple- mentação é o inversor. Supondo a proposição A e o complemento de A = . A × B + A × B Y = A A × B A × B A A 88 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Dessa forma, se A é igual a 0, então A barrado é igual a 1. Se A é igual a 1, então A barrado é igual a 0, conforme segue: Se A = 0 à = 1 Se A = 1 à = 0 A A Considerando, por exemplo, os dígitos 1 e 0: = 0 = 10 1 Por meio do postulado da complementação, podemos estabelecer a identidade da dupla negação: Se A = 1, teremos = 0. Se = 0, então = 1. Se A = 0, teremos = 1. Se A = 1, então = 0. A A A AA A Concluímos, então: Quando A = 1 à = 1 à Quando A = 0 à = 0. 1 Daí: A = A A = 0 e = 1.0 1 3 Postulado da adição Segundo Tocci, Widmer e Moss (2011), o postulado da adição define as regras da adição na álgebra de Boole, sendo que, em um circuito ló- gico ou sistema digital, esse postulado é bem representado pela função booleana OR. Na tabela 2, temos os postulados e os seus respectivos teoremas. 89Álgebra de Boole e postulados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Tabela 2 – Postulado da adição e seus teoremasPostulado Teorema 0 + 0 = 0 A + 0 = A 0 + 1 = 1 A + 1 = 1 1 + 1 = 1 A + A = A 1 + 0 = 1 A variável “A” poderá assumir as identidades a seguir: A + 0 = A Se A = 0, temos: 0 + 0 = 0. Se A = 1, temos: 1 + 1 = 1. O resultado será sempre igual à variável A. A + 1 = 1 Se A = 0, temos: 0 + 1 = 1. Se A = 1, temos: 1 + 1 = 1. O resultado será sempre igual a 1. Sempre que somado 1 a qualquer variável, o resultado será igual a 1. A + A = A Se A = 0, temos: 0 + 0 = 0. Se A = 1, temos: 1 + 1 = 1. Todas as vezes que somamos a mesma variável, o resultado será ela mesma. A + = 1A A + A = 1 90 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Se A = 0, temos: 0 + 1 = 1 (pois = 1). Se A = 1, temos: 1 + 0 = 1 (pois = 0).A A Quando somamos uma variável ao seu complemento, o resultado será sempre 1. 4 Postulado da multiplicação De acordo com Tocci, Widmer e Moss (2011), esse postulado deter- mina as regras da multiplicação na álgebra de Boole, sendo que o circui- to lógico desse postulado é representado pela função AND. Tabela 3 – Postulado da multiplicação e seus teoremas Postulado Teorema 0 × 0 = 0 A × 0 = 0 0 × 1 = 0 A × 1 = A 1 × 0 = 0 A × A = A 1 × 1 = 1 A variável poderá assumir as identidades a seguir: A × 0 = 0 Se A = 0, temos: 0 × 0 = 0. Se A = 1, temos: 1 × 0 = 0. Toda variável multiplicada por 0 terá como resultado 0. A × 1 = A Se A = 0, temos: 0 × 1 = 0. Se A = 1, temos: 1 × 1 = 1. A × A = 0 91Álgebra de Boole e postulados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Toda variável multiplicada por 1 terá como resultado a própria variável. A × A = A Se A = 1, temos: 1 × 1 = 1. Se A = 0, temos: 0 × 0 = 0. Toda variável multiplicada por ela própria terá como resultado a variável. A × = 0 Se A = 0, temos: 0 × 1 = 0 (pois = 1). Se A = 1, temos: 1 × 0 = 0 (pois = 0). A A A Sendo assim, uma variável multiplicada por seu complemento terá como resultado 0. Dessa forma, vamos acompanhar alguns exemplos. Tabela 4 – Tabela-verdade A S 0 1 0 + 1 1 1 0 1 + 0 1 Figura 1 – Circuito lógico de A + A A + A A A S = A + A 92 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Tabela 5 – Tabela-verdade A S 0 1 0 × 1 0 1 0 1 × 0 0 Figura 2 – Circuito lógico de A × A A S = A × A 5 Propriedades algébricas Vamos conhecer as principais propriedades algébricas úteis, prin- cipalmente, no manuseio e simplificação de expressões. Presentes também na matemática comum, vamos compreender melhor sobre as propriedades comutativa, associativa e distributiva na álgebra de Boole (TOCCI; WIDMER; MOSS, 2011): • Propriedade comutativa: a propriedade comutativa é válida tanto na adição como na multiplicação. Adição: A + B = B + A Multiplicação: A × B = B × A • Propriedade associativa: a propriedade associativa é válida na adição e na multiplicação. Adição: A + (B + C) = (A + B) + C = A + B + C Multiplicação: A × (B × C) = (A × B) × C = A × B × C A × A A × A 93Álgebra de Boole e postulados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. • Propriedade distributiva: a propriedade distributiva é válida na adição e na multiplicação. • A × (B + C) = A × B + A × C Tabela 6 – Tabela-verdade A B C A(B + C) AB + AC 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 6 Teoremas de De Morgan A álgebra de Boole é muito útil nas simplificações algébricas em cir- cuitos lógicos. Na maioria das vezes, a simplificação e a otimização de circuitos lógicos se dão pela conversão ou comutação de funções OR e AND, ou seja, isso significa que uma função OR deve ser convertida em uma função AND, e vice-versa (TOCCI; WIDMER; MOSS, 2011; IDOETA; CAPUANO, 1999). 94 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . 6.1 Primeiro teorema de De Morgan O complemento do produto é igual à sua soma: Para provar esse teorema, montamos a tabela-verdade: Tabela 7 – Tabela-verdade para o primeiro teorema de De Morgan A B A × B A × B 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 Figura 3 – Circuitos lógicos identificados na tabela-verdade O teorema pode ser estendido para mais de duas variáveis: AB = A + B (A × B) = A + B A + B A + B A B A × B A B A + B A × B A B A B A + B (A × B × C ... N) = A + B + ... + N 95Álgebra de Boole e postulados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. 6.2 Segundo teorema de De Morgan De acordo com Haupt e Dachi (2018), o complemento da soma é igual ao produto dos complementos. Esse teorema é uma extensão do primeiro: ß primeiro teorema Reescrevendo: (A × B) = A + B A × B = A + B Observando a fórmula, verificamos que A é o complemento de e A que B é o complemento de . VB amos chamar de A X e de B Y. Assim sendo, temos: X × Y = (X + Y) Reescrevendo em termos de A e B, temos o complemento do produ- to igual à soma dos complementos: ß segundo teorema O teorema pode ser estendido para mais de duas variáveis: A × B = (A + B) A + B + C + ... + N = A × B × C ... N Construindo a tabela-verdade, temos as equivalências: Tabela 8 – Tabela-verdade para o segundo teorema de De Morgan A B A + B 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 A × B A + B A × B 96 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . Figura 4 – Circuitos lógicos identificados na tabela-verdade A B A × BA + B A B A + B A B A B A B 6.3 Regra geral para a aplicação dos teoremas de De Morgan Pela expressão A + B + C + D: 1. Converte-se a função OR em AND. 2. Complementa-se individualmente cada variável ou termo: A × B × C × D = S 3. Complementa-se toda a expressão: A × B × C × D = S Figura 5 – Circuito digital A S S C B B A C 97Álgebra de Boole e postulados M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente.Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Consideramos cada variável como um termo. No exemplo anterior, a expressão possui quatro variáveis ou quatro termos. Já a expressão A + BC + D = S, por exemplo, possui quatro variáveis, mas três termos: A = primeiro termo BC = segundo termo D = terceiro termo Aplicando o teorema de De Morgan nos três termos, temos: A + B + C + D = S Figura 6 – Circuito digital ABCD A A + BC + D A × BC × D S S BCD Partindo da expressão A + BC + D = S, podemos aplicar o teorema de De Morgan no segundo termo. Teremos, então: A + B + C + D = S Podemos concluir que as portas lógicas integradas são fabricadas de modo que, em um único bloco de material semicondutor, conheci- do como “chip”, um ou mais circuitos completos para realizar determi- nadas funções são implementados, agrupando de forma compacta e indissociável diversos dispositivos e portas lógicas básicas, além de circuitos de larga utilização, tais como: contadores, codificadores, 98 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D ist ân ci a da R ed e Se na c EA D, d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, so b as p en as d a Le i. © E di to ra S en ac S ão P au lo . decodificadores e variado número de funções lógicas de interesse apli- cado (TOCCI; WIDMER; MOSS, 2011). Considerações finais Neste capítulo, apresentamos os teoremas da álgebra de Boole e os teoremas de De Morgan. Foi possível perceber, por meio de uma leitura atenta, que os teoremas de De Morgan foram construídos com o obje- tivo de realizar simplificações em expressões complexas em álgebra booleana. Compreendemos detalhadamente quais as regras utilizadas para converter operações lógicas OR em AND, e vice-versa. Por meio das simplificações e conversões, podem ser criados circuitos digitais mais compactos. Esses circuitos são os responsáveis pela implemen- tação lógica dos computadores atuais, como a unidade lógica e aritmé- tica que fica dentro do processador de um computador, bem como os circuitos digitais presentes em eletrodomésticos e automóveis. Referências HAUPT, Alexandre Gaspary; DACHI, Édison Pereira. Eletrônica digital. São Paulo: Blucher, 2018. IDOETA, Ivan Valeije; CAPUANO, Francisco Gabriel. Elementos de eletrônica digital. São Paulo: Érica, 1999. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. 99 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 7 Arquitetura de computador – hardware Neste capítulo, abordaremos como a parte física do computador, conhecida como hardware, funciona e as características de seus com- ponentes principais. Estudaremos sobre o funcionamento da unidade central de processamento (CPU), da memória, dos dispositivos de en- trada e saída (input/output) e dos barramentos. 100 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Embora os computadores estejam presentes no dia a dia e façam parte da vida da maioria das pessoas, provavelmente poucos sabem como um computador realiza suas operações internas. Em poucas palavras, Tanenbaum (2011) define que um computador moderno é um sistema de hardware que realiza operações lógicas e aritméticas, manipulação de dados (normalmente na forma binária) e tomada de decisões. De forma geral, os humanos podem executar as mesmas ações que os computadores; no entanto, os computadores atuam com velocidade e precisão muito maiores. Isso acontece apesar de os computadores realizarem os cálculos de forma a fazer uma operação de cada vez. Uma das diferenças de execução entre um computador e uma pessoa é que, quando se precisa somar uma lista de dez números, a pessoa poderá organizá-los em sequência e em colunas, somando-os coluna por coluna. No caso de um computador, a soma será feita com dois nú- meros de cada vez; dessa forma, somando a mesma lista de números, gastará nove passos. No entanto, um computador precisará de poucos nanossegundos por passo para realizar operações. Um computador é mais rápido e mais preciso que uma pessoa; porém, a grande diferença é que precisa receber instruções completas que determinem exatamen- te o que fazer em cada passo de suas operações. 1 CPU Segundo Tocci, Widmer e Moss (2011), existem computadores de vários tipos e com configurações diferentes, porém, cada um possui as mesmas unidades funcionais. Cada unidade é responsável por desem- penhar um papel particular, e todas trabalham em conjunto para realizar os algoritmos contidos no programa. A função de um computador é resolver problemas por meio de tare- fas, que podem ser executadas utilizando uma sequência ordenada de 101Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. instruções de máquina. Uma instrução define como será a atividade do processador para executar uma tarefa, por exemplo, somar dois núme- ros inteiros. O processador, como o próprio nome sugere, é o componente res- ponsável pelo processamento de instruções e de dados para que o computador execute as tarefas. Assim, não é raro encontrar em algu- mas literaturas a associação do processador com o cérebro humano. O processador pode ser dividido em três partes (TANENBAUM, 2011): • Unidade lógica e aritmética (ULA): a unidade lógica e aritmética realiza operações lógicas e aritméticas, tais como: operações de adição, subtração e operações booleanas (AND, OR, XOR, NOT, entre outras). UAL ou ALU (unidade aritmética e lógica) são siglas que fazem referência à unidade lógica e aritmética. • Unidade de controle (UC): a unidade de controle trata da execu- ção de qualquer instrução dentro de um processador. É a unidade de controle que determina o que tem que ser feito em cada instan- te, para execução de uma instrução. Podemos citar uma maneira de operação da unidade de controle, como a que faz a operação de inclusão de dados em um registrador, ou seja, a ULA retira esse dado do barramento e carrega-o em seus processos. • Registradores: podemos relacionar os registradores como pe- quenas memórias disponibilizadas internamente nos processa- dores. A principal função é armazenar os dados que estão sendo processados em um determinado momento e guardar informa- ções importantes para a execução de uma instrução. Citaremos dois tipos de registradores: ◦ Registradores de propósitos gerais para armazenar dados. ◦ Registradores específicos que podem armazenar as informa- ções necessárias para a execução de uma instrução e que, normalmente, são gerenciados pela UC. 102 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P aulo . Figura 1 – Organização interna de um processador ULA UC Registradores Processador A unidade central de processamento (central processing unit – CPU) fica localizada na placa-mãe do computador, conforme ilustra a figura 2, e ela pode ser retirada e trocada por outra se demonstrar problemas. Segundo Stallings (2009), a CPU é responsável por controlar as opera- ções do computador e realizar as funções de processamento de dados como cálculos e operações lógicas. Ela também é conhecida pelo nome de processador. Figura 2 – Processador 103Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para entendermos melhor o funcionamento da CPU, a figura 3 ilus- tra as cinco partes principais de um computador digital e as interações entre elas (fluxo de dados e informações e dos sinais de controle e de temporização) (TOCCI; WIDMER; MOSS, 2011). Figura 3 – Partes principais de um computador digital ULA UC Saída CPU Entrada Memória Sinais de controle: Dados/informação: Fonte: adaptado de Tocci, Widmer e Moss (2011, p. 18). Como apresentado na figura 3, a unidade lógica e aritmética e a uni- dade de controle são quase sempre consideradas uma unidade central de processamento. Segundo Tanenbaum (2011), a CPU é composta de um circuito de busca e decodificação (interpretação) de instruções, para o controle e a realização de várias operações determinadas pelas instruções. De acordo com Tanenbaum (2011), estas são as principais funções de cada unidade: • Unidade de entrada: por meio dessa unidade, um conjunto de instruções e dados é introduzido na unidade de memória do sis- tema computacional do computador para ser armazenado até o momento da utilização. 104 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . • Unidade de memória: a unidade de memória opera de forma a armazenar as instruções e os dados recebidos da unidade de en- trada. Ela armazena o resultado de operações aritméticas, recebi- das da unidade aritmética, e também fornece informações para a unidade de saída. • Unidade de controle: a unidade de controle tem o papel de buscar instruções contidas na memória e interpretá-las. Depois disso, envia sinais para outras unidades, conforme as instruções espe- cíficas a serem executadas. • Unidade lógica e aritmética: todos os cálculos aritméticos e opera- ções lógicas são realizados nesta unidade. Seus resultados podem ser emitidos para serem armazenados na unidade de memória. • Unidade de saída: a principal tarefa da unidade de saída é receber os dados de memória e imprimi-los, ou apresentá-los, de modo que seja possível operá-los ou processá-los, como no caso de um computador de controle de processos. 2 Memória Quando a saída de um circuito volta ao estado normal, depois de ter recebido um sinal de entrada e este ser removido, pode-se concluir que esse circuito não apresenta a propriedade de memória. Os estudos com circuitos digitais mostram que certos tipos de dispositivos e circuitos possuem memória. Ao trabalhar com esses dispositivos, quando uma entrada é aplicada em um circuito desse tipo, a saída altera seu estado, porém, ela se mantém no novo estado ainda que o sinal de entrada seja removido em seguida. Essa característica de retenção da resposta a uma entrada momentânea é denominada “memória” (TOCCI; WIDMER; MOSS, 2011). A figura 4 ilustra as operações com e sem memória. 105Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 4 – Funcionamento da memória Sem memória Com memória Fonte: adaptado de Tocci, Widmer e Moss (2011, p. 17). De acordo com Tocci, Widmer e Moss (2011), os sistemas digitais são constituídos de dispositivos e circuitos de memória e fornecem um meio de armazenamento, de forma temporária ou permanente, de nú- meros binários, com a capacidade de alterar, a qualquer momento, a in- formação contida. Os elementos de memória podem incluir tipos mag- néticos, ópticos e aqueles que utilizam circuitos de retenção (latches e flip-flops) (TOCCI; WIDMER; MOSS, 2011). Embora o conceito de memória seja aparentemente simples, ela apresenta características mais complexas em relação ao tipo, à tecno- logia, à organização, ao desempenho e ao custo do que qualquer outro recurso de um sistema de computação. Um sistema de computação normalmente apresenta uma hierarquia de subsistemas composta de memórias internas e externas. As memórias internas são acessíveis di- retamente pelo processador, já as memórias externas são acessadas pelo processador por meio de um módulo de entrada/saída (E/S). Segundo Tanenbaum (2011), no nível mais alto da hierarquia das memórias (nível mais próximo do processador), estão os registradores, em seguida, os níveis de memória cache e, na sequência, a memória principal, que é dinâmica, de acesso aleatório. Depois, temos as memó- rias externas, como um disco rígido fixo, e, em um nível abaixo, a mídia removível, como discos ópticos. 106 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Uma particularidade dos processadores é que eles requerem uma memória local própria, na forma de registradores. Além disso, a parte da unidade de controle do processador também pode exigir sua própria memória interna. A memória cache é outra forma de memória interna. A memória externa consiste em dispositivos de armazenamento pe- riféricos, como disco e fita, que são acessíveis ao processador por meio de controladores de E/S. Uma característica da memória é a sua capacidade de armazena- mento. Stallings (2009) define que a memória interna é expressa em termos de bytes (1 byte = 8 bits) ou palavras em agrupamentos de bits. Os tamanhos comuns de palavra são 8, 16 e 32 bits. Um outro mecanismo fundamental está diretamente associado à transferência de dados na memória, também chamada de unidade de transferência. A unidade de transferência é igual ao número de linhas elétricas para dentro e para fora do módulo de memória. Isso é similar ao tamanho da palavra, que geralmente é maior, por exemplo, 64, 128 ou 256 bytes. Stallings (2009) define três conceitos associados à memória interna: • Palavra: o tamanho da palavra é geralmente igual ao número de bits usado para representar um número inteiro e o tamanho da instrução. No entanto, existem muitas exceções. Por exemplo, a arquitetura Intel x86 possui uma ampla variedade de tamanhos de instruções, expressos em múltiplos de bytes e em uma palavra de 32 bits. • Unidades endereçáveis: em alguns sistemas, a unidade endere- çável é a palavra. No entanto, o endereçamento, em muitos siste- mas, é no nível de bytes. De qualquer forma, a igualdade 2A = N significa que A é o tamanho de bit de um endereço e N é o número de unidades endereçáveis. 107Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educaçãopartir do prisma das evoluções técnicas que ocorreram, uma vez que se busca transmitir os conceitos mais básicos da ciência da computação, revisitando as grandes inven- ções, desde as primeiras máquinas de cálculo até os computadores com capacidade quântica de operação. Abordaremos alguns conceitos básicos sobre computação, desde a invenção das primeiras máquinas de contagem do século XIX, pas- sando pelos computadores do século XX, até os poderosos avanços ocorridos no século XXI. Pretendemos, de forma simples e concisa, estabelecer uma relação cronológica entre as evoluções técnicas in- corporadas no binômio hardware/software e seu impacto no rearranjo da sociedade. 1 Impactos sociais Entre os séculos XX e XXI, houve uma grande mudança no papel da tecnologia da informação nas organizações. A área de TI, de um pa- pel comum e restrito a empresas, se tornou uma ferramenta de gestão essencial. Não obstante, a informação é resultante do processamen- to, manipulação e organização de dados, de modo que represente uma modificação no conhecimento do sistema que a recebe (DAVIS; OLSON, 1987). A figura 1 ilustra esse processo. 9História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 1 – Transformação de dados em informações em um sistema de informações Armazenamento de dados Dados Informação Conhecimento Processamento Interpretação Fonte: adaptado de Davis e Olson (1987, p. 718). Em um contexto globalizado e de avanços tecnológicos, Campos Filho (1994) define que os serviços de TI são amplamente utilizados das mais diversas formas, tais como no processo de automação in- dustrial e no comércio (no controle, gerenciamento e publicidade). Em consequência de sua posição dentro do mecanismo das organizações, a TI se tornou um elemento indispensável à otimização dos processos e integra-se aos serviços e produtos, tornando-se, por vezes, o próprio negócio, por exemplo, os sites de e-commerce. É possível perceber o impacto social da tecnologia da informação por meio dos dados esta- tísticos da distribuição de emprego nos Estados Unidos ao longo dos períodos de 1880 a 1980, conforme ilustrado no gráfico 1. Gráfico 1 – Escalada de empregos relacionados a tecnologia de informação nos Estados Unidos (1880-1980) 15% 20% 25% 30% 35% 40% 45% 50% 10% 5% 0% 1880 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980 Indústria Informação Serviços Agricultura Fonte: adaptado de Campos Filho (1994, p. 39). 10 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . No gráfico 1, compreende-se uma mudança na distribuição de em- prego no mercado de trabalho nos Estados Unidos. No período de 1880 a 1980, os empregos relativos a informação cresceram de cerca de 7,5% a 45%. Com a invenção dos transistores, houve o aumento na capaci- dade de processamento dos computadores, e, consequentemente, seu hardware sofreu mudanças, deixando de ocupar salas inteiras e tornando-se objetos de uso doméstico, os computadores pessoais (personal computers – PCs), ficando cada vez mais baratos e acessí- veis. O gráfico 2 mostra o crescimento do uso dos PCs de 1981 a 1989 no mercado norte-americano. Gráfico 2 – PCs em uso nos Estados Unidos (milhões de unidades) na década de 1980 10 20 30 40 50 60 1981 1982 1983 1984 1985 1986 1987 1988 1989 Fonte: adaptado de Campos Filho (1994, p. 38). 2 Até o século XIX Muitos anos foram necessários até que Wilhelm Schickard (1592- 1635) desenvolveu uma máquina de cálculo, que era capaz de somar, subtrair, multiplicar e dividir. No entanto, sua descoberta se perdera du- rante a guerra dos trinta anos (FONSECA FILHO, 2007). Tempos depois, segundo Fonseca Filho (2007), foi atribuída a Blaise Pascal (1623-1662) 11História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. a construção da primeira máquina calculadora, que somente somava e subtraía. A criação de Pascal foi aprimorada por Gottfried Wilhelm Leibniz (1646-1726), matemático alemão, que, em 1671, propôs uma nova maneira de efetuar multiplicações e divisões, por meio de adições e subtrações sucessivas (FONSECA FILHO, 2007). No entanto, em 1694, a máquina construída se mostrou pouco con- fiável e sujeita a muitos erros em suas operações. Todas essas máqui- nas, porém, nem de longe poderiam ser consideradas um computador moderno. Surge então uma pergunta relevante: o que define um compu- tador moderno? De acordo com Tanenbaum e Bos (2016), um computador moderno consiste em um ou mais processadores, alguma memória principal, discos, impressoras, um teclado, um mouse, um monitor, interfaces de rede e vários outros dispositivos de entrada e saída. (TANENBAUM; BOS, 2016, p. 7) Essa definição coincide com uma ideia preconizada no século pas- sado. Essa ideia de arquitetura de hardware foi bem definida na obra do ilustre matemático John von Neumann (1903-1957), como veremos adiante. 3 Século XIX No início do século XIX, o matemático alemão Leibniz lançou as ba- ses da lógica em um sentido formal e matemático, utilizando o sistema binário. Por volta de 1854, o matemático inglês George Boole (1815- 1864) publicou a obra As leis do pensamento, na qual apresentava os princípios da lógica booleana, em que as variáveis assumem apenas valores 0 e 1 (falso e verdadeiro). Era o começo de uma revolução, se- gundo escreve Theodore Hailperin (1986). Com essa nova lógica, era possível construir circuitos lógicos utilizando essas expressões defini- das por Boole, bem como a modelagem digital de problemas do mundo 12 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . físico. Sendo assim, a álgebra de Boole e seus postulados representa- ram o marco fundamental da eletrônica digital de circuitos. 4 Século XX Em meados da década de 1930, Claude Shannon (1916-2001) apre- sentou, em seu trabalho A symbolic analysis of relay and switching cir- cuits, uma metodologia de construção de placas de circuitos lógicos (SHANNON, 1938). A partir desse momento, uma nova forma de cons- trução de hardware estava para ser criada, com o objetivo de resolver problemas de simplificação de projetos de circuitos lógicos equivalen- tes, definindo, para essas construções lógicas, a utilização de relays. Na mesma época, John von Neumann concluiu o projeto lógico de um computador. Para isso, ele propôs “que as instruções fossem ar- mazenadas na memória do computador. Até então, elas eram lidas de cartões perfurados e executadas, uma a uma” (DUARTE; ZORZO, [s. d.], p. 3). Esse projeto ficou conhecido como “arquitetura de Von Neumann”, em homenagem ao matemático. Alan Turing (1912-1954) e Alonzo Church (1903-1995) propuseram, em suas teses, uma revolução no conceito de utilização de mecanismos e dispositivos para realização de cálculos complexos via algoritmo. Para que esse cálculo pudessea Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. • Unidade de transferência: para a memória principal, a unidade de transferência refere-se ao número de bits lidos ou gravados na me- mória ao mesmo tempo. A unidade de transferência não precisa ser a mesma que uma palavra ou uma unidade endereçável. Para memória externa, os conhecidos “blocos” são dados transferidos em grandes quantidades, maiores que o tamanho de uma palavra. As memórias podem ser classificadas em: • Memórias voláteis: sua característica principal é não manter os dados em seu interior após a falta de energia. Funcionam da mes- ma forma a memória cache, a memória registradora e a memória de acesso aleatório (RAM). • Memórias não voláteis: diferentemente das memórias voláteis, estas não perdem suas informações internas na ausência de energia. Podemos citar algumas memórias não voláteis, como memórias flash e disco rígido (HD). • Memória principal: sua função principal é armazenar as informa- ções necessárias para fornecer ao processador em um momento determinado. A memória principal, também conhecida por “me- mória RAM”, é capaz de fornecer um caminho para as memórias secundárias. • Memórias secundárias: também conhecidas como “memórias de armazenamento em massa”, são utilizadas para o armazena- mento de grande volume de dados de forma permanente. São do tipo não voláteis, mas, para que suas informações possam ser uti- lizadas, é necessário que sejam carregadas na memória principal, para que, então, sejam tratadas pelo processador. Podemos citar como memórias secundárias os discos rígidos, os discos ópticos (CDs, DVDs e Blu-Rays), os disquetes e as fitas magnéticas. 108 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 3 Módulo de entrada/saída (E/S) ou input/ output (I/O) Uma arquitetura de entrada/saída (E/S) ou input/output (I/O) do sis- tema de computação consiste em uma interface com o mundo exterior. Essa arquitetura oferece um meio sistemático de controlar a interação com o mundo exterior e fornece ao sistema operacional as informa- ções de que precisa para gerenciar a atividade de E/S de modo eficaz (STALLINGS, 2009). Podemos descrever suscintamente que o módulo de E/S é uma en- tidade de controle dentro do computador responsável por gerenciar um ou mais dispositivos externos, de forma a realizar a transferência de dados entre esses dispositivos e a memória principal, bem como os registros da CPU. Sendo assim, o módulo de E/S é uma interface interna ao computador (da CPU e da memória principal) e uma interface exter- na para o computador se conectar aos dispositivos externos. A figura 5 ilustra as possíveis conexões de um módulo de E/S. Figura 5 – Módulo de entrada e saída (E/S) Leitura Escrita Endereço Dados internos Dados externos Dados internos Dados externos Sinais de interrupção Módulo de E/S Fonte: adaptado de Stallings (2002, p. 74). 109Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. De acordo com Stallings (2009), existem três tipos principais de E/S: • E/S programada: funciona de forma que o programa tem o con- trole direto e contínuo das operações de E/S. • E/S controlada por interrupção: neste tipo, um programa emi- te um comando de E/S e, depois, continua a executar até que seja interrompido pelo hardware de E/S para sinalizar o final da operação de E/S. • Acesso direto à memória (direct memory access – DMA): no acesso DMA, o processador de E/S especializado controla a mo- vimentação de um grande volume de dados. Dois exemplos importantes de interfaces de E/S são o FireWire e o InfiniBand. A qualquer momento, a CPU pode se comunicar com um ou mais dispositivos externos sem aviso prévio, dependendo das necessi- dades de E/S. Os recursos como a memória principal e o barramento de sistema têm de ser divididos entre um certo número de atividades, incluindo o processamento de informação de E/S. Assim, a função im- portante de E/S é a inclusão de um temporizador para o controle do fluxo de tráfego entre os recursos internos e os dispositivos externos. As principais funções ou requisitos para um módulo de E/S são: • comunicação com a CPU; • temporização e controle; • comunicação com o dispositivo; • temporização dos dados; • detecção de erros. 4 Barramentos Segundo Tanenbaum (2011), o arranjo comum de um computa- dor pessoal é um gabinete de metal que contém uma grande placa de 110 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . circuito impresso na parte inferior, denominada “placa-mãe”. A placa- -mãe contém o chip da CPU, alguns encaixes para os módulos DIMM e vários chips de suporte. Contém também um barramento ao longo do comprimento e soquetes nos quais os conectores de borda das placas de E/S podem ser inseridos. A figura 6 apresenta a estrutura lógica de um computador pessoal simples. Esse computador tem um único barramento para conectar a CPU, a memória e os equipamentos de E/S; a maioria dos sistemas tem dois ou mais barramentos. Cada dispositivo de E/S consiste em duas partes: uma que contém grande parte da eletrônica, denominada “con- trolador”, e outra que contém o dispositivo de E/S em si, tal como um drive de disco. O controlador está, em geral, contido em uma placa que é ligada a um encaixe livre. Mesmo o monitor não sendo opcional, o controlador de vídeo às vezes está localizado em uma placa de encaixe (plug-in) para permitir que o usuário escolha entre placas com ou sem aceleradores gráficos, memória extra, e assim por diante. O controla- dor se conecta com seu dispositivo por um cabo ligado ao conector na parte de trás do gabinete. Figura 6 – Estrutura lógica de um computador pessoal CPU Memória Controlador de vídeo Controlador de teclado Controlador de CD-ROM Controlador de disco rígido Barramento Fonte: adaptado de Tanenbaum (2011, p. 14). Segundo Tanenbaum (2011), um controlador tem a função de con- trolar um dispositivo de E/S e manipular para que ele possa acessar o 111Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. barramento. Por exemplo, quando um programa precisa acessar dados do disco, ele deve enviar um comando ao controlador de disco, que, então, emite comandos de busca e outros comandos para o drive. Uma vez localizados a trilha e o setor corretos, o drive começa a entregar dados ao controlador como um fluxo serial de bits. O controlador deve dividir o fluxo de bits em unidades e escrever cada uma delas na memó- ria, à medida que seja montada. Um controlador pode acessar diretamente dados da memória sem a ajuda da CPU. Para esse tipo de ação, dá-se o nome de DMA. Concluída a transferência, o controlador normalmente causa uma interrupção, forçando a CPU asuspender de imediato o programa em execução e começar a rodar um procedimento especial, denominado “rotina de in- terrupção”, para verificar erros, executar qualquer ação especial neces- sária e informar ao sistema operacional que a E/S agora está concluída. Quando a rotina de interrupção conclui sua tarefa, a CPU continua com o programa que foi suspenso quando ocorreu a interrupção. O barra- mento não é usado apenas pelos controladores de E/S, mas também pela CPU para buscar instruções e dados. O que acontece se a CPU e um controlador de E/S quiserem usar barramento ao mesmo tempo? A resposta é que um chip, denominado “árbitro de barramento”, é responsável por alocar tempo no barramento, resolvendo, assim, esse impasse. Não obstante, a despeito da pressão do mercado para que nada mu- dasse, o antigo barramento era mesmo muito lento, portanto, era preciso fazer algo. Essa situação levou outras empresas a desenvolver máquinas com múltiplos barramentos, um dos quais era o antigo barramento ISA, ou seu sucessor compatível, o EISA (Extended ISA). Agora, o mais popular deles é o barramento PCI (Peripheral Component Interconnect – Interconexão de Componentes Periféricos). 112 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Esse barramento foi projetado pela Intel, mas a empresa decidiu passar todas as patentes para domínio público, a fim de incentivar toda a indús- tria (incluindo seus concorrentes) a adotá-lo. O barramento PCI pode ser usado em muitas configurações, mas a figura 7 apresenta uma confi- guração típica. Nesse caso, a CPU se comunica com um controlador de memória por meio de uma conexão dedicada, de alta velocidade. Figura 7 – Barramento PCI PCIe PCIe PCIe Ponte para PCI PCIe PCIe CPU Memória Switch Complexo raiz PCIe Barramento PCI Porta 1 Porta 2 Porta 3 Fonte: adaptado de Stallings (2002, p. 77). O controlador se comunica diretamente com a memória e com o bar- ramento PCI, de modo que o tráfego CPU-memória não passa pelo bar- ramento PCI. Outros periféricos podem ser conectados diretamente ao barramento PCI. Os barramentos PCI trabalham com uma taxa de clock máxima de 66 MHz. Com 64 bits transferidos por ciclo, a taxa de dados é de 528 MB/s. Com uma taxa de clock de 8 GHz, até mesmo com trans- ferência serial, a taxa de dados do PCIe é de 1 GB/s. Além do mais, os dispositivos não estão limitados a um único par de fios para se comuni- carem com o complexo raiz ou com um switch. Um dispositivo pode ter até 32 pares de fios, chamados de lanes (pistas). Essas pistas não são síncronas, de modo que a distorção não é importante aqui. A maioria das 113Arquitetura de computador – hardware M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. placas-mãe tem um encaixe de 16 pistas para a placa gráfica, que, no PCIe 3.0, dará à placa gráfica uma largura de banda de 16 GB/s, cerca de trinta vezes mais rápido do que uma placa gráfica PCI pode oferecer. Considerações finais Neste capítulo, estudamos um pouco sobre o funcionamento de hardware nos computadores. Compreendemos que cada parte do projeto de hardware foi modularizada em: CPU, memória, barramento e módulo de E/S. Essa visão modularizada permite ao aluno conhecer a complexidade do desenvolvimento de hardware de um computador. Sendo assim, o sistema consiste em um conjunto de componentes e seus inter-relacionamentos. Referências STALLINGS, William. Arquitetura e organização de computadores. 5. ed. São Paulo: Pearson, 2002. STALLINGS, William. Arquitetura e organização de computadores. 8. ed. São Paulo: Pearson, 2009. TANENBAUM, Andrew S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson, 2011. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2011. 115 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 8 Arquitetura de computador – software Anteriormente, compreendemos a arquitetura computacional foca- da no hardware, entendemos como os dispositivos físicos funcionam e interagem entre si. Dando continuidade ao assunto, neste capítulo, abor- daremos a arquitetura do computador com foco no software, ou seja, a parte inteligente que trabalha sobre a parte física da máquina. O sistema operacional (SO) é o software mais importante e responsá- vel por fornecer aos programas do usuário um modelo de computador melhor, mais simples e mais limpo. Ele também é responsável por lidar com o gerenciamento de todos os recursos de hardware disponíveis, como impressora, mouse, memória RAM, entre outros (TANENBAUM; BOS, 2016). Além desse tema, abordaremos, também, a função dos aplicativos e dos utilitários. 116 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 1 Infraestrutura O sistema de computação é composto por hardware e software. O hardware refere-se a toda a parte física, ou seja, a parte real de um sis- tema de computação. Podemos citar alguns itens que fazem parte do hardware, como: CPU, memória, impressora, cabos de rede, monitor, en- tre outros. Já o software existe para que o hardware execute o que foi determinado pelo usuário. Ele faz a abstração do acesso ao hardware para o usuário. Dessa forma, o sistema operacional faz com que o aces- so ao hardware ocorra de maneira mais fácil, sem que o usuário precise de conhecimentos avançados de eletrônica ou programação para utili- zar um recurso computacional simples, como a gravação de um arquivo em disco ou o acesso a uma página de internet. Alguns exemplos de softwares são: compiladores, editores de texto, planilhas eletrônicas, navegadores web, etc. Resumindo, o que dá vida ao hardware é o software executado sobre ele. Os componentes de um sistema operacional podem ser separados de acordo com a hierarquia apresentada na figura 1. Figura 1 – Componentes de um sistema operacional Programas de aplicação (aplicativos) Utilitários Sistema operacional Hardware 117Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Alguns sistemas operacionais conhecidos são: Windows, Linux, FreeBSD e OS X. O programa com o qual os usuários interagem é co- nhecido como shell (ou interpretador de comandos), quando é baseado em texto, ou GUI (graphical user interface), quando sua interface contém imagens como ícones. A figura 2 apresenta, de forma simplificada, a organização dos princi- pais componentes de um computador, onde o hardware está localizado na base. Ele consiste em chips, placas, discos, um teclado, um monitor e objetos físicos similares. Logo após o hardware, está o software. A maioria dos computadores tem dois modos de operação: modo núcleo e modo usuário.O sistema operacional, a peça mais fundamental de software, opera em modo núcleo ou modo supervisor (TANENBAUM; BOS, 2016). No modo núcleo, o SO tem acesso a todo o hardware e pode executar qualquer instrução recebida conforme a capacidade de execução da máquina. O software opera no modo usuário, no qual ape- nas alguns subconjuntos de instruções estão disponíveis. Operações que façam aceso a dispositivos de entrada e saída (E/S), por exemplo, só podem ser executadas pelo SO, evitando, assim, que execuções erra- das sejam realizadas, causando problemas na parte física. Figura 2 – Organização dos principais componentes de um computador Browser Player de vídeo Editor de texto Programa de interface com o usuário Sistema operacional Hardware Modo usuário Software Hardware Modo núcleo {{ Fonte: adaptado de Tanenbaum e Bos (2016, p. 15). 118 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Segundo Tanenbaum e Bos (2016), o programa de interface com o usuário, shell ou GUI, aparece no nível mais inferior de software de modo usuário e permite que ele inicie outros programas, como um navegador web, um player de vídeo ou um editor de texto. Esses programas também utilizam bastante o sistema operacional. Os sistemas operacionais não são diferentes dos programas de usuários, apenas com relação à sua loca- lidade. Em particular, eles são enormes, complexos e têm vida longa. PARA SABER MAIS Quantos livros seriam necessários para conter o código de um sistema operacional? O código-fonte de um SO como Linux ou Windows tem cerca de 5 milhões de linhas de código. Para ter ideia do tamanho, imagine imprimir 5 milhões de linhas em formato de livro, com 50 linhas por página e 1.000 páginas por vo- lume. Para imprimir toda a informação, seriam necessários 100 volumes, que correspondem a uma estante de livros inteira. Os principais objetivos do sistema operacional são: • ocultar os detalhes de hardware do usuário; • fornecer uma interface gráfica, orientada a arquivos, escondendo detalhes relacionados a interrupções, organização do disco rígido e demais características associadas ao hardware; • gerenciar os recursos de memória, processamento e armazena- mento de um computador. Na visão bottom-up (abstração de baixo para cima), a função do sis- tema operacional é fornecer uma alocação ordenada e controlada do processador, da memória e dos dispositivos de E/S entre os vários pro- gramas competindo por eles. Já na visão top-down (abstração de cima para baixo), o SO fornece abstrações para programas aplicativos. 119Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para conseguir realizar o gerenciamento de recursos de hardware, o sistema operacional faz uso da multiplexação (compartilhamento) de recursos de duas maneiras diferentes: no tempo e no espaço. Quando a multiplexação é feita no tempo, diferentes programas ou usuários se revezam usando um recurso. Primeiro, um deles usa o re- curso, então outro, e assim por diante. Por exemplo, imagine um compu- tador com apenas uma CPU e múltiplos programas sendo executados nela. O sistema operacional primeiro aloca a CPU para um programa, então, após acabar o tempo de execução, outro programa passa a fazer uso da CPU, então outro, e, finalmente, o primeiro de novo. Dessa forma, é papel do sistema operacional determinar como o re- curso é multiplexado no tempo, ou seja, qual será a ordem de execução e por quanto tempo cada programa terá o recurso. Outro exemplo da multiplexação no tempo é o compartilhamento da impressora. Quando vários arquivos são enviados ao mesmo tempo para a mesma saída de impressão, eles aguardam na fila para serem impressos, e uma decisão tem de ser tomada sobre qual deve ser impresso em seguida. Na multiplexação de espaço, em vez de acontecer o revezamento para utilização dos recursos, cada um tem direito a uma parte do re- curso. Calculando que há memória suficiente para manter múltiplos programas, é mais eficiente manter vários programas na memória ao mesmo tempo, cada um utilizando uma parte da memória, do que dar a um deles toda ela, principalmente se o programa usará apenas uma pequena parte do total, ficando espaço ocioso. É claro que isso gera questões de ordem, proteção, e assim por diante, e cabe ao sistema ope- racional solucioná-las. Outro recurso que é multiplexado no espaço é o disco. Em muitos sistemas, diversos usuários podem fazer uso de um disco ao mesmo tempo. O sistema operacional deve alocar espaço em disco e controlar quem está usando cada bloco. 120 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 1.1 Tipos de sistemas operacionais Os sistemas operacionais existem há mais de meio século. Ao longo dos anos, uma grande variedade deles foi desenvolvida. Nem todos são conhecidos. Vamos conhecer alguns deles. 1.1.1 Sistemas operacionais de computadores de grande porte Os computadores de grande porte diferem dos PCs (computado- res pessoais) em termos de capacidade de E/S. Um computador de grande porte com 1.000 discos e milhões de gigabytes de dados não é incomum; um computador pessoal com essas especificações é mui- to raro de se encontrar. Computadores de grande porte são usados como servidores sofisticados de web, para sites de comércio eletrônico (e-commerce) em larga escala e para transações entre empresas B2B (business-to-business) (TANENBAUM; BOS, 2016). Segundo Tanenbaum e Bos (2016), os sistemas operacionais para computadores de grande porte são dirigidos para o processamento de muitas tarefas ao mesmo tempo, a maioria delas exigindo quanti- dades extraordinárias de E/S. Normalmente, eles oferecem três tipos de serviços: em lote (batch), processamento de transações e tempo compartilhado (timesharing). Um sistema em lote processa tarefas sem a necessidade de um usuá rio interativo presente. Exemplos de processo em lote podem ser observados, como o processamento de apólices em uma companhia de seguros ou relatórios de vendas para uma cadeia de lojas. De acordo com Tanenbaum e Bos (2016), os sistemas de processa- mento de transações lidam com grandes números de pedidos peque- nos, por exemplo, processamento de cheques em um banco ou reser- vas de companhias aéreas. Cada unidade de trabalho é pequena, mas o sistema tem de lidar com centenas ou milhares delas por segundo. 121Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Já os sistemas de tempo compartilhado permitem que múltiplos usuários remotos executem tarefas em um computador ao mesmo tempo, por exemplo, a realização de consultas a um banco de dados. 1.1.2 Sistemas operacionais de servidores Os servidores são computadores pessoais muito grandes, e o siste- ma operacional pode ser executado neles, ou em estações de trabalho, ou mesmo em computadores de grande porte. Eles atendema múltiplos usuários ao mesmo tempo por meio de uma rede, permitindo que os usuários compartilhem recursos de hardware e software. Tipicamente, os servidores fornecem serviços de impressão, de arquivo ou de web. Eles são usados, também, para prover internet com suporte aos clientes e armazenam páginas de sites, atendendo às requisições que chegam. Segundo Tanenbaum e Bos (2016), são sistemas operacionais típi- cos de servidores: Solaris, FreeBSD, Linux e Windows Server 201x. 1.1.3 Sistemas operacionais de multiprocessadores Com a conexão de múltiplas CPUs a um único sistema, é possível obter mais potência computacional. Dependendo de como precisamen- te eles são conectados e o que é compartilhado, esses sistemas são chamados de “computadores paralelos”, “multicomputadores” ou “mul- tiprocessadores”. Os sistemas operacionais que rodam em computa- dores com múltiplos processadores normalmente possuem aspectos especiais para comunicação, conectividade e consistência de dados. Muitos sistemas operacionais populares, incluindo Windows e Linux, são executados em multiprocessadores. 1.1.4 Sistemas operacionais de computadores portáteis Os computadores portáteis, como tablets e smartphones, são co- nhecidos como PDA (personal digital assistant – assistente pessoal 122 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . digital), um computador pequeno que pode ser segurado na mão duran- te seu uso. O sistema operacional que roda nesses dispositivos pode ser o Android, da Google, ou o iOS, da Apple. A maioria deles conta com CPUs multinúcleo, GPS, câmeras e outros sensores e quantidades gran- des de memória. São várias as opções de aplicativos (“apps”) disponí- veis para instalação nesses dispositivos. 1.1.5 Sistemas operacionais embarcados Sistemas operacionais embarcados não aceitam softwares insta- lados pelo usuário, e são executados em computadores que contro- lam dispositivos que não costumam ser vistos como computadores. Exemplos típicos são os fornos de micro-ondas, os aparelhos de tele- visão, os carros, os telefones tradicionais e os MP3 players. A princi- pal diferença dos sistemas embarcados em comparação aos sistemas operacionais de computadores portáteis é a impossibilidade de insta- lação de aplicativos. Todos os softwares necessários são instalados de fábrica e estão na memória ROM (read-only memory – memória somente de leitura). Sistemas como Embedded Linux, QNX e VxWorks são populares nesse domínio. 1.1.6 Sistemas operacionais de tempo real (real-time operating systems – RTOS) A questão “tempo” é fundamental para sistemas operacionais de tempo real. Como exemplo, podemos citar um sistema de controle de processo industrial, em que computadores em tempo real devem cole- tar dados a respeito do processo de produção e usá-los para controlar máquinas na fábrica. Para isso, a coleta dos dados deve ser feita em um tempo exato, para que não atrase o processo de produção. Outro exemplo seria de um carro seguindo pela linha de montagem. Determinadas ações têm de ocorrer em determinados instantes. Se, por 123Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. acaso, um robô soldador fizer as soldas antes do horário esperado ou alguns segundos depois, o carro será arruinado. Segundo Tanenbaum e Bos (2016), para os casos nos quais a ação tem de ocorrer absolutamente em um determinado momento (ou dentro de uma dada faixa de tempo), temos um sistema de tempo real crítico. Diferentemente do cenário apresentado, um sistema de tempo real não crítico é aquele em que a não realização de uma operação em um horário esperado, mesmo que ocasionalmente, é aceitável e não cau- sa danos permanentes. Sistemas de multimídia ou áudio digital en- tram nessa categoria. Smartphones também são sistemas de tempo real não críticos. Conforme Tanenbaum e Bos (2016), uma particularidade dos siste- mas de tempo real e dos embarcados é que os softwares executados nesses dispositivos são inseridos apenas pelos projetistas do sistema, ou seja, o usuário não tem acesso para instalar nenhum outro software, fazendo com que esses sistemas sejam mais protegidos. Um exemplo de tipo de sistema de tempo real é o sistema operacio- nal embarcado configurável (eCos), gratuito e open-source, destinado a aplicações embarcadas com requisitos de tempo real e pouca memó- ria. O eCos pode ser customizado baseado nos requisitos da aplicação. 1.2 Processos O processo é um conceito fundamental em SO e é basicamente um programa em execução. Pode ser entendido também como um con- têiner que armazena todas as informações necessárias para executar um programa. De acordo com Tanenbaum e Bos (2016), cada processo está liga- do a um espaço de endereçamento, uma lista de posições de memória que vai de 0 a algum número máximo. O processo pode ler e escrever 124 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . nesse local. Nesse espaço endereçável, estão o programa executável, os dados do programa e sua pilha. Associado com cada processo, há um conjunto de recursos, em geral, abrangendo registradores (incluindo o contador de programa e o ponteiro de pilha), uma lista de arquivos abertos, alarmes pendentes, listas de processos relacionados e to- das as demais informações necessárias para executar um programa (TANENBAUM; BOS, 2016). Os processos são iniciados e, depois de executarem todo o seu tra- balho, finalizados. Podemos listar quatro eventos responsáveis pela criação de processos, conforme apresentado na figura 3. Figura 3 – Etapas da criação de processos Inicialização do sistema Execução de uma chamada de sistema de criação de processo por um processo em execução Solicitação de um usuário para criar um novo processo Início de uma tarefa em lote Os processos, em algum momento, são finalizados, normalmente, de- vido a determinadas condições, como saída normal de forma voluntária, erro fatal no processo de forma involuntária, saída por erro de forma vo- luntária ou morto por outro processo de forma involuntária. Tanenbaum e Bos (2016) conceituam os estados de um processo da seguinte forma: • Em execução: realmente usando a CPU naquele instante. • Pronto: o processo está em uma lista, pronto para ser executa- do; em geral, apenas esperando que outro processo acabe sua execução. • Bloqueado: incapaz de ser executado até que algum evento externo aconteça. 125Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Na figura 4, encontramos um diagrama referente aos estados de um processo, mostrando os três estados nos quais um processo pode se encontrar. Na linha 1, o processo é bloqueado, aguardando uma entra- da. Na linha 2, o escalonador de processos seleciona outro processo para ser executado. Na linha 3, o escalonador atribui esse processo ao estado em execução. Na linha 4, o processotorna-se disponível para ser executado. Figura 4 – Estados de um processo Em execução ProntoBloqueado 2 3 4 1 Fonte: adaptado de Tanenbaum e Bos (2016, p. 64). Segundo Tanenbaum e Bos (2016), na maioria dos sistemas opera- cionais, todas as informações que dizem respeito a um processo, fora o conteúdo do seu próprio espaço de endereçamento, ficam armaze- nadas em uma tabela do sistema operacional, chamada de “tabela de processos”. A tabela de processos nada mais é do que um arranjo de estruturas, uma para cada processo existente no momento. Desse modo, um pro- cesso que está suspenso consiste em seu espaço de endereçamento, em geral, chamado de “imagem do núcleo”, e em sua entrada na tabela de processo, que armazena os conteúdos de seus registradores e mui- tos outros itens necessários para reiniciar o processo mais tarde, quan- do este ganhar tempo de processamento novamente. 126 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . As principais chamadas de um sistema de gerenciamento de pro- cessos são as que lidam com a criação e o término de processos. Para exemplificar, imagine que um usuário acabou de digitar um comando, usando um interpretador de comandos, requisitando que um programa seja compilado. O shell deve criar um novo processo, que vai executar o compilador. Quando o processo terminar a compilação, ele executa uma chamada de sistema para se autofinalizar. Um processo pode criar um ou mais processos (chamados de pro- cessos filhos), e estes também podem criar processos filhos. Assim, chegamos à estrutura da árvore de processos da figura 5. Figura 5 – Árvore de processos A B D E F C Fonte: adaptado de Tanenbaum e Bos (2016, p. 28). A árvore de processos mostra qual processo deu origem a um outro processo filho e quantos processos filhos estão associados a um processo. Outro recurso muito presente nos sistemas operacionais modernos é o “escalonador de processos”. Esse componente tem a função de es- colher qual dos processos concorrentes será o próximo a ganhar tem- po de processamento da CPU. O escalonador faz uso de algoritmos de escalonamento para definir critérios para a seleção. 127Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para concluir, os processos estão relacionados às mais antigas e im- portantes abstrações que os sistemas operacionais proporcionam. Eles dão suporte à possibilidade de haver operações (pseudo) concorrentes mesmo quando um computador possui apenas uma CPU disponível, tornando uma única CPU em múltiplas CPUs virtuais. A computação moderna não existiria sem a abstração de processo. 1.3 Threads Em sistemas operacionais tradicionais, cada processo tem um es- paço de endereçamento e uma única thread de controle. Conforme aumenta a utilização de subprocessos (também conhecidos como processos filhos), há um desperdício do tempo gasto para a criação e a eliminação deles. Para tentar minimizar esse problema, introduziu- -se o conceito de threads ou linhas de controle (STALLINGS, 2002). Um forte argumento para a existência das threads é que, como elas são mais leves do que os processos, são mais fáceis (isto é, mais rápidas) para criar e destruir do que os processos. Em muitos sistemas, criar uma thread pode ser até cem vezes mais rápido do que criar um processo. Segundo Tanenbaum e Bos (2016), a diferen- ça mais contundente entre subprocessos e encadeamentos é que, enquanto os subprocessos usam espaços de memória protegidos e independentes, os encadeamentos compartilham o mesmo espaço de endereçamento que o processo. Outra razão para a utilização de threads é o fato de o modelo de programação ficar mais simples por sua execução ser quase em pa- ralelo. Assim, em vez de termos interrupções, temporizadores e cha- veamentos de contextos, podemos pensar a respeito de processos em paralelo. Apenas com as threads acrescentamos um novo ele- mento: a capacidade para as entidades em paralelo compartilharem um espaço de endereçamento e todos os seus dados entre si. De 128 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . acordo com Stallings (2002), essa capacidade é essencial para deter- minadas aplicações, já que ter múltiplos processos com espaços de endereçamento separados não funciona. Vamos exemplificar a utilização de threads para uma melhor compreensão. Imagine o acesso de um navegador web a um site. Sabemos que muitas páginas na internet são formadas de imagens e de outros recursos “pesados”, como streaming de vídeos, por exem- plo. Se, para cada item, o navegador tivesse de estabelecer uma co- nexão separada com o servidor, o procedimento seria muito demorado e trabalhoso. Mas, com a utilização de múltiplas threads, é possível fa- zer a requisição de muitas imagens ao mesmo tempo, melhorando o desempenho e a capacidade de resposta (TANENBAUM; BOS, 2016). Na figura 6, podemos identificar processos tradicionais, em que cada processo tem seu próprio espaço de endereçamento e uma única thread de controle. Figura 6 – Threads Processo 1 Processo 2 Processo 3 Núcleo Thread Espaço do usuário Espaço do núcleo { Fonte: adaptado de Tanenbaum e Bos (2016, p. 71). 129Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Já na figura 7, temos a utilização de multithread para um processo. Nesse caso, todos os três processos compartilham o mesmo espaço de endereçamento. Quando um processo multithread é executado em um sistema de CPU única, as threads se revezam executando. Figura 7 – Multithreads Processo Núcleo Thread Espaço do usuário Espaço do núcleo { Fonte: adaptado de Tanenbaum e Bos (2016, p. 71). 2 Aplicativos e utilitários Segundo Tanenbaum e Bos (2016), os verdadeiros clientes dos sis- temas operacionais são os programas de aplicações (aplicativos), por meio de seus programadores. Eles interagem diretamente com as abs- trações fornecidas pela interface do usuário, que podem ser, por exem- plo, linhas de comandos no shell ou uma interface gráfica. Ainda que as abstrações na interface com o usuário sejam similares às abstrações fornecidas pelo sistema operacional, nem sempre esse é o caso. Para esclarecer melhor esse ponto, avalie a área de trabalho normal do sistema operacional Windows e o prompt de comando orien- tado a linhas. Os dois exemplos são programas executados no sistema Windows e usam as abstrações que o Windows oferece, mas eles dis- ponibilizam interfaces de usuário muito diferentes. 130 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to raS en ac S ão P au lo . Resumidamente, os aplicativos são programas que têm aplicação prática voltada para o usuário do sistema. São programas que auxiliam o usuário, por exemplo, planilhas, editores de texto e navegadores. Os utilitários, por sua vez, podem ser qualquer programa não obri- gatório para o funcionamento do computador, porém, considerado ex- tremamente útil. De forma sintetizada, podemos descrevê-los como programas que auxiliam o sistema operacional. Como exemplo, pode- mos citar os compactadores de arquivos (WinRAR e WinZip), os anti- vírus (Avast e Norton) e os desfragmentadores de disco. Eles também são fornecidos para ajustar manualmente o relógio do sistema e o de backup e para sincronizá-los. Segundo Tanenbaum e Bos (2016), o SO é o código que executa as chamadas de sistema. Já os editores de texto, compiladores, monta- dores, ligadores (linkers), programas utilitários e interpretadores de co- mandos absolutamente não são considerados como parte do sistema operacional, mesmo que sejam importantes e úteis. Considerações finais Neste capítulo, foi possível entender um pouco mais sobre a arqui- tetura do computador sob a visão do software. Compreendemos um pouco sobre a real função do SO em um computador, os processos que podem gerar subprocessos, ou processos filhos, e os vários tipos de SOs existentes para os diversos dispositivos computacionais disponí- veis atualmente. Analisamos como os processos ganham tempo de CPU e como o SO consegue gerenciar todos os processos que chegam por meio do recurso de escalonamento. Além disso, abordamos sobre as threads e como elas ajudam os processos a serem mais rápidos, e sobre a diferença entre programas aplicativos e programas utilitários, cada um com uma função diferente. 131Arquitetura de computador – software M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Referências STALLINGS, William. Arquitetura e organização de computadores. 5. ed. São Paulo: Pearson, 2002. TANENBAUM, Andrew S.; BOS, Herbert. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson, 2016. 133 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Sobre o autor Maxwel Vitorino da Silva é mestre em Tecnologia pela Faculdade de Tecnologia da Unicamp (FT-Unicamp) (2015-2017), possui gradua- ção em Engenharia de Telecomunicações pela FT-Unicamp (2013-2017) e graduação em Tecnologia em Sistemas de Telecomunicações pela FT-Unicamp (2010-2014). Participou do programa de estágio docente PED nas disciplinas de Probabilidade e Teoria da Informação (TT412) e Cálculo 1 (EB101) na FT-Unicamp. Seu tema de projeto defendido no mestrado foi “Esquemas de quantização do demodulador para comuni- cação óptica pelo espaço livre”, e seu trabalho de conclusão da gradua- ção do curso de Engenharia de Telecomunicações teve como tema o “Desenvolvimento de interfaces de código de linha para um enlace com painel solar receptor”. Atuou como coordenador e professor nos cur- sos de Ciência da Computação e Engenharia de Controle e Automação na Faculdade Anhanguera de Limeira. Como docente, lecionou as dis- ciplinas Matemática Instrumental, Mecânica dos Fluidos, Teoria do Controle Moderno I e II, Modelagem de Sistemas Dinâmicos, Análise e Processamento de Sinais, Robótica, entre outras. Atualmente, leciona no curso de Segurança da Informação na Fatec de Americana e nos cursos de Engenharia da Faculdade Anhanguera de Limeira.ser exequível, foram consideradas as variáveis tempo e armazenamento na máquina para facilitar o processamento na realização dos cálculos (TURING, 1937; CHURCH, 1936). PARA SABER MAIS Para saber mais sobre os estudos relacionados à história das primeiras máquinas computacionais, uma excelente indicação é o filme O jogo da imitação. Nesse filme, é possível compreender a importância do apa- recimento da computação, bem como o impacto dessa tecnologia no campo de batalha (O JOGO da imitação, 2014). 13História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. O século XX foi terreno fértil para o desenvolvimento da computação. Para darmos mais precisão à compreensão das evoluções técnicas, uti- lizaremos a terminologia “gerações” para descrever o desenvolvimento cronológico e o impacto dessa tecnologia na humanidade. Tanenbaum e Bos (2016) definem cinco gerações de computadores conhecidas até o momento. Veremos cada uma dessas gerações em detalhes. 4.1 Primeira geração (1945-1955) Tanenbaum e Bos (2016, p. 5) definem a primeira geração de com- putadores como sendo a que utilizava tubos e válvulas eletromecâni- cas, e sua programação era feita diretamente em código de máquina, geralmente pela conexão de plugs em painéis. Não existiam as linguagens de programação, nem sistemas operacionais. O ope- rador obtinha autorização para uso do computador, compilava seu programa e esperava a conclusão, se nenhuma válvula queimasse. (TANENBAUM; BOS, 2016, p. 5) O principal computador dessa geração, o ENIAC (Electronic Numerical Integrator and Computer, ou Computador e Integrador Numérico Eletrônico), possuía cerca de 19 mil válvulas, 10 mil capacitores e 70 mil resistores, pesava 30 toneladas, consumia 200 quilowatts de potência (energia de consumo para cem casas) e era capaz de executar 5 mil adições por segundo. Esse computador era utilizado para realização de cálculos balísticos e testes nucleares (BRITO; PURIFICAÇÃO, 2008). As principais características da primeira geração são: tecnologia de tubos e válvulas eletromecânicas, somente linguagem de máquina su- portada, alto custo de manutenção e aquisição, dissipação de muito ca- lor, dispositivo de entrada/saída lento, grandes dimensões, necessidade de corrente alternada (CA), não portáteis e alto consumo de energia. 14 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . 4.2 Segunda geração (1955-1965) A máquina de Von Neumann foi criada por seu homônimo, John von Neumann, físico e matemático, em 1945, com base no trabalho de Alan Turing. O design foi publicado em um documento chamado Primeiro ras- cunho de um relatório sobre o EDVAC. O rascunho de Von Neumann des- crevia o primeiro computador com programas armazenados (SHANNON, 1958). Os computadores anteriores, como o ENIAC, eram conectados para executar uma tarefa. Se o computador tivesse que executar uma ta- refa diferente, teria que ser religado, o que era um processo tedioso. Com um computador de programa armazenado, um computador de uso geral pode ser construído para executar programas diferentes. Segundo Von Neumann, sua arquitetura devia possuir (SHANNON, 1958): • um processador central composto de uma unidade de controle e uma unidade aritmética/lógica; • uma unidade de memória; • armazenamento em massa; • dispositivos de entrada e saída. O design de Von Neumann forma, assim, a base da computação mo- derna. Um modelo semelhante, a arquitetura de Harvard, tinha endere- ços de dados e barramentos dedicados para leitura e gravação na me- mória. A arquitetura de Von Neumann venceu porque era mais simples de implementar em hardware real. Portanto, os computadores da segunda geração convergiam para o modelo proposto por Von Neumann, sendo que eram conhecidos como mainframes ou computadores de grande porte e, mesmo assim, custa- vam milhões de dólares. A maneira de operação das máquinas dessa geração consistia em o programador levar um conjunto de cartões per- furados com programas em Fortran ou Assembly (linguagem de mon- tagem) e esperar a impressão resultante (TOCCI, 1994). 15História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. As principais características da segunda geração são: utilização de transistores mais confiáveis quando comparados com computadores da primeira geração, tamanho menor, hardware que dissipava menos calor, consumo menor de energia em comparação com os computa- dores da primeira geração, computadores mais rápidos do que os da primeira geração, computadores ainda muito caros e corrente alternada necessária. Alguns computadores dessa geração foram: IBM 1401, IBM 7094, CDC 1604, CDC 3600 e UNIVAC 1108. 4.3 Terceira geração (1965-1980) Segundo Tanenbaum e Bos (2016): A terceira geração de computadores é marcada pelo uso de cir- cuitos integrados (CIs) feitos de silício, também conhecidos como microchips. Um computador que representa esta geração foi o IBM’s System/360, voltado para o setor comercial e científico. Ele possuía uma arquitetura plugável, na qual o cliente poderia substi- tuir as peças que dessem defeitos. Além disso, as empresas pode- riam aumentar a capacidade do computador adquirindo um con- junto de periféricos que eram vendidos conforme a necessidade. (TANENBAUM; BOS, 2016, p. 7) Na figura 2, temos a estrutura de um mainframe com seus discos de armazenamento e a unidade de processamento, típico da terceira geração. Figura 2 – Computador mainframe 16 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Nessa geração, surgiram os dispositivos de entrada e saída, como o terminal de vídeo, o teclado e o disco magnético. Algumas linguagens de alto nível (FORTRAN-II A IV, COBOL, PASCAL PL /1, BASIC, ALGOL-68, etc.) foram usadas durante essa geração. 4.4 Quarta geração (1980-presente) A quarta geração de computadores é marcada pelo uso de circuitos integrados com tecnologia eletrônica VLSI (very large-scale integration),1 que são chips contendo milhares de transistores em um centímetro qua- drado de silicone, dando origem à era do computador moderno. Essa tecnologia possibilitou a implementação de circuitos integra- dos, que permitiram o desenvolvimento de computadores pessoais ou microcomputadores. Um computador muito comercializado nessa épo- ca foi o modelo Altair 8800, com sistema de disquete de 8 polegadas. Seu lançamento ocorreu em janeiro de 1975. Ele possuía uma CPU Intel 8080 de 2 MHz. Os computadores da quarta geração se tornaram mais poderosos, mais compactos, mais confiáveis e acessíveis. Essas inovações impul- sionaram a revolução dos computadores pessoais. Todas as lingua- gens de alto nível, como C, C++ e dBASE, foram implementadas nessa geração. A figura 3 apresenta o computador Apple II, comercializado na década de 1970. 1 VLSI (integração em larga escala) “é o grupo de CIs comum número de componentes compreendido entre 100.000 e 10 milhões de dispositivos por pastilha (são utilizados na implementação de microprocessadores)” (TOCCI, 1994, p. 23). 17História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 3 – Computador Apple II, lançado em 1970 4.5 Quinta geração (1990-presente) Entre as principais características dos computadores da quinta ge- ração estão: utilização de tecnologia ULSI (ultra large-scale integration),2 desenvolvimento de inteligência artificial, desenvolvimento do proces- samento de linguagem natural, avanço no processamento paralelo, avanço na tecnologia de supercondutores, interfaces mais amigáveis com recursos multimídia e disponibilidade de computadores muito po- tentes e compactos a preços mais baratos. Outra característica da quinta geração é o uso de linguagens de alto nível, como C e C++, Java e .Net. A figura 4 mostra um típico escritório com os dispositivos da quinta geração, como smartphone, laptop e desktop. 2 ULSI (integração em escala ultralarga) “é o grupo de CIs com mais de 10 milhões de dispositivos por pastilha” (TOCCI, 1994, p. 23). 18 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Figura 4 – Computadores da quinta geração: smartphone, laptop e desktop 5 Século XXI Podemos inferir que a sexta geração de computadores é marcada pela utilização de computação distribuída, computação em nuvem, dispositivos móveis, computação ubíqua, realidade aumentada, além dos poderosos computadores com poder quântico de processamento. Segundo Martin Giles (2019), em um artigo da revista MIT Technology Review, os computadores quânticos não se limitam a dois estados lógi- cos, eles codificam informações como bits quânticos, ou qubits, basea- dos na teoria da superposição e emaranhamento. Simplificadamente, os qubits são representados por átomos, íons, fótons ou elétrons e seus respectivos dispositivos de controle, para que, dessa forma, possam ser explorados para atuar como dispositivos de memória e processamento. Contudo, um dos grandes desafios da engenharia e da física é controlar a estabilidade dos níveis energéticos dos estados quânticos, para que seja possível sua codificação. Os controles de processo da IBM, da Google e da Rigetti Computing estão utilizando circuitos supercondutores resfriados a temperaturas mais frias que o espaço profundo. Outras empresas, como a IonQ, se- diada em College Park, Maryland, nos Estados Unidos, estão utilizando 19História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. um método no qual são confinados átomos individuais em um chip de silício, utilizando campos eletromagnéticos em câmeras de ultravácuo. Nos dois casos, o objetivo é isolar os qubits em um estado quântico estável (GILES, 2019). A figura 5 ilustra o hardware de um computador quântico. Figura 5 – Ilustração de um computador quântico Espera-se que todos esses avanços na velocidade de processamen- to desses supercomputadores contribuam para uma “nova era”, uma vez que teremos uma revolução, desde a implementação de carros inteligentes conectados à rede, dispositivos integrados IOT (do inglês, Internet of Things), até, possivelmente, uma integração corpo-máquina, bem como o aparecimento de novos nichos de serviços. Considerações finais Neste capítulo, foram apresentadas as cinco gerações de compu- tadores. Apesar de a história da computação ser curta, de 1943 até os dias atuais, houve um avanço tecnológico muito rápido. A primeira gera- ção de computadores utilizava a tecnologia baseada em tubos de vácuo e válvulas eletromecânicas. A segunda geração utilizava transistores. 20 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . A terceira geração, por sua vez, utilizava os circuitos integrados. A quarta geração é conhecida pelo aparecimento dos computadores pesso- ais e por utilizar, em seu hardware, os microprocessadores. A quinta geração é bem representada pelos smartphones, laptops e desktops. Por fim, podemos classificar a sexta geração, dos computadores que possuem a caraterística de realização de processamento quântico. É importante salientar a grande evolução nas dimensões do hardware (“miniaturização”), graças às evoluções técnicas, tais como a invenção dos transistores e componentes integrados. Referências BRITO, Glaucia da Silva; PURIFICAÇÃO, Ivonélia da. Educação e novas tecnolo- gias: um repensar. 2. ed. Curitiba: IBPEX, 2008. CAMPOS FILHO, Maurício Prates de. Os sistemas de informação e as modernas tendências da tecnologia e dos negócios. RAE – Revista de Administração de Empresas, São Paulo, v. 34, n. 6, p. 33-45, nov./dez. 1994. CHURCH, Alonzo. A note on the Entscheidungsproblem. The Journal of Symbolic Logic, v. 1, n. 1, p. 40-41, jun. 1936. Disponível em: https://www. cambridge.org/core/journals/journal-of-symbolic-logic/article/note-on-the- entscheidungsproblem/9461BEAD94BB16D56EC78933D7D67DEF. Acesso em: 17 out. 2019. DAVIS, G. B.; OLSON, M. H. Sistemas de información gerencial. Bogotá: McGraw-Hill, 1987. DUARTE, Lucio Mauro; ZORZO, Avelino F. Resumo sobre histórico dos com- putadores. Faculdade de Informática. Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS). [s. d.]. Disponível em: https://www.inf.pucrs.br/~zorzo/ ii/downloads/geracoes.pdf. Acesso em: 20 mar. 2020. FONSECA FILHO, Cléuzio. História da computação: o caminho do pensamento e da tecnologia. Porto Alegre: EDIPUCRS, 2007. 21História e desenvolvimento da TI M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. GILES, Martin. Explainer: what is a quantum computer? MIT Technology Review. 29 jan. 2019. Disponível em: https://www.technologyreview.com/s/612844/ what-is-quantum-computing/. Acesso em: 18 out. 2019. HAILPERIN, Theodore. Boole’s logic and probability: critical exposition from the standpoint of contemporary algebra, logic and probability theory. Amsterdam: Elsevier Science, 1986. (Studies in logic and the foundations of mathematics). MATIYASEVICH, Yuri V. Hilbert’s tenth problem. Cambridge: MIT Press, 1993. O JOGO da imitação. Direção: Morten Tyldum. Produção: Nora Grossman, Ido Ostrowsky e Teddy Schwarzman. Intérpretes: Benedict Cumberbatch, Keira Knightley, Matthew Goode et al. Roteiro: Graham Moore. [S. l.]: Black Bear Pictures; Bristol Automotive; Orange Corp, 2014. SHANNON, Claude E. A symbolic analysis of relay and switching circuits. In: AIEE Summer Convention, Washington, D.C., 20-24 jun. 1938. SHANNON, Claude E. Von Neumann’s contributions to automata theory. Bulletin of the American Mathematical Society, v. esp.: John von Neumann1903-1957, p. 123-129, 1958. TANENBAUM, Andrew S.; BOS, Herbert. Sistemas operacionais modernos. 4. ed. São Paulo: Pearson, 2016. TOCCI, Ronald J. Sistemas digitais: princípios e aplicações. 5. ed. Prentice Hall do Brasil, 1994. TURING, Alan Mathison. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, v. 2, n. 1, p. 230-265, 1937. 23 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 2 A transformação do dado à criação do conhecimento Neste capítulo, abordaremos os conceitos de dado, informação e conhecimento, bem como os benefícios que a gestão dos dados pode oferecer para o processo de tomada de decisão dentro de uma organi- zação. Estudaremos o processo de evolução da gestão dos dados, bem como as principais plataformas utilizadas atualmente pelas empresas e organizações. 24 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Sabemos que todos os campos do conhecimento necessitam de in- formação. Uma empresa de logística, por exemplo, precisa saber com a máxima exatidão a quantidade de rotas e otimizá-las de modo que o en- vio de mercadorias chegue sem atrasos, com custo mínimo. Um erro de estratégia na escolha dessas rotas ocasionaria um grande prejuízo para o negócio, e essa informação precisa estar sempre atualizada, todos os dias. Sendo assim, a gestão da informação, segundo Laudon e Laudon (2011), consiste no processo de atividades de busca, identificação, classificação, processamento, armazenamento e disseminação de informações independente- mente do formato ou meio em que se encontra, podendo ser docu- mentos físicos ou digitais. (LAUDON; LAUDON, 2011, p. 27) Ela é a responsável por armazenar os dados e transformá-los em informação, proporcionando a base para a tomada de decisão dentro das empresas. É comum o entendimento de que dado, informação e conhecimen- to sejam sinônimos, o que é um equívoco. Então, faz-se importante a desmistificação desses conceitos, para o real entendimento. Dado, in- formação e conhecimento são classificados em categorias distintas, porém estreitamente relacionadas. 1 Conceito de dado Podemos definir o termo “dado” como a representação de uma sé- rie de fatos, conceitos ou estatísticas que podem ser analisados para produzir informações. Alguns exemplos de dados são: o nome de um bairro, a idade de alguém e o número da quantidade vendida de um de- terminado produto. O dado pode ser considerado um elemento da infor- mação, que, tomado isoladamente, não possui significado relevante e 25A transformação do dado à criação do conhecimento M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. não conduz a nenhuma compreensão. Conforme Bio (1988), ele repre- senta algo que não tem sentido a princípio. De acordo com Davenport e Prusak (1998), dependendo da sua infor- mação, os dados podem ser classificados da seguinte forma: • Dado do tipo número: se a sua informação for um número inteiro ou decimal. • Dado do tipo texto: se possuir um conjunto de caracteres alfanuméricos. Os dados também podem ser divididos em dados qualitativos e da- dos quantitativos. Os dados qualitativos são relativos a qualidades. Por exemplo, em uma pesquisa sobre um produto, algumas respostas dos consumidores podem ser: “gostoso”, “muito bom”, “ruim” ou “péssimo”. Estes são todos exemplos de dados qualitativos, que estão qualificando algo. Já os dados quantitativos são relativos a quantidade. Por exemplo: quantidade de pessoas com mais de 18 anos, quantidade de pessoas desempregadas, quantidade de pessoas que ganham até um salário mínimo, etc. Conforme seu conteúdo, os dados ainda podem ser classificados da seguinte forma: • Dados contínuos: são dados quantitativos contínuos que assu- mem valores em um intervalo contínuo de números. Por exem- plo: viscosidade de um líquido, peso de uma pessoa, tempo para completar uma tarefa, custos de manutenção. Exemplos: 65 kg, 90 minutos, R$ 350,00. • Dados de contagem: são dados nos quais as observações po- dem somente tomar valores inteiros. Por exemplo: número de peças com defeito em um lote, número de roubos em um mês, número de erros da execução de uma tarefa. Exemplos: 20 peças com defeito, 100 roubos no mês, 5 erros na execução da tarefa. 26 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . • Dados de classificação: são dados que se constituem em abor- dagens para identificar, proteger e gerenciar informações que se tornaram rapidamente práticas. Exemplo: produto do tipo A ou produto do tipo B. Os dados podem se tornar difíceis de serem gerenciados por serem processados em diversas etapas e em diferentes locais. Algumas ra- zões para isso seria o crescente aumento da quantidade de dados ao longo do tempo, localizações dispersas dos dados dentro das organi- zações, métodos e dispositivos diversos utilizados para sua coleta e, ainda, as diferentes origens dos dados, podendo vir de fontes internas, externas e pessoais, o que leva ao aumento da sua digitalização. De acordo com Akabane (2012), esse crescimento proveniente do maior acesso a dispositivos eletrônicos e da popularização da internet contri- bui para uma revolução no processamento de dados. Isso nos leva ao conceito de Big Data, que, segundo Davis (2012), são dados muito volumosos para serem tratados e analisados por protocolos de banco de dados tradicionais como SQL (o que faz Big Data um termo que pode evoluir ao longo do tempo, o que é considerado agora Big Data pode muito rapidamente tornar-se pequeno). (DAVIS, 2012, p. 4) 2 Conceito de informação Uma das características que compõem o conceito de informação é que ela deve ser responsável pela “produção, seleção, organização, in- terpretação, armazenamento, recuperação, disseminação, transforma- ção e uso da informação” (GRIFFITH, 1980 apud CAPURRO, 2003, p. 4). De acordo com Tarapanoff (2006, p. 23) “a informação pode ser con- siderada: um fator determinante para a melhoria de processos, produ- tos e serviços, tendo valor estratégico em organizações”. 27A transformação do dado à criação do conhecimento M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Davenport e Prusak (1998) definem o tema informação como “uma mensagem, geralmente na forma de um documento ou uma comunica- ção audível ou visível” (DAVENPORT; PRUSAK, 1998, p. 4). Stair e Reynolds (2006) definem sistemas de informação como sendo um conjunto de elementos ou componentes inter-relacionados que coletam (entrada), manipulam (processo) e disseminam (saída) dados e informações e oferecem um mecanismo de realimentação para atingir um objetivo. (STAIR; REYNOLDS, 2006, p. 12) A figura 1 ilustra o processode transformação de dado em informação. Figura 1 – A transformação de dado em informação Dado Informação Processo de transformação (aplicação de conhecimento para selecionar, organizar e manipular os dados) Fonte: adaptado de Stair e Reynolds (2006, p. 7). Angeloni (2008) define um novo ponto de vista para a interpretação de eventos ou obje- tos, tornando-se visíveis aos significados antes invisíveis ou lan- çando luz sobre conexões antes inesperadas. Por isso, a informa- ção é um meio ou material necessário para extrair e construir o conhecimento. (ANGELONI, 2008, p. 23) 3 Conceito de conhecimento Podemos conceituar que conhecimento, o capital intelectual (ou recurso intelectual), é informação contextual, relevante e acionável, de modo que, em síntese, constitui-se da informação em movimento 28 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . (TURBAN; RAINER JR.; POTTER, 2007). A informação pode ser defini- da como valiosa, e a obtenção do conhecimento passa pelos crivos da reflexão, da síntese e do contexto. É uma tarefa árdua a estruturação de capturar em computadores. Normalmente, é tácita (não explícita), e sua transparência é complexa (AUDY; ANDRADE; CIDRAL, 2005). Segundo Smit, Tálamo e Kobashi (2004), é necessário ter um domínio interdisciplinar, passando pelo modo estático por meio da ciência da biblioteconomia, até chegar à ciência da informação, sendo este últi- mo um processo dinâmico. A figura 2 descreve esse movimento, que tem início na biblioteconomia, passando pela documentação e che- gando, enfim, à ciência da informação. Figura 2 – Eixo evolutivo do conhecimento Biblioteconomia (ênfase no estático) Documentação Ciência da informação (ênfase no dinâmico) Acervo Recuperação da informação Acesso à informação Transferência de informação Fonte: adaptado de Smit, Tálamo e Kobashi (2004, p. 9). 4 Evolução da gestão dos dados e plataformas atuais de gestão Os mecanismos de gestão do conhecimento atuais permitem a con- centração de dados, a fim de acumular e planejar, no contexto de geren- ciamento de informação. Para isso, muitas empresas desenvolveram ferramentas de gestão do conhecimento. Essas ferramentas, quando bem gerenciadas, permitem incremento de produtividade, competitivi- dade e inovação para as empresas que as utilizam. 29A transformação do dado à criação do conhecimento M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Essencialmente, essas ferramentas são capazes de armazenar o conhecimento, que pode ser os perfis dos funcionários, os perfis das empresas competidoras ou mesmo dados para uso político. Uma vez acumuladas essas informações em seus computadores, esses dados ficam disponíveis de maneira compartilhada no mesmo banco de dados da organização. Por meio desse banco de informações, é possível criar uma variedade de algoritmos e de aplicativos de tomada de decisão, que podem ser úteis para otimização dos negócios. Essas tecnologias podem fornecer conhecimento para todos os ní- veis hierárquicos da empresa, promovendo a comunicação entre todos os setores envolvidos. Segundo Stair e Reynolds (2006), algumas das principais vantagens da utilização do gerenciamento de dados são: • aumento da agilidade na gestão; • aumento da eficácia na tomada de decisão; • ganho de vantagem competitiva; • previsão de dificuldades e forma de evitá-las; • ampla capacidade de detecção de oportunidades. Para comprovar a capacidade de detecção de oportunidades forne- cida pela tecnologia, precisamos compreender o processo da aquisição de inteligência competitiva (IC). A IC é aplicada nos mais variados am- bientes, com o objetivo de extrair oportunidades e mitigar riscos. Segundo Valentim (2003), os ambientes interno e externo de uma or- ganização estão expostos a estratégias de ação de curto, médio e longo prazo, trazendo informações estratégicas sobre a situação do desem- penho dos seus concorrentes. O processo de detecção de oportunidade pode ser mais bem compreendido por meio da análise da figura 3. 30 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Figura 3 – Hierarquia da informação InteligênciaVantagem competitiva Processamento Informação Conhecimento Dados Síntese Análise Aprendizagem Experiência Elaboração Fonte: adaptado de Moresi (2000, p. 18). 4.1 Estudo de caso Vamos acompanhar alguns casos reais de empresas que inovaram seus processos com a utilização de soluções para gestão da informa- ção, corroborando para que a oferta de seus serviços fosse diferenciada da concorrência. 4.1.1 Caso eCourier Segundo Akabane (2012), a empresa inglesa eCourier tratou de forma inovadora o processo de gestão da informação, aplicando uma ousada estratégia de gestão de dados. A eCourier oferecia serviços de entrega de pacotes, sendo o seu maior desafio vencer a concorrência, que era de aproximadamente 350 empresas que ofereciam serviços similares. O objetivo principal da empresa era oferecer um serviço diferenciado, que surpreendesse as expectativas dos seus clientes. 31A transformação do dado à criação do conhecimento M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Para que isso fosse possível, a solução encontrada pelos gestores foi a implantação de inteligência competitiva, por meio dos seguintes processos internos: • Implantação de software de geolocalização (GPS). • Treinamento técnico dos seus funcionários. • Integração eletrônica em tempo real entre setores. • Acesso instantâneo sobre informações comportamentais dos seus clientes. Como as posições dos correios são rastreadas por GPS e um siste- ma inteligente de expedição atribui pedidos via GPRS, isso melhorou a eficiência do processo. Pode-se destacar que o maior diferencial dessa ferramenta é que o algoritmo distribui pedidos aos correios em tempo real com base na localização, no tráfego, no clima e na demanda. 4.1.2 Caso Lands’ End De acordo com Laudon e Laudon (2011), algumas empresas que desenvolvem produtos e serviços baseados em serviços informatiza- dos (SI), em curto prazo, são mais difíceis de serem copiadas pela concorrência, o que faz a lucratividade aumentar consideravelmente. A customização em massa, por exemplo, oferece a capacidade de ofe- recer produtos e serviços sob medida usando os mesmos recursos da produção em massa. Uma empresa que trabalha dessa forma é a Lands’ End, do ramo de vestuário. Seus clientes utilizam seu site para fazer encomendas de roupas passando suas medidas ao preencherem um formulário. As informações são transmitidas para a central, que desenvolve um mol- de eletrônico sob medida para cada cliente. Os moldes eletrônicos são transmitidos via rede a um fábrica, onde são utilizados para guiar as máquinas de corte. Utilizando essa estratégia, não há custos extras 32 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ulad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . de produção, porque o processo não requer armazenamento adicional nem estoques, e o custo para os clientes é minimamente superior ao das roupas produzidas em massa. 4.1.3 Caso Dell Computer Corporation Outra empresa que tem seus serviços baseados em SI é a Dell Computer Corporation, que vende diretamente para o cliente final usando um sistema de fabricação sob demanda. Assim que recebe o pedido, o controle de produção da empresa passa as instruções para a linha de montagem, que construirá o computador de acordo com as configurações especificadas pelo cliente e usando componentes já existentes em seu almoxarifado. Laudon e Laudon (2011) explicam que os sistemas de informação são a chave para que as empresas consigam obter informações que permitam técnicas de vendas e de marketing alinhadas, habilitando as empresas a analisar os modelos de compras, os gostos e as preferên- cias dos clientes e tornando-as capazes de lançar com eficiência cam- panhas de marketing dirigidas a mercados-alvo cada vez menores. 5 Plataformas atuais de gestão Segundo Stair e Reynolds (2006, p. 12), os sistemas de informação baseados em computadores (computer-based information systems – CBIS) são “um conjunto único de hardware, software, bancos de da- dos, telecomunicações, pessoas e procedimentos que tem a função de coletar, manipular, armazenar e processar dados em informações”. Atualmente, as empresas de pequeno, médio e grande porte incorpo- ram em seus produtos e serviços informações baseadas em sistemas de computador (STAIR; REYNOLDS, 2006). A gestão do conhecimento é, em seu significado atual, um esforço para disponibilizar o conhecimento de uma organização àqueles que dela necessitam, quando, onde e da maneira que for necessária, com o 33A transformação do dado à criação do conhecimento M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. objetivo de aumentar o desempenho humano e organizacional (TERRA, 2000). De acordo com Stair e Reynolds (2006), o software chamado sistema de gestão de banco de dados (DBMS – database management system) em geral é usado para gerenciar o banco de dados, e o software chamado sistema de gestão de modelos (MMS, model management system) é utilizado para gerir a base de modelo. (STAIR; REYNOLDS, 2006, p. 25) Um outro exemplo é uma ferramenta de apoio à gestão, o sistema Vblock, da Virtual Computing Environment (VCE), que é um grupo de empresas da rede Cisco e a fornecedora de armazenagem de dados EMC. A VCE oferece soluções para a criação de uma plataforma em nuvem, ao mesmo tempo que elimina a necessidade de o usuário lidar com múltiplos fornecedores (STAIR; REYNOLDS, 2006). As plataformas de gestão do conhecimento são recursos disponí- veis às empresas, a fim de que estas possam gerir os dados, propor- cionando conhecimento e informação para que especialistas tomem decisões otimizadas e assertivas em seus negócios. Decisões otimizadas e assertivas podem ser alcançadas mediante utilização de softwares colaborativos. Esses softwares podem ser en- tendidos como todo aplicativo ou ferramenta que torna possível a troca de informações de forma ágil e, principalmente, simultânea e atualizada. A seguir, são listados dois softwares colaborativos que podem se utilizar de armazenamento de informação em nuvem: • Trello: aplicativo de gerenciamento de projetos. • Microsoft Teams: plataforma unificada de comunicação e co- laboração que combina bate-papo, videoconferências, arma- zenamento de arquivos e integração de aplicativos no local de trabalho. 34 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Considerações finais Neste capítulo, apresentamos um panorama com as definições de três entes muito importantes para organizações e empresas na tomada de decisão: os dados, a informação e o conhecimento. Essa trindade, quando trabalhada corretamente, transforma-se em uma ferramenta eficiente de gerenciamento, capaz de tornar o processo de análise dos dados mais inteligente e otimizado. Neste capítulo, foi possível destacar os dois principais softwares de gestão, sendo eles: softwares colabo- rativos e softwares utilizados com finalidade específica na tomada de decisão. Referências AKABANE, Getúlio Kazue. Gestão estratégica da tecnologia da informação: conceitos, metodologias, planejamento e avaliações. São Paulo: Atlas, 2012. ANGELONI, Maria Terezinha. Organizações do conhecimento: infraestrutura, pessoas e tecnologias. São Paulo: Saraiva, 2008. AUDY, Jorge Luis Nicolas; ANDRADE, Gilberto Keller; CIDRAL, Alexandre. Fundamentos de sistemas de informação. Porto Alegre: Bookman, 2005. BIO, Sérgio Rodrigues. Sistemas de informação: um enfoque gerencial. São Paulo: Atlas, 1988. CAPURRO, Rafael. Epistemologia e ciência da informação. In: Encontro Nacional de Pesquisa em Ciências da Informação (ENANCIB), 8., 2003, Belo Horizonte. Anais... Belo Horizonte: ANCIB, 2003. Disponível em: http://www.capurro.de/ enancib_p.htm. Acesso em: 4 dez. 2019. CHOO, Chun Wei. A organização do conhecimento: como as organizações usam a informação para criar significado, construir conhecimento e tomar decisões. São Paulo: Editora Senac São Paulo, 2003. 35A transformação do dado à criação do conhecimento M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. DAVENPORT, Thomas H.; PRUSAK, Laurence. Conhecimento empresarial: como as organizações gerenciam o seu capital intelectual. Rio de Janeiro: Campus, 1998. DAVIS, Kord. Ethics of Big Data. Sebastopol: O’Reilly Media, 2012. LAUDON, Kenneth C.; LAUDON, Jane P. Sistemas de informações gerenciais. 9. ed. São Paulo: Pearson, 2011. MORESI, Eduardo Amadeu Dutra. Delineando o valor do sistema de informação de uma organização. Ciência da Informação, Brasília, DF, v. 29, n. 1, p. 14-24, jan./abr. 2000. SMIT, Johanna W.; TÁLAMO, Maria de Fátima G. M.; KOBASHI, Nair Y. A determi- nação do campo científico da ciência da informação: uma abordagem termino- lógica. Revista de Ciência da Informação, v. 5, n. 1, fev. 2004. STAIR, Ralph M.; REYNOLDS, George W. Princípios de sistemas de informação: uma abordagem gerencial. São Paulo: Pioneira Thomson Learning, 2006. TARAPANOFF, Kira (org.). Inteligência, informação e conhecimento em corpo- rações. Brasília, DF: Instituto Brasileiro de Informação em Ciência e Tecnologia (IBICT), 2006. TERRA, José Cláudio Cyrineu. Gestão do conhecimento: o grande desafio empresarial. São Paulo: Negócio, 2000. TURBAN, Efraim; RAINER JR., R. Kelly; POTTER, Richard E. Introdução a siste- mas de informação. Rio de Janeiro: Elsevier, 2007. VALENTIM, Marta Ligia Pomim. A construção de conhecimento em organi- zações (1). InfoHome. Ago. 2003. Disponível em: http://www.ofaj.com.br/ colunas_conteudo.php?cod=75. Acesso: 11 nov. 2019. 37 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob aspenas da Lei. © Editora Senac São Paulo. Capítulo 3 Sistemas de numeração decimal, binário e hexadecimal Neste capítulo, conheceremos os tipos de sistemas de numeração, de bases decimal, binária e hexadecimal. Entenderemos o porquê de cada sistema numérico, como cada um funciona e sua utilização na computação. Compreenderemos, também, algumas aplicações práti- cas, tais como a codificação BCD e o padrão alfanumérico ASCII, ado- tado na computação. 38 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Com a necessidade de manter registros de animais e outros bens, a numeração escrita data de épocas mais primitivas. O sistema utilizava marcas ou traços em paus, pedras, etc., com a aplicação da correspon- dência biunívoca (correspondência entre os elementos de dois conjun- tos, tal que a cada elemento de um corresponda a um e somente um elemento do outro conjunto). Cajori (1993) define que os sistemas de escrita numérica mais primitivos provêm dos egípcios e dos babilônios e datam aproximadamente do ano 3500 a.C. Já o computador é capaz de entender apenas dois tipos de sinais, zero (0) e um (1), ou seja, a presença de corrente elétrica ou sua au- sência em algum ponto de seu circuito. Assim, podemos dizer que sua linguagem natural é de base 2 (binária). De acordo com Tocci, Widmer e Moss (2011), na representação di- gital, os valores são representados por símbolos conhecidos como dí- gitos, e não de acordo com um sistema decimal. Podemos citar como exemplo o relógio digital. Ele mostra as horas e os minutos no formato de dígitos decimais. Dessa forma, a mudança do tempo mostrada pelo relógio se dá por etapas, e não continuamente, como realmente acon- tece. Podemos concluir que a representação digital da hora muda de forma discreta e a representação das horas por um relógio de ponteiro é mostrada de forma contínua. A principal diferença entre grandezas analógicas e digitais, por- tanto, pode ser simplesmente indicada como analógico-contínuo e digital-discreto. Na leitura de representações digitais, não há equívo- co, por se tratar de uma natureza discreta. Já para leituras analógicas, podem acontecer diferentes interpretações. Na prática, normalmente “arredondamos” o valor analógico lido para um valor aproximado mais conveniente. A representação digital é o resultado da atribuição de um número de precisão limitada a uma grandeza contínua. Por exemplo, quando medimos uma temperatura usando um termômetro de mer- cúrio (analógico), a marcação normalmente fica entre duas linhas de 39Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. graduação e temos que escolher uma linha mais próxima e um número, por exemplo, 36,5 °C. 1 Sistema numérico Para entendermos os sistemas de representação de símbolos numé- ricos, é necessário conhecer a necessidade de utilização para o sistema de medidas, tais quais as utilizadas no sistema agrícola do Egito antigo. Segundo Doberstein (2010, p. 28), as medidas adotadas pelos egípcios facilitavam a construção de diques para armazenamento de alimentos e o desenvolvimento de sua agricultura. O sistema de medição egípcio era baseado no comprimento de partes do corpo, como ilustrado na figura 1. Figura 1 – Sistema de medição no Egito antigo Dígito: a largura de um dedo. Palmo: a largura de quatro dedos. Cúbito: a distância do cotovelo à ponta do dedo médio. Existem evidências de que os egípcios utilizavam um sistema de nú- meros decimais há 5 mil anos. O sistema de numeração romana, pre- dominante há centenas de anos, também era um sistema de números decimais (embora organizado de forma diferente do sistema de números arábicos da base 10, com o qual estamos mais familiarizados). De acordo 40 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . com Boyer e Merzbach (2012), os números foram estudados exaustiva- mente pelos gregos, e, por um longo tempo, a escola grega, mais preci- samente a pitagórica, defendia que tudo no universo era constituído de números. Kronecker (1857) é muitas vezes citado por ter dito: “Deus criou os números inteiros; tudo o mais é obra do homem”, considerando que o sistema de números reais foi erigido por matemáticos com base nos fundamentos intuitivamente óbvios fornecidos pelos números inteiros. De acordo com Clarke (1982), o surgimento da expressão “número real” se deu com René Descartes (1596-1650) em 1637, quando este apresentou as raízes de equações expressas por números imaginários, e tal expressão ainda é utilizada até hoje. (CLARKE, 1982, p. 48) Gauss (1777-1855) foi quem aprimorou a ideia de números reais e imaginários por meio de equações que não possuíam discriminante positivo. De acordo com Clarke (1982, p. 7), foi necessário que um grande período se passasse até que os trabalhos com os números irracionais fossem evitados, e somente 2.500 anos depois foi possível estabelecer a construção axiomática dos números reais. A matemática apresenta um conceito de representação bem defi- nida. A reta real ou a reta do número real é a reta cujos pontos são os números reais. Ou seja, a reta real é o conjunto IR de todos os números reais, vistos como um espaço geométrico, ou seja, o espaço euclidiano da dimensão unitária. A reta real da figura 2 reúne os números inteiros 1, 2 e 3, os números 1 5inteiros negativos -1 e -2, os número fracionários positivos e , 2 21o número fracionário negativo - e a representação de números deci-2 mais 0,5, -1,5, bem como os irracionais 2 e - 3 , e o π. 41Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Figura 2 – Reta real 1 2 5 2 0,5-1,5 -2 -1 0 1 2 π = 3,14159... 3 ... IR ... 1 2 - 3- 2 2 Sistema decimal O sistema métrico decimal tem sido o mais amplamente utiliza- do, desde que a civilização começou a contar. De acordo com Tocci, Widmer e Moss (2007), o sistema decimal utiliza a base 10, sendo assim, essa base possui dez símbolos. São eles: {0,1,2,3,4,5,6,7,8,9}. As posições dos dígitos são representadas por meio de potências de 10. Estas são conhecidas como unidade, centena, milhar, e assim por diante. A figura 3 ilustra a representação do sistema decimal, com os dígitos mais significativos (most significant digits – MSD) e os dígitos menos significativos (least significant digits – LSD). Figura 3 – Representação em sistemas numéricos em potências de 10 Dígitos menos significativos (LSD)Dígitos mais significativos (MSD) ... ...103 102 101 100 10-1 10-2 10-3 Agora, vamos acompanhar um exemplo para compreendermos me- lhor essa representação: (234)10 = 2 × 102 + 3 × 101 + 4 × 100 MSD = 2 LSD = 4 42 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Educ aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Ou, ainda: 2 × 100 + 3 × 10 + 4 × 1 = (234)10 3 Sistema binário De acordo com Haykin e Moher (2008), para determinado código bi- nário, cada símbolo pode ser de um dentre dois valores distintos, tal como pulso negativo ou pulso positivo. Os dois símbolos de um código binário são, geralmente, representados por 0 e 1. Tocci, Widmer e Moss (2011) definem que o sistema binário se utiliza da base 2, sendo assim, essa base possui dois dígitos. O alfabeto do sistema binário é represen- tado pelo conjunto de dois dígitos {0,1}. O sistema numérico binário pode ser representado pelo símbolo zero, utilizando o algarismo 0, e pelo símbolo um, utilizando o algarismo 1. Para as demais representações, utilizamos agrupamentos de 0 e 1. Haykin e Moher (2008) apresentam algumas das vantagens de utili- zação de um código representado por uma sequência binária: • A vantagem máxima sobre os efeitos de ruído em uma mídia de comunicação é obtida utilizando um código binário, pois o símbolo binário suporta um relativo nível alto de ruído. • O código binário é fácil de ser gerado e regenerado. Suponha que, em um código binário, cada palavra de código consista em R bits. O bit é um acrônimo para dígito binário. Sendo assim, R represen- ta o número de bits por amostra. Logo, utilizando esse código, podemos representar um total de 2R números distintos. Exemplificando, uma amostra quantizada em um de 256 níveis pode ser representada por um código com 8 bits, pois 28 bits = 256 possibili- dades. Contudo um número de bits forma níveis de representação pos- síveis para uma distribuição de possibilidades binárias. No sistema de 43Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. numeração binário, cada dígito possui um peso, que é uma potência de 2, como veremos na figura 4. Figura 4 – Representação em sistemas numéricos em potências de 2 Dígitos menos significativos (LSD)Dígitos mais significativos (MSD) ... ...23 22 21 20 2-1 2-2 2-3 Ao efetuarmos o lançamento de uma moeda, podemos obter dois resultados possíveis: {cara,coroa}. Assim, poderíamos associar esses dois resultados da seguinte forma: cara como sendo 1 e coroa como sendo 0, ou vice-versa. Poderíamos, também, até mesmo associá-los a verdadeiro ou falso: {verdadeiro,falso}, e assim por diante. Esse tipo de representação binária é utilizado no projeto da arquite- tura de funcionamento interno de um computador, porém, você terá que aprender a pensar em um sistema numérico um pouco diferente, o sis- tema de números binários, também conhecido como sistema base 2. Seguindo essa mesma regra, podemos representar as demais quan- tidades. A tabela 1 ilustra a sequência de numeração do sistema binário até o número 9. Tabela 1 – Números do sistema decimal 0 a 9 no sistema binário Decimal Binário 0 0 1 1 2 10 3 11 (cont.) 44 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . Decimal Binário 4 100 5 101 6 110 7 111 8 1000 9 1001 O termo “bit” (do inglês, “binary digit”) é dado a todo dígito binário, sendo que o conjunto de 4 bits recebe o nome de “nibble”, e o conjunto binário formado por 8 bits recebe o nome de “byte”. Segundo Tocci, Widmer e Moss (2007), todos os dados que são armazenados ou pro- cessados em um computador podem ser representados na forma de bits. No entanto, com um único bit, podemos representar dois estados possíveis, sendo assim, para resolver essa limitação, os computado- res trabalham com agrupamentos de bits. De acordo com Tocci, Widmer e Moss (2011), os microprocessado- res projetados nas décadas de 1970 e 1980, como o Intel 8080, podiam operar com 8 bits de cada vez. Já os hardwares que utilizavam micropro- cessadores Intel 8088 e Intel 80286 operavam com 16 bits (apesar de aceitarem também instruções e dados de 8 bits). Microprocessadores como o Intel 80386, o Intel 80486 e o Pentium operavam com 32 bits (apesar de aceitarem também instruções e dados de 8 ou 16 bits). Sempre que um microprocessador, uma memória ou outro chip qual- quer precisar receber ou transmitir dados, esses dados são transferidos na forma de bits. Segundo Tocci, Widmer e Moss (2011), para que a transferência de dados seja mais rápida, esses bits não devem ser transferidos um de cada vez, mas, sim, vários de uma só vez. No entanto, utilizando um 45Sistemas de numeração decimal, binário e hexadecimal M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. único fio, só é possível transmitir um bit de cada vez. Com oito fios, pode-se realizar a transmissão de 8 bits de cada vez. Essa técnica de transmissão de dados é muito mais rápida que a transmissão em fio único, contudo os bits nos computadores são sempre transmitidos em grupos de 8, 16 ou 32 bits. É muito importante, para o conhecimento técnico de computação, entender a representação em agrupamento de bits, bem como as uni- dades de armazenamento de dados: • Um agrupamento de 4 bits é chamado de “nibble”. • Um agrupamento de 8 bits é chamado de “byte”. • Um agrupamento de 16 bits é chamado de “word”. • Um agrupamento de 32 bits é chamado de “double word”. • Um agrupamento de 64 bits é chamado de “quad word”. As unidades de medidas de armazenamento de informação são (TOCCI; WIDMER; MOSS, 2007): • Bit: número que pode representar apenas dois valores: 0 e 1. • Byte: grupo de 8 bits. Pode representar valores numéricos entre 0 e 255. Pode também ser usado para representar caracteres. Cada caractere ocupa um byte. • Kilobyte (KB): um grupo de aproximadamente 1.000 bytes. • Megabyte (MB): um grupo de aproximadamente 1.000.000 bytes. • Gigabyte (GB): um grupo de aproximadamente 1.000.000.000 bytes. Tocci, Widmer e Moss (2007) definem que os bytes podem ser usa- dos para representar números, caracteres, figuras ou qualquer outro tipo de dado armazenado ou processado em um computador. Exemplos: 46 Conceitos de computação I M at er ia l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . • A: 01000001. • E: 01000101. • F: 01000110. Na prática, alguns técnicos e estudantes da área de computação acabam, de forma imperceptível, decorando esses valores, porém, não acreditamos ser produtivo decorar esses números para o entendimento técnico e a utilização de computadores. O que denota importância salu- tar para o estudante de computação é a compreensão por trás dos bas- tidores, ou seja, quando pressionamos a tecla “E”, o teclado transmitirá para o computador um código que representa essa letra. Esse código, que você não precisa decorar, é 01000101. Tocci, Widmer e Moss (2007) ressaltam que não é importante saber qual é o