Capítulo 2. Representação de texto

Documentos relacionados
REPRESENTAÇÃO BINÁRIA. Sistemas de Numeração e Álgebra de Boole SNA0001

Representação da Informação

Circuitos Lógicos Aula 5

Informática I. Aula Aula 22-12/11/2007 1

Engenharia Civil. Representação da Informação. Introdução à Computação

Lic. Engenharia Informática

Representação das Informações

Aula 10: Outras Formas de Representação

o semestre

Introdução à Ciência da Computação

Mestrado Integrado Engª. Informática

Mestr. Integr. Engª. Informática

Informática Básica aula 06

Mestrado Integrado Engª. Informática

MATA49 Programação de Software Básico

Fundamentos de TI. Aula07_Representação de dados pelo Computador.doc 1

Aula 10: Outras Formas de Representação

HARDWARE SISTEMA NUMÉRICO E CODIFICAÇÃO. Wagner de Oliveira

Neste tópico veremos:

GFM015 Introdução à Computação

Disciplina: Introdução à Engenharia da Computação

Sistemas Digitais Representação Digital de Informação

Representação de Dados e Sistemas de Numeração

Fundamentos de Programação. Introdução

14/03/2011. A INFORMAÇÃO E SUA REPRESENTAÇÃO (Parte I)

Representação Digital da Informação II

Introdução à Informática

PCS 3115 Sistemas Digitais I Códigos Prof. Dr. Marcos A. Simplicio Jr.

Os Computadores. A Informação nos Computadores

Introdução à Computação: Sistemas de Numeração

Sistemas Digitais Representação Digital de Informação

PCS 3115 (PCS2215) Sistemas Digitais I. Módulo - Códigos. Prof. Dr. Edison Spina. sobre o material do Prof. Dr. Marcos A. Simplicio Jr.

CÓDIGOS Código BCD 8421

Formatos Imagem. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Apontamentos CG Edward Angel, Sec. 8.

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

MD MATEMÁTICA DISCRETA

Sistemas Digitais (SD) Sistemas de Numeração e Códigos

7.1 Código Excesso de 3

Computação Gráfica. Prof. MSc André Y. Kusumoto

Introdução. Universidade Federal de Campina Grande. A Informação e sua Representação (Parte I) Centro de Engenharia Elétrica e Informática

Informática I. Aula 6. Aula 6-18/09/2006 1

SISTEMAS DIGITAIS (SD)

Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Fabio Bento

Estrutura de Dados Conceitos Iniciais

SISTEMAS DE NÚMERAÇÃO. Números decimais

Principais formatos de imagem

SISTEMAS DE NUMERAÇÃO (Unidade 2)

Códigos. Códigos. Bits, Bytes & etc. 9/20/10

SSC512 Elementos de Lógica Digital. Sistemas de Numeração. GE4 Bio

Módulo 5 Codificação Sistemas Multimédia Ana Tomé José Vieira

Aula 07. Representação da Informação. Prof. Dr. Dilermando Piva Jr.

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Sistemas de Numeração. Tiago Alves de Oliveira

Objectivos. Observar os tipos fornecidos pelo C++ Explicar as regras sintácticas para nomes de identificadores Estudar variáveis e constantes

Disciplina: Introdução à Engenharia da Computação

Circuitos Digitais I. Notas de Aula. Sistemas de Representação. Bases e Códigos. Bases

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Givanaldo Rocha

Sistemas numéricos e a Representação Interna dos Dado no Computador

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Puca Huachi Vaz Penna

ARQUITETURA DE COMPUTADORES

Sistemas de Numeração

Os computadores processam dados digitais ou discretos. Os dados são informação representada num sistema digital de símbolos.

Programação Estruturada

Circuitos Sequenciais I

