(Memória) Tanenbaum - Organização Estruturada de Computadores.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Capítulo 2 Organização de sistemas de computadores 57 As CPUs de um multicomputador se comunicam enviando mensagens umas às outras, mais ou menos como enviar e-mails, porém, com muito mais rapidez. Em sistemas grandes, não é prático ter cada computador liga­ do a todos os outros, portanto, são usada...

Capítulo 2 Organização de sistemas de computadores 57 As CPUs de um multicomputador se comunicam enviando mensagens umas às outras, mais ou menos como enviar e-mails, porém, com muito mais rapidez. Em sistemas grandes, não é prático ter cada computador liga­ do a todos os outros, portanto, são usadas topologias como malhas 2D e 3D, árvores e anéis. O resultado é que mensagens de um computador para outro muitas vezes passam por um ou mais computadores ou comutadores (chaves) intermediários para ir da fonte até o destino. Não obstante, podem-se conseguir tempos de transmissão de mensagem da ordem de alguns microssegundos sem muita dificuldade. Multicomputadores com mais de 250 mil CPUs, como o Blue Gene/P da IBM, já foram construídos. Uma vez que multiprocessadores são mais fáceis de programar e multicomputadores são mais fáceis de cons­ truir, há muita pesquisa sobre projetos de sistemas híbridos que combinam as boas propriedades de cada um. Esses computadores tentam apresentar a ilusão de memória compartilhada sem bancar a despesa de realmente construí-la. Falaremos mais de multiprocessadores e multicomputadores no Capítulo 8. 2.2 Memória primária A memória é a parte do computador onde são armazenados programas e dados. Alguns cientistas da com­ putação (em especial, os britânicos) usam o termo armazém ou armazenagem em vez de memória, se bem que o termo "armazenagem" está sendo usado cada vez mais para a armazenagem em disco. Sem uma memória da qual os processadores possam ler e na qual possam gravar, ou escrever, informações, não haveria computadores digitais com programas armazenados. 2.2.1 Bits A unidade básica de memória é dígito binário, denominado bit. Um bit pode conter um O ou um 1. É a unidade mais simples possível. (Um dispositivo capaz de armazenar somente zeros dificilmente poderia formar a base de um sistema de memória; são necessários pelo menos dois valores.) As pessoas costumam dizer que computadores usam aritmética binária porque ela é "eficiente". O que elas querem dizer, embora quase nunca percebam, é que informações digitais podem ser armazenadas distinguindo entre valores diferentes de alguma quantidade física contínua, tal como tensão ou corrente elétrica. Quanto maior for o número de valores que precisam ser distinguidos, menores serão as separações entre valores adjacentes, e menos confiável será a memória. O sistema numérico binário requer a distinção entre apenas dois valores. Por conseguinte, é o método mais confiável para codificar informações digitais. Se você não estiver familiarizado com números binários, consulte o Apêndice A. Há empresas que anunciam que seus computadores têm aritmética decimal, bem como binária, como é o caso da IBM e seus grandes mainframes. Essa façanha é realizada usando-se 4 bits para armazenar um dígito decimal que utiliza um código denominado BCD (Binary Coded Decimal - decimal codificado em binário). Quatro bits oferecem 16 combinações, usadas para os 10 dígitos de O a 9, mas seis combinações não são usa­ das. O número 1.944 é mostrado a seguir codificado em formato decimal e em formato binário puro, usando 16 bits em cada exemplo: decimal: 0001 1001 0100 0100 binário: 0000011110011000 Dezesseis bits no formato decimal podem armazenar os números de O a 9999, dando somente 10 mil com­ binações, ao passo que um número binário puro de 16 bits pode armazenar 65.536 combinações diferentes. Por essa razão, as pessoas dizem que o binário é mais eficiente. No entanto, considere o que aconteceria se algum jovem e brilhante engenheiro elétrico inventasse um dis­ positivo eletrônico de alta confiabilidade que pudesse armazenar diretamente os dígitos de O a 9 dividindo a região de O a 10 volts em 10 intervalos. Quatro desses dispositivos poderiam armazenar qualquer número decimal de O a 9999. Quatro desses dispositivos dariam 10 mil combinações. Eles também poderiam ser usados para armazenar 58 Organização estruturada de computadores números binários usando somente O e 1, caso em que quatro deles só poderiam armazenar 16 combinações. Com tais dispositivos, o sistema decimal é obviamente mais eficiente. 2.2.2 Endereços de memória Memórias consistem em uma quantidade de células (ou locais), cada uma das quais podendo armazenar uma informação. Cada célula tem um número, denominado seu endereço, pelo qual os programas podem se referir a ela. Se a memória tiver n células, elas terão endereços de O a n - 1. Todas as células em uma memória contêm o mesmo número de bits. Se uma célula consistir em k bits, ela pode conter quaisquer das 21' diferentes combina­ ções de bits. A Figura 2.9 mostra três organizações diferentes para uma memória de 96 bits. Note que as células adjacentes têm endereços consecutivos (por definição). Figura 2. 9 Três maneiras de organizar uma memória de 9 6 bits. Endereço Endereço 1 célula Endereço o............................................ o.................................................................. o.................................................................................... 2............................................ 2................................................................. 2.................................................................................... 3 _______ 3--------- 3-------------- 4......,..................................... 4................................................................. 4.................................................................................... 5............................................ 5................................................................. 6............................................ 6................................................................. 7-- --- ? _________ -12b1ts­ 8............................................ (b) 9-- --- 5.................................................................................... 6b1ts----(c) 10............................................ 11 -- --- - bts- (a) Computadores que usam o sistema de números binários (incluindo notação octal ou hexadecimal para números binários) expressam endereços de memória como números binários. Se um endereço tiver m bits, o número máximo de células endereçáveis é 2"'. Por exemplo, um endereço usado para referenciar a memória da Figura 2.9(a) precisa de no mínimo 4 bits para expressar todos os números de O a 11. Contudo, um endereço de 3 bits é suficiente para as figuras 2.9(b) e (c). O número de bits no endereço determina o número máximo de células diretamente endereçáveis na memória e é independente do número de bits por célula. Uma memória com 2l2 células de 8 bits cada e uma memória com 212 células de 64 bits cada precisam de endereços de 12 bits. A Figura 2.10 mostra o número de bits por célula para alguns computadores que já foram vendidos comer­ cialmente. A significãncia da célula é que ela é a menor unidade endereçável. Há poucos anos, praticamente todos os fabri­ cantes de computadores padronizaram células de 8 bits, que é denominada um byte. O termo octeto também é usado. Bytes são agrupados em palavras. Um computador com uma palavra de 32 bits tem 4 bytes/palavra, enquanto um computador com uma palavra de 64 bits tem 8 bytes/palavra. A significãncia de uma palavra é que grande parte das instruções efetua operações com palavras inteiras, por exemplo, somando duas palavras. Assim, uma máquina de 32 bits terá registradores de 32 bits e instruções para manipular palavras de 32 bits, enquanto uma máquina de 64 bits terá registradores de 64 bits e instruções para movimentar, somar, subtrair e, em geral, manipular palavras de 64 bits. Capítulo 2 Figura 2.1 O Organização de sistemas de computadores 59 Número de bits por célula poro alguns computadores comerciais historicamente interessantes. Computador Burroughs B1700 2.2.3 IBM PC 8 DEC PDP-8 12 IBM 1130 16 DEC PDP-15 18 XDS 940 24 Electrologica X8 27 XDS Sigma 9 32 Honeywell 6180 36 CDC 3600 48 CDC Cyber 60 Ordenação de bytes Os bytes em uma palavra podem ser numerados da esquerda para a direita ou da direita para a esquerda. A princípio, essa opção pode parecer sem importãncia, mas, como veremos em breve, ela tem consideráveis impli­ cações. A Figura 2.ll(a) retrata parte da memória de um computador de 32 bits cujos bytes são numerados da esquerda para a direita, tal como o SPARC ou os grandes mainframes da IBM. A Figura 2.ll(b) dá uma represen­ tação análoga de um computador de 32 bits que usa uma numeração da direita para a esquerda, como a família Intel. O primeiro sistema, no qual a numeração começa na ordem "grande", isto é, na ordem alta, é denominado computador big endian, ao contrário do little endian da Figura 2.1 l(b). Esses termos se devem aJonathan Swift, cujo livro As viagens de Gulhver satirizava os políticos que discutiam por que uns eram a favor de quebrar ovos no lado grande (big end) e outros achavam que deviam ser quebrados no lado pequeno (little end). O termo foi empregado pela primeira vez na arquitetura de computadores em um interessante artigo de Cohen (1981). Figura 2.11 (o) Memória big endian. (b) Memória little endian. Endereço o o 4 Bigendian Little endian Endereço o 1 2 3 3 2 1 o 4 5 6 7 7 6 5 4 4 8 8 9 10 11 11 10 9 8 8 12 12 13 14 15 15 14 13 12 12 -­ Byte - Palavra de 32 bits - (a) -­ Byte -- Palavra de 32 bits - (b) É importante entender que, tanto no sistema big endian como no little endian, um inteiro de 32 bits com o valor numérico de, digamos, 6 é representado pelos bits 110 nos três bits mais à direita (baixa ordem) de uma palavra e os zeros nos 29 bits da esquerda. No esquema big endian, os bits 110 estão no byte 3 (ou 7, ou 11 etc.), enquanto no esquema little endian eles estão no byte O (ou 4, ou 8 etc.). Em ambos os casos, a palavra que contém esses inteiros tem endereço O. 60 Organização estruturada de computadores Se os computadores somente armazenassem inteiros, não haveria nenhum problema. Contudo, muitas apli­ cações requerem uma mistura de inteiros, cadeias ele caracteres e outros tipos de dados. Considere, por exemplo, um simples registro de pessoal composto de uma cadeia (nome elo empregado) e dois inteiros (idade e número do departamento). A cadeia é encerrada com 1 ou mais bytes ele valor O para completar uma palavra. Para o registro "Jim Smith, idade 21, departamento 260 (1 x 256 + 4 = 260)", a representação big endian é mostrada na Figura 2.12(a) e a representação little endian é mostrada na Figura 2.12(b). Figura 2.12 (a) Registro de pessoal para uma máquina big endian. (b) O mesmo registro para uma máquina little endian. (e) Resultado da transferência do registro de uma máquina big endian para uma little endian. (d) Resultado da troca de bytes (e). o J s 8 H 12 16 Little endian Big endian 4 1 M M 1 Transferência de big endian para T o o o o o o 21 o o 1 4 (a) T M 1 1 M o o o o o o o o 1 (b) J little endian o s 4 H 8 21 12 4 16 T M 1 1 M J s o o o H 21 o o o 4 1 o o (c) Transferência e troca J s 1 M M 1 o T o o o o o o 21 o o 1 4 H 4 8 12 16 (d) Ambas as representações são boas e internamente consistentes. Os problemas começam quando uma elas máquinas tenta enviar um registro à outra por uma rede. Vamos supor que a big endian envie o registro à little endian um byte por vez, começando com o byte O e terminando com o byte 19. (Vamos ser otimistas e supor que os bits elos bytes não sejam invertidos pela transmissão porque, assim como está, já temos problemas suficientes.) Portanto, o byte O da big endian entra na memória ela little endian no byte O e assim por diante, como mostra a Figura 2.12(c). Quando a little endian tenta imprimir o nome, ela funciona bem, mas a idade sai como 21 x 224 e o depar­ tamento também fica errado. Essa situação surge porque a transmissão inverteu a ordem dos caracteres em uma palavra, como deveria, mas também inverteu os bytes de um inteiro, o que não deveria. Uma solução óbvia é fazer o software inverter os bytes de uma palavra após tê-la copiado. Isso leva à Figura 2.12(d), que faz os dois inteiros se saírem bem, mas transforma a cadeia em "MlJTlMS" e deixa o "H" perdido no meio do nada. Essa inversão da cadeia ocorre porque, ao ler a cadeia, o computador lê primeiro o byte O (um espaço), em seguida o byte 1 (M), e assim por diante. Não há nenhuma solução simples. Um modo que funciona - porém, ineficiente - é incluir um cabeçalho na frente de cada item de dado, que informa qual tipo de dado vem a seguir (cadeia, inteiro ou outro) e qual é seu comprimento. Isso permite que o destinatário efetue apenas as conversões necessárias. De qualquer modo, é preciso deixar claro que a falta de um padrão para a ordenação de bytes é um grande aborrecimento quando há troca de dados entre máquinas diferentes. 2.2.4 Códigos de correção de erro Memórias de computador podem cometer erros ele vez em quando devido a picos de tensão na linha elé­ trica, raios cósmicos ou ouu·as causas. Para se resguardar contra esses erros, algumas memórias usam códigos de detecção de erros ou códigos de correção de erros. Quando são usados, bits extras são adicionados a cada palavra de memória de modo especial. Quando uma palavra é lida na memória, os bits extras são verificados para ver se ocorreu um erro. Para entender como os erros podem ser manipulados, é preciso ver de perto o que é, na realidade, um erro. Suponha que uma palavra de memória consista em m bits de dados, aos quais serão adicionados r bits redundantes, Capítulo 2 Organização de sistemas de computadores 67 Um DIMM fisicamente menor, denominado 50-DIMM (Small Outline DIMM - DIMM pequeno perfil) é usado em notebooks. Pode-se adicionar um bit de paridade ou correção de erro aos DIMMS, porém, visto que a taxa média de erro de um módulo é de um erro a cada dez anos, na maioria dos computadores de uso comum e doméstico, detecção e correção de erros são omitidas. 2.3 Memória secundária Seja qual for o tamanho da memória principal, ela sempre será muito pequena. As pessoas sempre querem armazenar mais informações do que a memória pode conter, ainda mais porque, à medida que a tecnologia melho­ ra, elas começam a pensar em armazenar coisas que antes estavam inteiramente no reino da ficção científica. Por exemplo, como as diretrizes orçamentárias do governo dos Estados Unidos obrigam as agências governamentais a gerar sua própria receita, podemos imaginar a Biblioteca do Congresso decidindo digitalizar e vender todo o seu conteúdo como um artigo de consumo ("Todo o conhecimento humano por apenas US$ 299,95"). Cerca de 50 milhões de livros, cada qual com 1 MB de texto e 1 MB de figuras comprimidas, requerem armazenagem de 10 14 bytes ou 100 terabytes. Armazenar todos os 50 mil filmes produzidos até agora também faz parte desse carnaval. Essa quantidade de informação não caberá na memória principal, ao menos por algumas décadas. 2.3.1 Hierarquias de memória A solução tradicional para armazenar grandes quantidades de dados é uma hierarquia de memória, como ilustrada na Figura 2.18. No topo, estão os registradores da CPU, que podem ser acessados à velocidade total da CPU. Em seguida, vem a memória cache, que está na faixa de 32 KB a alguns megabytes. A memória vem logo após, hoje com tamanhos que vão de 1 GB para sistemas básicos até centenas de gigabytes na extremidade mais alta. Depois, vêm os discos magnéticos, o atual burro de carga da armazenagem permanente. Por fim, temos fitas magnéticas e discos ópticos para armazenagem de arquivos. À medida que descemos na hierarquia, três parâmetros aumentam. Primeiro, o tempo de acesso fica maior. Os registradores da CPU podem ser acessados em um nanossegundo ou menos. Memórias cache demoram um pequeno múltiplo dos registradores da CPU. Acessos à memória principal normalmente levam 10 nanossegundos. Agora, vem uma grande lacuna, porque tempos de acesso a discos são no mínimo 10 vezes mais lentos para discos em estado sólido e centenas de vezes mais lentos para discos magnéticos. Acessos a fitas ou discos óticos podem ser medidos em segundos se a mídia tiver de ser buscada e inserida no drive. Figura 2.18 Hierarquia de memória de cinco níveis. Memória principal Disco magnético ou de estado sólido Fita Disco ótico 68 Organização estruturada de computadores Segundo, a capacidade de armazenagem aumenta à medida que descemos na hierarquia. Registradores de CPU são bons para, talvez, 128 bytes, caches para algumas dezenas de megabytes, memórias principais para alguns gigabytes, discos em estado sólido para centenas de gigabytes e discos magnéticos para terabytes. Fitas e discos ópticos costumam ser mantidos off-line, portanto, sua capacidade é limitada apenas pelo orçamento do usuário. Terceiro, o número de bits por dólar gasto aumenta descendo a hierarquia. Embora os preços atuais mudem com rapidez, a memória principal é medida em dólares/megabyte, o disco em estado sólido em dólares/gigabyte e a armazenagem em disco magnético e fita em centavos/gigabyte. Já vimos registradores, cache e memória principal. Nas seções seguintes, vamos examinar os discos magnéticos e os discos em estado sólido; depois, estudaremos os discos óticos. Não estudaremos fitas porque são raramente usadas, exceto para cópias de segurança (backup) e, de qualquer forma, não há muita coisa a dizer sobre elas. 2.3.2 Discos magnéticos Um disco magnético é composto de um ou mais pratos de alumínio com um revestimento magnetizável. No início, esses pratos tinham até 50 cm de diãmetro, mas agora têm normalmente de 3 a 9 cm, e discos para notebooks já estão com menos de 3 cm e continuam encolhendo. Um cabeçote de disco que contém uma bobina de indução flutua logo acima da superfície, apoiado sobre um colchão de ar. Quando uma corrente positiva ou negativa passa pelo cabeçote, ele magnetiza a superfície logo abaixo dele, alinhando as partículas magnéticas para a esquerda ou para a direita, dependendo da polaridade da corrente. Quando o cabeçote passa sobre uma área magnetizada, uma corrente positiva ou negativa é induzida nele, o que possibilita a leitura dos bits armazenados antes. Assim, à medida que o prato gira sob o cabeçote, uma corrente de bits pode ser escrita e mais tarde lida. A geometria de uma trilha de disco é mostrada na Figura 2.19. Figuro 2.19 Porção de uma trilho de disco. Dois setores são ilustrados. Lacuna de Braço do disco é 1-2 micra Capítulo 2 Figura 2.45 Bits 1 1 1 Organização de sistemas de computadores O esquema de codificação UTF-8. Byte 1 1 1 Byte 2 1 Byte3 1 Byte 4 1 Byte 5 7 Oddddddd 11 110ddddd 10dddddd 16 1110dddd 10dddddd 10dddddd 21 11110ddd 10dddddd 10dddddd 10dddddd 26 111110dd 10dddddd 10dddddd 10dddddd 10dddddd 31 1111110d 10dddddd 10dddddd 10dddddd 10dddddd 1 111 Byte6 1 1 10dddddd 1 O UTF-8 tem uma série de vantagens em relação ao Unicode e outros esquemas. Primeiro, se um programa ou documento utiliza apenas caracteres que estão no conjunto ASCII, cada um pode ser representado em 8 bits. Segundo, o primeiro byte de cada caractere UTF-8 determina exclusivamente o número de bytes deste. Terceiro, os bytes de continuação em um caractere UTF-8 sempre começam com 10, enquanto o byte inicial nunca começa assim, tornando o código autossincronizável. Em particular, no caso de um erro de comunicação ou memória, sempre é possível prosseguir e achar o início do próximo caractere (supondo que ele não tenha sido danificado). Em geral, o UTF-8 é usado para codificar apenas os 17 planos Unicode, embora o esquema tenha muito mais de 1.114.112 pontos de código. Porém, se os antropólogos descobrirem novas tribos em Nova Guiné (ou em outro lugar) cujos idiomas ainda não sejam conhecidos (ou se, no futuro, fizermos contato com extraterrestres), o UTF-8 conseguirá acrescentar seus alfabetos ou ideogramas. 2.5 Resumo Sistemas de computadores são compostos por três tipos de componentes: processadores, memórias e dispo­ sitivos de EIS. A tarefa de um processador é buscar instruções, uma por vez, em uma memória, decodificá-las e executá-las. O ciclo busca-decodificação-execução pode ser descrito como um algoritmo e, na verdade, às vezes ele é executado por um interpretador de software que roda em um nível mais baixo. Para ganhar velocidade, muitos computadores agora têm um ou mais pipelines (paralelismo) ou têm um projeto superescalar com múltiplas uni­ dades funcionais que funcionam em paralelo. Um pipeline permite que uma instrução seja dividida em etapas e as etapas para diferentes instruções sejam executadas ao mesmo tempo. Múltiplas unidades funcionais é outra forma de obter paralelismo sem afetar o conjunto de instruções ou a arquitetura visível ao programador ou compilador. Sistemas com vários processadores são cada vez mais comuns. Computadores paralelos incluem processa­ dores matriciais, nos quais a mesma operação é efetuada sobre múltiplos conjuntos de dados ao mesmo tempo; multiprocessadores, nos quais várias CPUs compartilham uma memória; e multicomputadores, nos quais cada um dos vários computadores tem sua própria memória, mas se comunicam passando mensagens. Memórias podem ser categorizadas como primárias ou secundárias. A memória primária é usada para conter o programa que está sendo executado no momento. Seu tempo de acesso é curto - algumas poucas dezenas de nanos­ segundos, no máximo - e independe do endereço que está sendo acessado. Caches reduzem ainda mais esse tempo de acesso. Eles são necessários porque as velocidades do processador são muito maiores do que as velocidades da memória, o que significa que ter de esperar pelos acessos à memória o tempo todo atrasa bastante a execução do processador. Algumas memórias são equipadas com códigos de correção de erros para aumentar a confiabilidade. Memórias secundárias, ao contrário, têm tempos de acesso muito mais longos (milissegundos ou mais) e dependem da localização dos dados que estão sendo lidos ou escritos. Fitas, discos magnéticos e discos ópticos são as memórias secundárias mais comuns. Há muitas variedades de discos magnéticos, incluindo discos IDE, discos SCSI e RAIDs. Entre os discos ópticos figuram CD-ROMs, CD-Rs, DVDs e Blu-rays. 112 Organização estruturada de computadores Dispositivos de E/S são usados para transferir informações para dentro e para fora do computador. Então, são conectados ao processador e à memória por um ou mais barramentos. Alguns exemplos são terminais, mouses, impressoras e modems. A maioria dos dispositivos de E/S usa o código de caracteres ASCll, embora o Unicode também seja usado e o UTF-8 esteja ganhando rápida aceitação à medida que a indústria de computadores se volta mais para a Web. Problemas 1. Considere a operação de uma máquina que tenha o caminho de dados da Figura 2.2. Suponha que carregar os registradores de entrada da ULA leve 5 ns, executar a ULA demore 10 ns e armazenar o resultado de volta no registrador de rascunho tome 5 ns. Qual é o número máximo de MIPS de que essa máquina é capaz na ausência de paralelismo Esse computador tem uma memória ternária, isto é, cada byte (tryte?) consiste em 8 trits, sendo que um trit contém um O, um 1 ou um 2. Quantos trits são necessários para conter um número de 6 bits? Escreva uma expressão para o número de trits neces­ sário para conter n bits. 8. (pipelining)? 2. 3. 4. 5. 6. 7. Qual é a finalidade da etapa 2 na lista da Seção 2.1.2? O que aconteceria se essa etapa fosse omitida? No computador 1, o tempo de execução de todas as instruções é 10 ns. No computador 2, o tempo de execução é de 5 ns. Você pode afirmar com certeza que o computador 2 é mais rápido ? Discuta sua resposta. Imagine que você está projetando um computador de um só chip para um sistema embutido. O chip conte­ rá toda sua memória e executará à mesma velocidade da CPU sem penalidade de acesso. Examine cada um dos princípios discutidos na Seção 2.1.4 e diga por que são tão importantes (admitindo que ainda se deseje alto desempenho). Para competir com a prensa impressora recentemen­ te inventada, um mosteiro medieval decidiu produzir em massa livros escritos em papel, reunindo um vasto número de escribas em uma grande sala. O superior do mosteiro então ditaria a primeira palavra do livro a ser produzido e todos os escribas a escre­ veriam. Em seguida, ele ditaria a segunda palavra e todos os escribas a escreveriam. Esse processo seria repetido até que o livro inteiro fosse lido e copiado. Com qual dos sistemas de processador paralelo dis­ cutidos na Seção 2.1.6 esse sistema é mais parecido? À medida que descemos na hierarquia de memória de cinco níveis discutida no texto, o tempo de aces­ so aumenta. Faça uma estimativa razoável da razão entre o tempo de acesso por disco óptico e o tempo de acesso ao registrador da memória. Suponha que o disco já esteja on-line. Sociólogos podem obter três respostas possíveis para uma típica pergunta de levantamento como "Você acredita em Papai Noel?" - ou seja: sim, não, nenhu­ ma opinião. Tendo isso em mente, a Sociomagnetic Computer Company decidiu construir um com­ putador para processar os dados do levantamento. Calcule a taxa de dados do olho humano usando as seguintes informações. O campo visual consiste em cerca de 106 elementos (pixeis). Cada pixel pode ser reduzido a uma sobreposição das três cores pri­ márias, cada uma com 64 intensidades. A resolução temporal é de 100 ms. 9. Calcule a taxa de dados do ouvido humano usando as seguintes informações. As pessoas podem ouvir frequências de até 22 kHz. Para capturar toda a informação em um sinal sonoro a 22 kHz, é preciso amostrar o som a duas vezes aquela frequência, isto é, a 44 kHz. Uma amostra de 16 bits provavelmente basta para capturar a maioria das informações auditi­ vas (isto é, o ouvido não pode distinguir mais do que 65.535 níveis de intensidade). 10. As informações genéticas de todos os seres viventes estão codificadas como moléculas de DNA. Uma molécula de DNA é uma sequência linear dos quatro nucleotídeos básicos: A, C, G e T. O genoma humano contém cerca de 3 x 109 nucleotídeos na forma de mais ou menos 30 mil genes. Qual é a capacidade total de informações (em bits) do genoma humano? Qual é a capacidade máxima de informações (em bits) do gene médio? 11. Certo computador pode ser equipado com 1.073.741.824 bytes de memória. Por que um fabricante escolheria tal número peculiar, em vez de um número fácil de lem­ brar, como 1 milhão? 12. Invente um código de Hamming de paridade par de 7 bits para os dígitos O a 9. 13. Invente um código para os dígitos O a 9 cuja distância de Hamming seja 2. 14. Em um código de Hamming, alguns bits são "des­ perdiçados" no sentido de que são usados para verificação, e não para informação. Qual é a porcen­ tagem de bits desperdiçados para mensagens cujo

Use Quizgecko on...
Browser
Browser