confrontamos são de natureza analógica (e.g. A generalidade das grandezas com que nos Noções elementares de electrónica digital - 2

SEBENTA INTRODUÇÃO Á ALGORITMIA

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Informática Básica. Prof.: Clayton Maciel Costa. 1. Informática Básica -

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Linguagens de Programação

Organização de Computadores I

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho


Sistemas Numéricos e a Representação Interna dos Dados no Computador (modificado)

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

Organização de Computadores I

Unidade 4: Conversões e Cálculos em Outras Bases Prof. Daniel Caetano

Fundamentos da Compressão de Vídeo

Representação da Informação

Representação em nível de máquina

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Linguagem C: Introdução

Organização e Arquitetura de Computadores I

Unidade III. Sistemas Numéricos e o Computador

Algoritmos em Strings (compressão de texto)

TASM DEFINIÇÃO DE UMA NOVA TABELA DE CONVERSÃO

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres

Princípios de Desenvolvimento de Algoritmos MAC122

Char e Strings de Caracteres

Bits e operações. Sistemas de Computação

Sistemas de Numeração

Transcrição:

Capítulo 2 Representação de texto Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture

Objectivos Compreender como a informação textual pode ser representada em binário Compreender as motivação para a existência de múltiplas normas para representação de texto Conhecer as normas mais comuns para representar texto Saber representar um pequeno texto em binário de acordo com uma codificação e vice-versa Introdução aos Sistemas e Redes de Computadores 2

Representando caracteres [1] Código Morse Inventado por Samuel Finley Breese Morse, em 1838 Utilizado inicialmente no Telégrafo Americano Código Baudot Jean-Maurice-Émile Baudot, em 1874 Foi o primeiro código definido com o intuito de processar dados textuais Normalizado em 1932 como Alfabeto Telegráfico Internacional nº 2 Introdução aos Sistemas e Redes de Computadores 3

Representando caracteres [2] Código de Hollerith Hermann Hollerith, em 1880 Aplicado nas máquinas de tabular de Hollerith, utilizadas para processar os dados dos censos dos EUA de 1890 Primeira utilização de cartões perfurados para representar dados textuais Tecnologia base da IBM até aos anos 60 Introdução aos Sistemas e Redes de Computadores 4

Representando caracteres [3] Em aulas anteriores estudámos como representar números inteiros, com e sem sinal, em binário Estudámos também como representar números em virgula flutuante, com e sem sinal, em precisão simples e dupla Introdução aos Sistemas e Redes de Computadores 5

Representando caracteres [4] Vamos agora ver como representar outro tipo de informação (como caracteres alfanuméricos, caracteres especiais e códigos de controlo) E como pode um código binário representar simultaneamente números e caracteres? A interpretação dos dígitos binários depende do contexto Nas linguagens de programação o contexto é transmitido pelo tipo das variáveis (e.g., int, string) Introdução aos Sistemas e Redes de Computadores 6

Representando caracteres [5] Visando a troca consistente de informação entre computadores com diferentes arquitecturas, estabeleceu-se um conjunto de normas (algumas reais, outras de facto) para codificação de texto Texto simples: EBCDIC, ASCII, ISO8859, Unicode, UTF8 Texto formatado: RTF, DOC, Postscript, PDF, LaTeX, SGML Introdução aos Sistemas e Redes de Computadores 7

EBCDIC EBCDIC (acrónimo de Extended Binary Coded Decimal Interchange Code) Um código de 8 bits utilizado nos mainframe da IBM (z/os, OS/390, VM ) As regras de codificação dos caracteres em sequências de 0 s e 1 s foram inspiradas nas perfuradoras de cartões Ainda hoje é usado nos mainframe IBM Introdução aos Sistemas e Redes de Computadores 8

ASCII: Introdução [1] ASCII (acrónimo de American Standard Code for Information Interchange) Define um conjunto de regras consistentes em que sequências de 0 s e 1 s são usadas para representar caracteres Permite uniformidade na transferência de caracteres entre máquinas diferentes Introdução aos Sistemas e Redes de Computadores 9

ASCII: Introdução [2] Teve origem no tempo em que os computadores apenas conseguiam manipular códigos de 7 bits Posteriormente os computadores evoluíram para máquinas de 8 bits, pelo que um zero inicial foi adicionado à esquerda do código, para manter a compatibilidade Desta forma foi possível estender a codificação original com mais caracteres, fazendo uso do (novo) 8º bit (ISO 8859-*) Introdução aos Sistemas e Redes de Computadores 10

ASCII: Introdução [3] Os programadores podem necessitar de aceder à codificação decimal ou hexadecimal dos caracteres, pelo que é frequente encontrar-se tabelas de códigos ASCII Nos sistemas baseados no Unix (e.g., Linux) pode-se utilizar o comando man ascii para obter mais informações sobre esta codificação Introdução aos Sistemas e Redes de Computadores 11

ASCII: Tabela de códigos ASCII [3] Caracteres de controlo, como o <LF>, iniciam-se no código 01 h e vão até ao código 1F h Os códigos das letras maiúsculas e das minúsculas está separado de 20 h posições, o que significa que é fácil fazer transformações de caracteres maiúsculos em minúsculos e vice-versa através de uma simples adição/subtracção de 20 h ao respectivo código Introdução aos Sistemas e Redes de Computadores 12

ASCII estendido ISO 8859 (International Standards Organization #8859) Um esquema de codificação que disponibiliza caracteres aos definidos no código ASCII base (7 bits) ao fazer uso do 8º bit Existem vários conjuntos de códigos (subnormas), tais como ISO-8859-1 (ISO-8859-15): codifica muitos dos símbolos usados nas línguas da Europa Ocidental e do Norte ( -15 inclui o ) ISO-8859-2: codifica muitos dos símbolos usados nas línguas da Europa de Leste ISO-8859-10: codifica muitos dos símbolos usados nas línguas Nórdicas e Esquimós Introdução aos Sistemas e Redes de Computadores 13

Representando caracteres [4] A mesma sequência de dígitos binários pode representar diferentes caracteres na norma ISO-8859, pois depende da sub-norma que se está a usar! Por exemplo, se enviar a palavra acção (codificada em ISO-8859-1) para um nórdico (que usa ISO-8859-10), no lugar do ç e do ã ele verá caracteres próprios da sua língua Introdução aos Sistemas e Redes de Computadores 14

Representando caracteres [5] Como evitar a necessidade de trocar a norma ISO-8859-x que estamos a usar? Como representar os caracteres de outras línguas (e.g., asiáticas), que contém centenas ou milhares de símbolos? Uma codificação de 8 bits não chega Será que uma codificação de 16 bits (> 65.000 caracteres) chega? Será que pode ser universal? E a compatibilidade com ASCII? Introdução aos Sistemas e Redes de Computadores 15

Unicode [1] Unicode (Universal Character Set) É um conjunto de normas, das quais as mais populares são UCS-2 e UCS-4 Representação baseada numa codificação a 16 (ou 32) bits, que permite representar +65.000 (+4x10 9 ) caracteres UCS-2 permite representar uma grande percentagem dos caracteres usados em todas as línguas vivas do mundo UCS-4 permite representar todos os caracteres Desde o Windows98 que os nomes dos ficheiros são guardados em UCS-2! Introdução aos Sistemas e Redes de Computadores 16

Unicode [2] Unicode código multilingue de 16-bits, lançado nos EUA pelo Unicode Consortium (www.unicode.org) em 1980 UCS (ISO 10646) - Universal Coded Character Set (UCS) Introduzido inicialmente em 1993 UCS-4 (32-bit), UCS-2 (16-bit) Norma Representação de A ASCII 1000001 (41 h ) 8859-1 (Latin 1) 01000001 (41 h ) Unicode, UCS-2 00000000 01000001 (0041 h ) UCS-4 00000000 00000000 00000000 01000001 Introdução aos Sistemas e Redes de Computadores 17

UTF-8 [1] As normas UCS-2/4, por ser uma codificação em 16/32 bits, não são compatíveis com a norma ASCII Isto levanta sérios problemas à adopção generalizada do UCS Obrigaria à conversão do software existente que fosse baseado na codificação ASCII (quase todo ) A codificação UTF-8 tenta juntar o melhor das duas codificações Mantém a compatibilidade com o ASCII Permite escrever caracteres em Unicode Introdução aos Sistemas e Redes de Computadores 18

UTF-8 [2] UTF-8 e UTF-16 UCS/Unicode Transformation Format Método para codificar uma string de caracteres em UCS/Unicode como uma sequência de bytes UCS-4 (hex) UTF-8 (binary) U-00000000 - U-0000007F: 0xxxxxxx U-00000080 - U-000007FF: 110xxxxx 10xxxxxx U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx Introdução aos Sistemas e Redes de Computadores 19

Ficheiro de texto ASCII (.txt) Um ficheiro de texto ASCII/ANSI/Unicode é um ficheiro onde os caracteres estão representados pelos seus códigos ASCII/ANSI/Unicode respectivamente Os códigos ASCII entre 00-31 (00 h 1F h ) e 127 (7F h ) são caracteres de controlo Hello World Document Architecture ANSI Example01.txt 09 h Character Tab (HT) 0Ah Line Feed (LF) 0Dh Carriage Return (CR) 20h Space 48h H 65h e Introdução aos Sistemas e Redes de Computadores 20

Ficheiro de texto UCS-2 (.txt) Hello World Document Architecture Unicode Example02.txt Little-Endian (e.g., Intel Architecture) Hello World Document Architecture Unicode Big-Endian Example03.txt Big-Endian, Sun s SPARC, Motorola s 68K, Java VM Introdução aos Sistemas e Redes de Computadores 21

Ficheiro de texto UTF-8 (.txt) Hello World Document Architecture UTF-8 Example04.txt UTF-8 signature A codificação UTF-16 aplica os princípios da codificação UTF-8, mas com um código base de 16 bits em vez de 8 bits Porque é incompatível com o ASCII, não é muito popular no entanto é usada na codificação dos nomes dos ficheiros em Windows, por exemplo! Introdução aos Sistemas e Redes de Computadores 22

Rich Text Format (.rtf) [1] Microsoft, RTF 1.6, 1999 Um ficheiro RTF contém apenas caracteres ASCII de 7 bits Contém apenas texto não formatado, paralvras de controlo, símbolos de controlo e grupos Uma palavra de controlo é um comando RTF com uma forma especial, que será posteriormente convertida em códigos de controlo da impressora, ou em informação usada pelas aplicações que gerem os documentos Uma palavra de controlo tem a seguinte forma \LetterSequence<Delimiter> onde LetterSequence é constituída apenas por caracteres alfabéticos minúsculos Introdução aos Sistemas e Redes de Computadores 23

Rich Text Format (.rtf) [2] Exemplo 1. Hello World/Document Architecture \*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (} {\pntxta )}}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto \adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe1033\cgrid \langnp2057\langfenp1033 {Hello World \par Document Architecture \par }} Exemplo 2. Никола (uma palavra em Cirílico) \pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\* \pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}} {\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (} {\pntxta )}}\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\lang1049\langfe1033\langnp1049 \'cd\'e8\'ea\'ee\'eb\'e0\par }} Introdução aos Sistemas e Redes de Computadores 24

MS Word e PowerPoint (.doc,.ppt) Exemplo 1. Hello World/Document Architecture num ficheiro.doc Ъ Ак РїУВ ј 0 м Ъ Ъ + 0 [ Ъ Ъ 0 ј ј Ё Ё Ё Ё Щ Hello World Document Architecture.doc,.ppt são formatos binários Introdução aos Sistemas e Redes de Computadores 25

Postscript (.ps) [1] Postscript é uma linguagem de programação (ou de descrição de página) optimizada para a impressão de gráficos e texto Introduzida pela Adobe em 1985 A linguagem Alternative Printer Control Language (PCL) foi introduzida pela HP O grande objectivo da linguagem Postscript foi o de disponibilizar uma forma conveniente de descrever texto e imagens de uma forma independente do dispositivo (e da sua resolução) Necessita de um dispositivo (impressora) com um interpretador de Postscript Introdução aos Sistemas e Redes de Computadores 26

Postscript (.ps) [2] Exemplo de um programa em Postscript Introdução aos Sistemas e Redes de Computadores 27

Portable Document Format (.pdf) Formato binário para representação de documentos da Adobe s, baseado na linguagem Postscript Utilização crescente como norma de facto para representar ficheiros a imprimir (e não só) O formato PDF foi concebido de forma a preservar todas as fontes, formatação, gráficos e cores de qualquer documento, independentemente da aplicação e plataforma onde foi criado Introdução aos Sistemas e Redes de Computadores 28

Documentos Estruturados vs. Não-Estruturados Documentos com elevada estruturação são, por exemplo, os especificados em SGML, HTML e LaTeX A especificação da estrutura do documento facilita muito o processamento automático No entanto, a informação da estrutura não é dados (texto), aumentado o tamanho final do ficheiro Introdução aos Sistemas e Redes de Computadores 29

Capítulo 2 Outra informação não numérica Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture

Objectivos Compreender como se pode representar informação não numérica no computador Saber diferenciar codificações lossy de codificações lossless Conhecer diferentes normas para codificar diferentes tipos de informação não numérica Introdução aos Sistemas e Redes de Computadores 31

Como se representa Som? mp3, ogg, flac, ape, wav, Imagem? JPG, GIF, PNG, TIFF, Vídeo? mpeg-1, mpeg-2, mpeg-4, XVid, Introdução aos Sistemas e Redes de Computadores 32

O que é a compressão? E porquê? Algoritmo de compressão x bytes Rácio de compressão: R = F(o) / F (c) F(o) = tamanho do ficheiro original F(c) = tamanho do ficheiro comprimido e.g., F(o) = 10 MB, F(c) = 5 MB, R= 10 / 5 = 2:1 Porquê comprimir ficheiros? Arquivo e transmissão y bytes y < x Introdução aos Sistemas e Redes de Computadores 33

1. Compressão de dados Transformação dos dados que permite obter um conjunto de dados equivalente ao inicial mas que ocupa menos espaço Lossless Pode-se aplicar uma função (inversa) aos dados comprimidos e voltar a obter os dados na forma original Lossy Ao aplicar a função inversa aos dados comprimidos, obtém-se um conjunto de dados parecido com o original, mas não igual Introdução aos Sistemas e Redes de Computadores 34

Terminologia importante Compressão lossless Compressão lossy Compressão linear ficheiros em geral (1D) Compressão espacial imagem estática (2D) Compressão temporal vídeo (3D) Codec função específica de transformação Introdução aos Sistemas e Redes de Computadores 35

Codificação run length Sistema de codificação de dados Substitui uma sequência de símbolos pelo para (símbolo, contador) Ex: aaaaazz é codificado como (a,5) (z,2) Bom para sequências horizontais Mecanismo de compressão linear (1D) Usada nos GIF (LZW) e nos PNG (LZ77) Introdução aos Sistemas e Redes de Computadores 36

Codificação de Huffman [1] Usa um número variável de bits para codificar o alfabeto (conjunto de símbolos original) Usa um dicionário para converter o alfabeto no código e vice-versa Introdução aos Sistemas e Redes de Computadores 37

LZ77 - PKZIP Substitui uma sequência frequente com um símbolo apenas Usa uma janela de prospecção para procurar para a frente Janela de texto Símbolos Dicionário cat 01 Código anbfcatkdfjs lcatjfl Janela de prospecção Necessita de guardar e transmitir o dicionário O algoritmo LZW não necessita de dicionário gerado na Tx / Rx Introdução aos Sistemas e Redes de Computadores 38

2. Representação de imagem Associa a cada ponto um coeficiente num espaço de cor Há vários espaços de cor: RGB, HSL, Exemplos: R=24 G=134 B=216 H=146 0 R,G,B 255 S=204 L=120 0 H,S,L 255 [153,204,255], [255,153,0], [255,0,255] [255,153,0], [255,153,0], [153,204,255] [255,153,0], [153,204,255], [153,204,255] 10011001, 11001100, 11111111, 11111111, 10011001, 00000000, 11111111, 00000000, 11111111, 11111111, 10011001, 00000000, 11111111, 10011001, 00000000, 10011001, 11001100, 11111111, Introdução aos Sistemas e Redes de Computadores 39

Compressão de imagem [1] Pode libertar-se da sequência associada a uma cadeia de dados Não é necessário comprimir da esquerda para a direita e de cima para baixo! Pode definir-se zonas regulares (rectângulos/quadrados) e comprimir cada zona separadamente Introdução aos Sistemas e Redes de Computadores 40

Compressão de imagem [2] Para comprimir uma zona pode-se: Fazer a média das cores dos pontos da zona Guardar a média e depois apenas as diferenças Se a zona tiver cores próximas, as diferenças são números muito pequenos (necessitaremos de poucos bits para os representar) Introdução aos Sistemas e Redes de Computadores 41

Compressão de imagem [3] R G B Média(R) = 51 Média(G) = 208 Média(B) = 252 [153, 204, 255], [ 0, 255, 255], [ 0, 120, 240] [ 0, 255, 255], [ 0, 255, 255], [153, 204, 255] [ 0, 255, 255], [153, 204, 255], [ 0, 120, 240] {51, 208, 252} [102, 4, 3], [ -51, 47, 3], [ -51, -88, 32] [ -51, 47, 3], [ 51, 47, 3], [102, 4, 3] [ -51, 47, 3], [102, 4, 3], [ -51, -88, 32] 24, 24, 24 24, 24, 24 24, 24, 24 = 216 bits 8, 8, 8 13, 19, 24 19, 19, 15 19, 15, 24 = 176 bits!!! A matriz é muito pequena e há diferenças muito grandes de cor entre os pontos! Se juntássemos uma compressão linear ficava menor ainda Introdução aos Sistemas e Redes de Computadores 42

3. Representação de som O som pode ser descrito, por exemplo, por uma onda que varia a amplitude Onda próxima da real, mas mesmo assim diferente! É preciso aumentar a frequência da amostra! Quanto maior a frequência de amostra, mais a onda se aproxima da original! Ex: mp3 (96 kbps) realiza N amostras por segundo mp3 (192 kbps) realiza 2*N amostras por segundo (não é exactamente assim!) mp3 a 192kbps aproxima-se mais do original, logo é melhor (mais fiel ) Introdução aos Sistemas e Redes de Computadores 43