Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO À COMPUTAÇÃO ERNESTO LINDSTAEDT EDITORA UNISINOS 2010 APRESENTAÇÃO Este livro apresenta os conceitos básicos sobre computação, cobrindo tópicos que vão desde sistemas numéricos, a arquitetura dos computadores atuais, dispositivos de entrada e saída, sistemas operacionas até redes de computadores, procurando fornecer uma visão global sobre estes temas. SUMÁRIO CAPÍTULO 1 – CONCEITOS INTRODUTÓRIOS Sistemas numéricos Capacidade de representação Portas lógicas CAPÍTULO 2 – ARQUITETURA DE COMPUTADORES A memória A memória ROM A memória RAM O barramento CAPÍTULO 3 – UNIDADE CENTRAL DE PROCESSAMENTO Tecnologia CISC/RISC Algumas técnicas desenvolvidas a partir da família Pentium Um pouco da evolução da família Intel x86 CAPÍTULO 4 – DISPOSITIVOS DE ENTRADA E SAÍDA Discos rígidos Controladores Um pouco da evolução dos meios de armazenamento em massa CAPÍTULO 5 – O SISTEMA OPERACIONAL Sistema de arquivos Informações no setor de boot (setor 0) Estrutura de um arquivo de diretório FAT 12 FAT 16 O Sistema Operacional Linux Estrutura de diretórios do Sistema de Arquivos do Linux O shell Redirecionamento de entrada/saída e dutos (pipes) Filtros Segurança e permissões de acesso Utilitários de compressão e arquivamento Significado de alguns comandos UNIX CAPÍTULO 6 – REDES DE COMPUTADORES LANs: Principais características Topologia Com colisão: CSMA/CD Sem colisão (utilizando token) Protocolos de comunicação: o modelo OSI Repetidores Pontes (bridges) Switches Roteadores Conversores de protocolo (gateways) IEEE 802.3 e Ethernet Topologia Velocidade Meio físico CAPÍTULO 7 – A INTERNET Endereçamento TCP/IP – resumo Quem gerencia a numeração IP no mundo Correspondência número – nome Problemas relacionados com o crescimento da internet Intervalos de IPs livres para intranet (RFC 1918) CAPÍTULO 1 CONCEITOS INTRODUTÓRIOS Neste capítulo investigamos os conceitos básicos da computação, explorando as diversas formas como dados são representados dentro de um computador e a maneira como funciona o sistema numérico empregado por máquinas baseadas em sistemas digitais. Sistemas numéricos O método ao qual estamos habituados para representar quantidades emprega um sistema de numeração posicional. A posição ocupada por cada algarismo (ou dígito) em um número altera seu valor na ordem de uma potência de 10 para cada casa à esquerda. Por exemplo, no sistema decimal (base 10), no número 238 o algarismo 2 representa 200 (duas centenas ou 2 x 102), o dígito 3 representa 30 (três dezenas ou 3 x101) e o 8 representa 8 unidades (ou 8 x 100). Como resultado teríamos: 238 = 2x102 + 3x101 + 8x100 Capacidade de representação O sistema binário representa informação utilizando para isto somente dois estados possíveis, representados pelos valores 0 e 1. Estes caracteres recebem o nome de BIT, que corresponde a BInary digiT (digito binário). Dada uma certa quantidade de bits, pode-se determinar sua capacidade de representação usando a expressão: 2n = capacidade de representação onde n corresponde à quantidade de bits. Exemplo: 21 = 2 (só com 1 bit, temos duas possibilidades: este bit pode ser zero ou um) e assim por diante… Obs.: cada vez que 1 bit é acrescentado, a capacidade de representação dobra. Exemplos de exercícios: Qual é a quantidade mínima de bits para poder-se armazenar o número 1.300 (decimal)? 210 = 1.024 (10 bits é insuficiente, armazena do 0 ao 1.023) 211 = 2.048 (11 bits é suficiente, armazena do 0 ao 2.047) Qual é a quantidade mínima de fios para poder-se transmitir o número 738 (decimal)? 29 = 512 (insuficiente) 210 = 1.024 (suficiente) A representação de qualquer número pode ser feita pelo sistema de numeração binária, simplesmente por uma decomposição em fatores múltiplos de 2. Os circuitos digitais processam informações representadas no sistema binário, por esta razão são simples, se comparados com os circuitos analógicos, pois realizam com maior rapidez as operações lógicas e aritméticas e fornecem resultados com maior resolução e precisão. O sistema octal emprega os dígitos 0, 1, 2, 3, 4, 5, 6 e 7. O hexadecimal utiliza os dez dígitos do sistema decimal além das letras A, B, C, D, E e F, que correspondem respectivamente, ao decimais: 10, 11, 12, 13, 14 e 15, pois o sistema hexadecimal utiliza 16 dígitos diferentes para representar um número. Portas lógicas As portas lógicas são os módulos básicos dos circuitos digitais e têm como objetivo a implementação de funções lógicas booleanas, que são operações da álgebra booleana, aplicadas a variáveis lógicas. As portas lógicas funcionam através da aplicação de eletricidade sobre um metal que ao se dilatar realiza o contato com a outra extremidade. Esta mudança de estado físico leva um determinado tempo, o qual é chamado de atraso de propagação. As chamadas portas lógicas implementam as operações lógicas AND, OR, XOR e NOT da álgebra booleana, ou seja, uma porta lógica é um circuito eletrônico com o papel de produzir um sinal a partir de valores nos seus pinos de entrada. As funções lógicas básicas existentes são: AND, OR e NOT, NAND, NOR e XOR. A seguir são apresentadas as tabelas-verdade para cada função lógica. Figura 1: Tabelas-verdade para cada função lógica. CAPÍTULO 2 ARQUITETURA DE COMPUTADORES A estrutura bem como o funcionamento dos computadores digitais são baseados num modelo elaborado pelo matemático húngaro e cientista da computação John von Neumann na década de 1940. Este modelo é chamado de arquitetura de von Neumann e consiste de alguns poucos elementos interconectados, que quando considerados em conjunto constituem a forma como os computadores atuais estão organizados. Os principais elementos desta arquitetura são a unidade de controle (UC), a unidade lógico-aritmética (ULA), a memória, o barramento (também chamado de bus, em inglês) e as interfaces para dispositivos de entrada e saída (E/S). A unidade de controle é responsável pela coordenação dos demais elementos, determinando qual componente da arquitetura deve atuar e quando. Na ULA são realizados todos os cálculos artiméticos bem como operações de comparação. Com a evolução da computação, a UC e a ULA acabaram encapsuladas em um único elemento denominado de unidade central de processamento, a UCP (ou CPU, da sigla em inglês). Figura 2: A arquitetura de Von Neumann. Os dados e as instruções do programa que está sendo executado ficam armazenadas na memória, que é acessada pela CPU através do barramento. A CPU busca na memória tanto as instruções que deve executar como os dados associados a estas instruções, e pode também armazenar na memória o resultado da computação por ela realizada, como, por exemplo, o resultado de uma operação de soma de dois valores que estavam nesta memória. O barramento pode ser considerado, grosso modo, uma série de vias paralelas através da qual os dados, na forma de bits, são transmitidos. A quantidade de vias paralelas (isto é, a largura do barramento) e a sua frequência de funcionamento (ou o “ritmo” com o qual os dados são transmitidos) são os dois principais fatores que determinam o desempenho do barramento. Esta é uma consideração relevante, pois o desempenho do barramento exerce uma influência muito grande no desempenho da arquitetura, uma vez que os dados e as instruções que estão sendo executadas devem passar necessariamente pelo barramento para irem da memória para a CPU e vice- versa. O fato do barramento representar um fator limitante para o desempenho do computador é conhecido como gargalo de Von Neumann, e é importante ainda hoje, pois as CPUs atuais possuem uma capacidade de processamento significativamente maior que a capacidade de vazão (ou taxa de transferência ou ainda throughput) do barramento. Ainda com relação ao barramento,este pode ser diferenciado em dois tipos principais: o barramento do sistema, responsável pela comunicação entre a CPU e a memória, e o barramento de entrada e saída, dedicado à transferência de dados com os dispositivos de entrada e saída. Os dispositivos de entrada e saída de dados, também chamados de periféricos, permitem que dados do meio externo sejam armazenados na memória e processados pela CPU, e também possibilitam que dados armazenados sejam apresentados ao meio externo. O monitor e a impressora são dois exemplos de dispositivos de saída de dados, enquanto que o scanner, o teclado, o mouse, o microfone e a webcam são exemplos de dispositivos de entrada de dados. Com a evolução tecnológica alguns dispositivos assumem o papel tanto de entrada como de saída de dados, como é o caso de telas de monitor sensíveis ao toque (touchscreens). Nas seções a seguir serão detalhados os principais componentes desta arquitetura. A memória A memória é o dispositivo responsável pelo armazenamento dos dados que participam da computação. A memória pode ser classificada inicialmente como sendo primária (ou principal) ou então secundária (também chamada de auxiliar ou ainda memória de massa). A memória principal é aquela que via de regra é implementada por chips presentes na placa-mãe ou em pentes de memória, enquanto que a memória secundária é representada por meios de armazenamento magnético (como em discos rígidos), ótico (como no CD e no DVD) ou estado sólido (como na memória Flash e unidades SSD). Nesta seção será focada a memória primária. Com relação à memória principal, podem-se distinguir dois tipos de memória, no que diz respeito à volatilidade dos dados: na memória RAM (Random Access Memory), os dados somente são mantidos pelos circuitos de memória enquanto estes forem supridos com energia elétrica; já na memória do tipo ROM (Read Only Memory) não é necessário este suprimento de energia elétrica, não havendo perda de dados caso seja interrompido este suprimento. Outra diferença importante entre estes dois tipos de memória é que a memória RAM pode ter seu conteúdo modificado constantemente, sendo por isso usada para armazenar as instruções que a CPU deve executar, por exemplo. A memória ROM geralmente não pode ter seu conteúdo modificado, sendo este gravado “em fábrica”. Com o tempo surgiram variações de memória ROM que permitem que esta tenha seu conteúdo alterado, mas neste caso o processo de gravação é bem mais lento e complexo se comparado com a escrita em memória RAM. De maneira simplificada, a comunicação entre CPU e memória ocorre através de um barramento, onde parte de suas vias é encarregada do tráfego de dados, outra parte é responsável pelo tráfego de endereços de memória e um terceiro conjunto de vias transmite informações de controle. Cada posição da memória é referenciada por um endereço, sendo que neste endereço de memória está armazenado um valor resultado de uma computação realizada pela CPU, por exemplo. Figura 3: Os diferentes grupos de vias do barramento: dados, endereços e controle. Caso a CPU deseje armazenar na memória um dado resultante de uma computação, ela irá colocar o dado na parte de dados do barramento, enquanto que na parte de endereço ela irá colocar a posição onde este dado deve ser armazenado na memória, e nas vias de controle a CPU colorá a informação de que esta é uma operação de escrita na memória. A título de exemplo, se a parte de endereços do barramento for composta por 20 vias, então a memória só poderá ter 220 (isto é, um mega) posições endereçáveis, sendo o endereço inicial correspondente à posição zero e o último endereço correspondente à posição 1048575, de um total de 1048576 endereços de memória (ou um mega de posições de memória). A memória ROM A primeira forma de ROM desenvolvida foi a ROM de estado sólido, em que os circuitos já eram configurados durante sua fabricação para codificar (representar) os dados. Um conteúdo tipicamente gravado em ROM é o firmware, que geralmente representa um programa e dados voltados para o controle de dispositivos eletrônicos. A memória PROM (Programmable ROM) desenvolvida no meio da década de 1950 permite que o conteúdo da memória seja modificado através de pulsos elétricos de alta voltagem, embora este processo só possa ser realizado uma única vez. No início da década de 1970, um avanço importante foi o desenvolvimento da EPROM (Erasable PROM), que pode ter seu conteúdo apagado através do uso de luz ultravioleta. O processo de apagamento implica o uso de uma lâmpada que emitirá este tipo de luz através de uma pequena janela (de quartzo) no chip, por onde os circuitos de memória ficam expostos a radiação eletromagnética. A gravação é realizada também com o uso de pulsos elétricos de alta voltagem. Uma vez concluída a gravação, a janela é coberta com material opaco a fim de preservar o conteúdo da memória. Figura 4: Um chip de memória EPROM. A memória EEPROM (Electrically Erasable PROM) ou E2PROM permite que o contéudo seja regravado diversas vezes, sem haver a necessidade do uso de luz ultravioleta, empregando-se somente pulsos elétricos da ordem de 12 a 20 V. Uma forma mais recente de EEPROM desenvolvida na década de 1980 pela Toshiba é a memória Flash. É baseada no uso de portas lógicas do tipo NOR ou NAND, e permite no seu atual estágio de desenvolvimento até um milhão de regravações. É muito popular como dispositivo de memória de massa na forma de pendrives, por exemplo. A BIOS (Basic Input Output System) é um exemplo de chip de memória ROM presente nas placas-mãe dos microcomputadores e que contém uma série de rotinas básicas de gravação e leitura em dispositivos periféricos (como a rotina de escrita de um caracter na tela do console em modo texto, por exemplo). A BIOS possui também uma rotina chamada POST (Power On Self Test), que é responsável pelo autoteste do hardware do computador no momento em que este é ligado, identificando a configuração da máquina, inicializando o chipset da placamãe, detectando quanto de memória RAM está instalada, verificando se o teclado está conectado, iniciando a carga do sistema operacional (se houver) etc. Figura 5: Um chip de BIOS da AMI. O programa de Setup é outro elemento que faz parte da BIOS e é através dele que o usuário pode configurar alguns aspectos importantes do funcionamento do computador, como a frequência de funcionamento de alguns dispositivos como barramentos e memórias, embora esta capacidade de configuração dependa de diversos fatores e os fabricantes a tenham diminuído significativamente nos últimos anos. Figura 6: A tela de Setup de uma BIOS AMI. Os dados da configuração do Setup são geralmente armazenados em memória CMOS presente na placa-mãe (integrada ao chipset), e que é usualmente alimentada por uma bateria. A memória CMOS (Complementary Metal-Oxide-Semiconductor) foi desenvolvida na década de 1960 e tem como características relevantes o baixo consumo de energia e uma alta imunidade a ruídos, sendo também empregada para a implementação de memórias SRAM. Os principais fabricantes de chips BIOS (AMI-American Megatrends, Phoenix e Award) deixaram de empregar a tecnologia ROM clássica para ao longo dos anos migrar para as EPROMs (década de 1980 e primeira metade da década de 1990) e finalmente para a tecnologia Flash. Isso confere uma flexibilidade maior para o usuário final, que pode com o auxílio de software específico (flasher) atualizar a BIOS de seu computador para a versão mais recente disponibilizada pelo fabricante. A especificação SMBIOS (System Management BIOS) define rotinas e estruturas de dados que devem ser suportadas pela BIOS de tal modo que um aplicativo possa solicitar informações de configuração para a BIOS, que irá fornecer estes dados para o programa solicitante, permitindo dessa forma um gerenciamento automatizado do computador. Antes da SMBIOS este conjuntode rotinas era padronizado através de outra especificação, denominada DMI (Desktop Management Interface). A partir dos computadores equipados com CPU 80386 passou a ser utilizada uma técnica conhecida como shadowing, em que o conteúdo da BIOS era copiado para uma porção da memória RAM (mais rápida que a ROM), e, toda vez que rotinas da ROM (isto é, da BIOS) tivessem que ser executadas, eram chamadas as cópias encontradas nesta região da memória RAM. A memória RAM Uma das primeiras formas de implementação de memória RAM deu-se através das memórias de núcleo de ferrite desenvolvidas no final da década de 1940, que empregavam pequenos anéis de cerâmica perpassados por finos fios de cobre. Apesar de possuir um desempenho inferior se comparada às tecnologias posteriores como a RAM dinâmica, a memória de núcleo de ferrite foi empregada até meados dos anos 1980, devido ao fato de ser uma memória não volátil e ser também bastante imune à radiação. Os tempos de acesso chegaram a ser de 600 ns nas implementações da década de 1970. Figura 7: Uma matriz de memória RAM de núcleo de ferrite com 1 KB. Com o abandono progressivo das memórias de núcleo de ferrite e a adoção maciça dos chips baseados em silício, a tecnologia de memórias RAM desembocou nas memórias SRAM (Static RAM) e DRAM (Dynamic RAM). Alguns conceitos são importantes no contexto destas tecnologias: Tempo de acesso: é o tempo decorrido desde o momento em que o circuito de memória recebe o endereço a ser acessado até o momento em que o dado correspondente a este endereço esteja disponibilizado nas vias de dados do barramento do sistema. Geralmente é medido em nanossegundos (1 nanossegundo corresponde a 1 bilionésimo de segundo); Operação de refresh: as informações armazenadas em células de memória DRAM necessitam ser reforçadas periodicamente (a cada poucos milissegundos) através de cargas elétricas, caso contrário o conteúdo desta células é perdido. Wait states: as primeiras gerações de memória DRAM tinham um tempo de acesso muito alto, o que obrigava a CPU a suspender suas operações durantes alguns ciclos (chamados então de wait states) para permitir que os circuitos de memória conseguissem fornecer os dados solicitados pela CPU. Tempo de ciclo: é o tamanho do ciclo, medido em nanossegundos; se um barramento funciona a 100MHz, seu tempo de ciclo é de 1/100.000, o que corresponde a 100 ns; já se a frequência for de 166MHz, o tempo de ciclo será de aproximadamente 6 ns. Chips de memória são atualmente montados nos chamados pentes de memória, e são organizados em módulos. Por exemplo: numa memória descrita como sendo 8 x 32 , o número 8 indica a quantidade de chips encontrada no módulo enquanto que o número 32 indica a capacidade de cada chip (usualmente em mega ou gigabits). Neste caso específico, este pente possui 8 vezes 32 megabits, ou seja, 8 vezes 4 megabytes, o que resulta num pente de 32 megabytes. Encapsulamentos Ao longo da evolução da tecnologia de memórias, diversas formas de encapsulamento físico foram desenvolvidas, incluindo desde o formato DIP até as variantes do formato DIMM e RIMM empregadas atualmente. DIP (Dual in-line package): é a forma mais antiga de empacotamento de memória; foi empregada nas linhas IBM PC, XT e AT; eram chips encaixados em soquetes apropriados na placamãe. Figura 8: Memória com encapsulado DIP . SIPP (Single in-line pin package): empregado nos computadores que utilizavam microprocessadores 80286 e 80386, possuindo pinos dispostos em linha para encaixe na placa-mãe. Figura 9: Memória com encapsulamento SIPP . ZIP (Zig-zag in-line package): muito semelhante ao encapsulamento SIPP , mas já possuindo chips com uma densidade mais alta e portanto de maior capacidade, necessitando um número maior de pinos; isto foi solucionado através de uma disposição em zig-zag dos pinos; foi empregado nos últimos ATs e primeiros 80386. SIMM (Single in-line Memory Module): os pinos foram substituídos por terminais elétricos; existiram em duas versões, de 30 terminais (80386 e primeiros 80486) e 72 terminais (80486 e primeiras gerações Pentium); possuíam capacidade de 256 KB a 12 MB para pentes de 30 vias e de 1 MB a 64 MB para pentes de 72 vias. Os pentes de 30 vias possuíam 8 bits na parte de dados do barramento, enquanto que pentes de 72 vias possuíam 32 bits para o barramento de dados. Figura 10: Pente SIMM-30 vias e abaixo um pente SIMM-72 vias. DIMM (Double in-line Memory Module): em um pente DIMM há 168 terminais elétricos; com este tipo de encapsulamento foram fabricados os primeiros módulos de memória com tecnologia SDRAM (DRAM síncrona), correspondendo aos padrões PC-66, PC-100 e PC- 133). Nestes pentes há normalmente a presença de um pequeno chip E2PROM, denominado SPD (Serial Presence Detect), responsável pelo armazenamento de informações de configuração dos módulos de memória, como o tipo do padrão (PC-100, por exemplo) e tempos de latência. A capacidade de um pente DIMM varia entre 8 MB e 256 MB. Possuem 64 bits na parte de dados do barramento. Figura 11: Pente DIMM (168 vias); em destaque, chip SPD. DDR-DIMM (Double Data Rate DIMM): são pentes com 184 terminais (DDR) ou 240 terminais (DDR2 e DDR3) que utilizam tecnologia DDR SDRAM. Este tipo de pente possui um chanfrado duplo nas suas laterais que o diferenciam de um pente DIMM convencional. Podem apresentar capacidades de armazenamento da ordem de gigabytes. Figura 12: Pente DDR (184 vias); em destaque, chanfrados. Uma variante empregada principalmente em computadores servidores são pentes de memória com buffers, denominados buffered, fully buffered (FB-DIMM) ou registered DIMMs. Os chips adicionais (que exercem o papel de buffer) isolam os demais chips de memória do pente dos circuitos do barramento, o que permite uma maior escalabilidade aos módulos de memória, pois a interface com o barramento de memória permanece inalterada, uma vez que é projetada para comunicar-se com os buffers. O custo de pentes com buffer é maior do que o de módulos convencionais (sem buffer); além disso, o desempenho de módulos com buffer tende a ser menor, pois em função dos buffers as operações de escrita e leitura em meória tornam-se mais complexas, e consequentemente mais demoradas. Figura 13: Pente registered DIMM. RIMM (Rambus in-line Memory Module): pente com módulos de memória utilizando tecnologia licenciada pela empresa Rambus Inc. (atualmente é uma subsidiária da Intel); possuem 184 terminais e seus pentes devem sempre ocupar todos os soquetes de memória disponíveis na placa-mãe. Caso isso não aconteça, é necessária a utilização de pentes do tipo C-RIMM (Continuity RIMM) nos soquetes vagos. Há versões com 16 e 32 bits na parte de dados do barramento. Figura 14: Pente RIMM de 128 MB. SO-DIMM (Small Outline DIMM) e MicroDIMM: são encapsulamentos empregados em computadores portáteis (laptops), possuindo dimensões reduzidas. O encapsulamento SO-DIMM possui versões com 72, 100 e 144 terminais (DIMMs convencionais) e 200 e 204 terminais nas versões com tecnologia DDR. O encapsulamento MicroDIMM possui versões com 172 e 214 terminais (DDR2). Figura 15: Pente SO-DIMM. Figura 16: Pente SDRAM MicroDIMM 256 MB PC133. Figura 17: Pente DDR2-533 MicroDIMM. Bancos de memória Um banco de memória é constituído por um grupo de módulos de memória que, quando considerados em conjunto, possuem a mesma largura na parte de dados do barramento que o barramento de dados da CPU. Uma placa-mãe pode por sua vez disponibilizar uma série de bancos de memória, que devem então ser preenchidos adequadamente com pentes de memória de tal forma que a restrição acima seja satisfeita. Como exemplo, observe-se os dois casos a seguir: O processador 80486 possui um barramento externo de dados com 32 bits de largura (isto é, com 32 vias); neste caso, para completar um banco de memória são necessáriosquatro pentes SIMM-30 vias (cada pente SIMM-30 possui 8 bits na parte de dados do barramento) ou então somente um pente SIMM-72 vias, pois este possui 32 bits de largura no seu barramento de dados. O processador Pentium já nas suas primeiras gerações possuia um barramento externo de 64 bits; neste caso, para completar um banco seriam necessários dois pentes SIMM-72 vias ou então somente um pente DIMM-168 vias. O uso de bancos de memória é interessante do ponto de vista do desempenho porque acelera o acesso a dados sequenciais. Se num banco de memória está o primeiro byte a ser lido, num outro banco está localizado o byte consecutivo, o que livra o processo de leitura de tempos de espera obrigatórios quando se trata de acessos dentro de um mesmo banco. Memórias SRAM (Static RAM) Normalmente implementadas com transistores, este tipo de memória não necessita de operações de refresh para manter seu conteúdo, pois não havendo capacitores envolvidos não há perda de informação ao longo do tempo (isto é, enquanto os circuitos forem alimentados eletricamente). A figura abaixo ilustra a estrutura de uma célula de memória SRAM capaz de armazenar 1 bit de informação, e onde podese notar a presença de 6 transistores, geralmente utilizando a tecnologia MOSFET (metal–oxide–semiconductor field-effect transistor), que é uma das formas mais comuns de implementação de transistores em circuitos integrados. Figura 18: Uma célula de memória SRAM com um dos transistores em destaque (Imagem de domínio público). Em comparação com células de memória RAM dinâmicas (DRAMs), uma célula SRAM ocupa mais espaço mas é bem mais rápida, permitindo tempos de acesso muito baixos, inferiores a 10 ns. Memórias SRAM são usadas principalmente como memória cache, permitindo que dados muito acessados na RAM sejam disponibilizados em uma memória mais rápida que a DRAM. Seu custo também é maior que o de memórias DRAM. Pode aparecer em chips na placa-mãe (cache L3 e L4) ou então dentro da própria CPU (caches do tipo L1 e L2). Quando se trata de cache externo, são duas as formas mais comuns de se encontrar este tipo de memória: ou em chips com encapsulamento DIP conectados em soquetes ou soldados diretamente na placa-mãe ou então utilizando um módulo de memória COAST (Cache On A Stick), similar a um pente SIMM-72 vias, conectado a um soquete próprio próximo à CPU. Memórias DRAM (Dynamic RAM) As RAM dinâmicas foram desenvolvidas a partir do meio da década de 1960 por engenheiros da IBM e da Toshiba. Possuem uma estrutura mais simples que as memórias SRAM, armazenando 1 bit de informação através da combinação de um capacitor e um transistor. A figura abaixo apresenta uma célula DRAM, completa com dois transistores de acesso. Figura 19: Uma célula de memória DRAM com o capacitor em destaque (Imagem de domínio público). Pelo fato do estado (valor) do bit ficar armazenado no capacitor, e este ser um componente que retém carga durante um período limitado de tempo, memórias DRAM necessitam executar operações periódicas de refresh para restabelecer seu conteúdo. Seu tempo de acesso é significativamente maior que o de memórias SRAM. No início da década de 1990, chips de memória DRAM convencionais apresentavam tempos de acesso da ordem de 120 ns, evoluindo em poucos anos para tempos em torno de 50 e 60 ns, enquanto que chips SRAM apresentavam no mesmo período tempos de acesso de 6 a 9 ns. Em chips de pentes DRAM convencionais geralmente vinha impresso seu tempo de acesso, na forma de um número precedido por um traço ou barra, como na figura a seguir. Figura 20: Chip de memória DRAM com tempo de acesso em destaque. As células de memória DRAM são organizadas em formato matricial, em linhas e colunas, e na intersecção de cada linha e coluna há uma célula (1 bit). O funcionamento de um módulo de memória DRAM é ditado pelo controlador de memória e envolve dois sinais denominados RAS (Row Address Strobe) e CAS (Column Address Strobe). Quando o controlador recebe o endereço a ser acessado, este endereço é convertido para um endereço de linha e um endereço de coluna. A figura a seguir apresenta este esquema: Figura 21: Organização e funcionamento da DRAM. O processo de conversão de endereço é realizado em etapas através do disparo pelo controlador dos sinais RAS e CAS, como apresentado a seguir: Barramento de endereço recebe a posição a ser acessada; Sinal RAS é ativado, o que coloca o endereço de linha no Latch de endereço de linha; O decodificador de endereço de linha seleciona a linha da matriz de células de memória que deve ser acessada; Se for uma operação de escrita, o sinal Write Enable (habilitação de escrita) estará ativado; se for uma operação de leitura, este sinal é desativado; Sinal CAS é ativado, e o endereço de coluna é colocado no Latch de endereço de coluna; Assim que o sinal CAS esteja estabilizado, o dado correspondente à linha e às colunas selecionadas é colocado no barramento de dados (Data Bus), no caso de uma operação de leitura; se for uma operação de escrita, o dado presente no barramento de dados é armazenado nas células da linha e colunas selecionadas; estas operações são realizadas pelo circuito de Sensores e Amplificação; Os sinais RAS e CAS são desativados, a fim de que um novo ciclo de leitura/escrita possa ser realizado. O diagrama apresentado a seguir ilustra esta sequência de eventos: Figura 22: Diagrama de temporização de memórias DRAM. Os seguintes atrasos (delays) constituem um ciclo de acesso à memória: tRCD: é o RAS to CAS delay time; é o intervalo de tempo após a ativação RAS, quando o CAS é ativado; o valor do endereço de coluna já deve estar estabilizado nas linhas de endereço; tRAH: é o address hold time; é o tempo necessário que o endereço de linha deve ser mantido (retido) após a ativação do sinal RAS; tCAC: é o Tempo de Acesso de Coluna, que corresponde ao delay mínimo entre o momento em que o sinal CAS é ativado e o momento em que o dado está disponível no Data Bus; tRAC: é o Tempo de Acesso de Linha e corresponde ao tempo mínimo necessário de espera entre o momento em que o sinal RAS é ativado e o momento em que o dado desejado está no Data Bus. Outros atrasos devem também ser considerados quando se trata da temporização de memórias DRAM. Um tipo de atraso é o que deve existir entre dois acessos consecutivos à memória DRAM. Este atraso é necessário, pois como as células de memória trabalham com capacitores estes consomem um certo tempo para carga e descarga. Os atrasos denominados RAS precharge delay (tRP) e CAS precharge delay (tCP) são os tempos mínimos necessários para que estes sinais possam ser novamente ativados. Estes tempos de pré-carga ocorrem logo após estes sinais serem desativados. Uma das técnicas empregadas para acelerar o funcionamento das memórias dinâmicas foi o uso de memória paginada (Page Mode RAM), em que a memória é dividida em seções (páginas) de, por exemplo, 2 KB ou 4 KB. Os circuitos do controlador foram otimizados de tal forma que quando dados são acessados dentro de uma mesma página não havia a necessidade da introdução de tempos de espera (wait states), que só ocorriam quando era preciso acessar dados de diferentes páginas. A memória DRAM convencional possui uma interface assíncrona com o barramento do sistema (que a comunica com a CPU). Isso significa que os circuitos de memória funcionavam o mais rápido que podiam mas sem estarem atrelados ao clock do barramento do sistema, uma vez que este era mais rápido que a memória, assim como a CPU, que também trabalhava numa frequência bem superior aos circuitos de memória. Neste contexto, os tempos de acesso dos módulos de memória eram fornecidos em nanossegundos. Com o advento da DRAM síncrona, cuja frequência de operação (na interface) era a mesma do barramento do sistema, deixou-se de utilizar uma medida de tempo (como o nanossegundo) para quantificaro tempo de acesso, sendo este agora representado por ciclos de clock. A evolução tecnológica de memórias dinâmicas começou a ocorrer de forma mais acentuada a partir do fim da década de 1980 e se estendeu por toda a década de 1990. Diversas melhorias foram sendo introduzidas, resultando nas variantes conhecidas como FPM, EDO, BEDO, SDRAM, DDR SDRAM e Rambus DRAM, e que são discutidas a seguir. FPM DRAM (Fast Page Mode DRAM): Esta tecnologia foi empregada até o meio da década de 1990. A FPM existe em módulos SIMM-72, com capacidades de 2, 4, 8, 16 e 32 MB. Seu diferencial era manter o último endereço de linha acessado, o que acelerava acessos posteriores feitos à mesma linha de células de memória. O primeiro acesso (a uma linha) envolvia uma quantidade de ciclos maior que os acessos subsequentes à mesma linha. No caso da FPM, uma linha de células equivale a uma página, daí a denominação Fast Page Mode. Como exemplo, no caso do barramento trabalhando a 66 MHz, poderiamos ter os módulos de memória FPM operando com 6-3-3-3, ou seja, 6 ciclos para o primeiro acesso e 3 ciclos para cada um dos 3 acessos (na mesma linha) posteriores; com 66 MHz o tempo de ciclo é de 15 ns, e 6 ciclos correspondem portanto a 90 ns (o tempo de acesso). O tempo total levando em conta os 4 acessos seria de 90 ns + (3 vezes 45 ns), o que corresponde a 225 ns. Comparando com uma DRAM convencional, esta operaria com ciclos 6-6-6-6, correspondendo a um tempo total de 360 ns. EDO DRAM (Extended Data Out DRAM): é resultado de uma modificação nas memórias FPM que permite manter o conteúdo de uma leitura de dados no barramento de saída do chip enquanto o acesso seguinte já é iniciado pela CPU. Disponível em módulos SIMM-72 e DIMM-168. Essa modificação permite um ganho médio de desempenho de 10% em relação aos módulos FPM. Supondo uma frequência de 66 MHz, se em um pente FPM a ciclagem fosse 6-3-3- 3, em um pente EDO poderíamos ter 6-2-2-2, num total de 3 pulsos de clock a menos. Os módulos de memória EDO operavam com tempos de acesso de até 50 ns. As memórias BEDO (Burst EDO) contavam com um controlador um pouco mais sofisticado, só demandando gasto de tempo para acessar o primeiro dado, pois os 3 dados seguintes eram automaticamente disponibilizados pelo controlador no Data Bus de saída, o que gerava um ganho de tempo para acessos sequenciais da ordem de até 20% em relação a memórias EDO. SDRAM (Synchronous DRAM): No fim da década de 1990, surgiram os módulos com tecnologia SDRAM. Este tipo de memória trabalha com a mesma frequência do barramento do sistema. PC-66: São memórias SDRAM de até 10 ns que trabalhem a 66 MHz. PC-100: trabalham na frequência de operação 100 MHz e com tempo de acesso de 8 ns ou inferior. PC-133: São SDRAM que operam na frequência de 133 MHz. DDR SDRAM (Double Data Rate SDRAM): As memórias do tipo DDR (Double Data Rate) são baseadas numa nova tecnologia que permite a transmissão de dados tanto na borda de subida como na borda de descida da onda correspondente ao sinal de clock, o que na prática permite que a largura de banda (capacidade de tranferência) seja o dobro em relação às memórias SDRAM convencionais. A título de exemplo, o módulo de DDR-200 trabalha com um clock de 100 MHz, mas, como possui um aproveitamento superior da onda do sinal de clock, atinge o desempenho que seria o correspondente a uma memória SDRAM convencional que funcionasse (hipoteticamente) a 200 MHz. Daí o módulo ser batizado de DDR-200. Na tabela a seguir podem-se observar as principais características de algumas configurações típicas de módulos DDR. RDRAM (Rambus DRAM): A tecnologia RDRAM emprega um padrão de barramento proprietário. A arquitetura interna dos circuitos difere das demais, pois não utiliza uma única matriz dos capacitores e sim 16 matrizes de capacitores, possibilitando a leitura e a escrita simultâneas de até 16 dados por circuito. Como exemplo, pode possuir uma taxa de transferência de 1,6 GB/s em CPUs que operam com o barramento do sistema na frequência de 200 MHz. O barramento BARRAMENTO DO SISTEMA Conecta CPU com memória RAM (66/100 MHz) Altas velocidades geram problemas elétricos Placas de Interface em geral funcionam abaixo de 40 MHz Nos primeiros PCs era o único barramento (cpu-ram-io) BARRAMENTO DE IO (Input/Output ou Entrada/Saída) Em 1987, a Compaq introduz a arquitetura Multibus Tem sempre velocidade menor que o barr. sistema Ligação com conectores para placas de expansão Diferenças: bits transferidos, velocidade de funcionamento, taxa de transferência, … Forma básica de funcionamento Linhas para dados, controles, endereços, alimentação Cada placa ligada ao bus procura repetidamente pelos sinais de seu interesse (endereço) Quando o endereço é o da placa, esta lê comandos e dados escritos pela CPU Quando o endereço não é o da placa, esta ignora o conteúdo enviado O barramento de IO conecta-se com o barramento do sistema através de um controlador (chipset). Este pode incluir suporte a funções avançadas como o DMA (Direct Memory Access) PADRÕES DE BARRAMENTOS DE ENTRADA/SAÍDA ISA (Industry Standard Architecture) Criado em 1984 Usa 16 bits, velocidade máxima de 8 MHz, tempo de transmissão 375 ns Usa 2 –3 ciclos de clock por transferência Taxa de 8 MB/s Conecta teclado, porta serial, porta paralela, drive de disquete e unidades adaptadoras externas A CPU controla a transmissão dos dados até esta ser completada Novas transmissões precisam aguardar a transmissão corrente MCA (Micro Channel Architecture) Criado em 1987 e patenteado pela IBM, pouco utilizado, boa capacidade, inteligente Usa 32 bits, velocidade de 10 MHz, atinge 40 MB/s Usado em micros IBM EISA (Enhanced ISA) Criado em 1988/89 por um grupo de empresas (AST, Compaq, Epson, HP , NEC, Olivetti, Tandy, Wyuse e Zenith) Inteligente, bus mastering, autoconfiguração Usa 32 bits, velocidade de 8 MHz Usado em servidores VLB (Vesa Local Bus) Sucesso em 1993-1994 Usado em placas para 486 Utilizado principalmente para placas gráficas Velocidade de 33 MHz Roda diretamente com o barramento do sistema Problemas de compatibilidade PCI (Peripheral Component Interconnect) Produzido pela INTEL, barramento de alta velocidade padrão Usa 32 bits, com velocidade de 33 MHz, com taxa de transmissão de 132 MB/s, realiza transferências em um ciclo É independente de processador (uso com CPUs de 32 e 634 bits) É bufferizado, permitindo à CPU entregar ao barramento uma grande quantidade de dados e executar outra tarefa enquanto este realiza a entrega dos dados. Também possibilita a recepção dos dados sem a atenção da CPU, entregando quando esta puder atender. Trabalha com o padrão Plug-and-play Subdivisão: unidades internas (EIDE) e unidades externas (placas) USB (Universal Serial Bus) Projetado para periféricos de baixa velocidade Pode ser usado para joysticks, câmeras, aplicações de telefonia Até 127 componetes podem ser conentados Plug-and-play Não necessita “ instalação” comum do periférico Lembretes: O clock externo é uma fração do clock interno, definido pelo microprocessador. Pode ser igual a 2/3, ½, 2/5, 1/3. O clock do barramento PCI é igual à metade do clock externo. A divisão é definida pelo chip vlsi que controla o barramento. O clock do barramento ISA é igual a uma fração do clock do barramento PCI. Esta divisão é feita pelo chip vlsi responsável pelo controle do barramento. Pode ser 1/3 ou 1/4. CAPÍTULO 3 UNIDADE CENTRAL DE PROCESSAMENTO Um microprocessador é um chip responsável por buscar e executar instruções e dados existentes na memória RAM. Via de regra as instruções são bastante simples, como por exemplo operações aritméticas, lógicas, comparações, leituras e gravações na memória. Um programa corresponde a um conjunto de instruções que vão ser executadas pela CPU. O ciclo de funcionamento de uma CPU consisteem: 1. Buscar na memória a próxima instrução a ser executada; corresponde à etapa de leitura; 2. Interpretar a instrução a ser executada; é a etapa de decodificação; 3. Buscar na memória os dados associados à instrução; 4. Execução da instrução, operando sobre os dados; 5. Armazenar o resultado da execução na memória (se for o caso); 6. Reiniciar o processo, na etapa 1. A figura a seguir ilustra os principais elementos constituintes de uma CPU: Figura 23: Principais elementos constituintes de uma CPU. Unidade lógica e aritmética (ULA): Responsável pela realização das instruções matemáticas e de comparação; Registradores: Utilizados para o armazenamento temporário de dados; no diagrama aparecem os registradores A, B, C e PC (que é o Program Counter, registrador que armazena o endereço da próxima instrução a ser executada); Unidade de controle (UC): É responsável pela busca de instruções na memória, controlando também a ULA e o Decodificar de Instruções; Clock: gera pulsos (na forma de uma onde quadrada); a frequência com a qual o clock gera estes pulsos é medida em Hertz (um Hertz equivale a um ciclo por segundo). A CPU realiza suas operações no ritmo ditado pelo seu clock; atualmente as CPUs operam com frequências na ordem de Gigahertz. Figura 24: Microprocessador da empresa AMD. Tecnologia CISC/RISC Todo microprocessador é capaz de decodificar um certo número de instruções (que é chamado de seu Instruction Set). Quando uma instrução é decodificada pela CPU, ela executa uma sequência de microcódigo referente a esta instrução. Com a evolução das CPUs o conjunto de instrução aumentou de tamanho e microprocessadores com um conjunto grande de instruções são denominados CISC. Quanto maior o conjunto de instruções, menor o desempenho do microprocessador, pois a decodfificação de uma determinada instrução e a sua execução irão demorar um tempo maior. Mas, apesar de existir um conjunto de instruções grande, nota-se que geralmente somente algo em torno de 30% das instruções são efetivamente empregadas pelos programas. A partir desta constatação foi desenvolvida uma geração de CPUs com um conjunto reduzido de instruções, com uma consequente otimização do decodificador de instruções e também do microcódigo. Microprocessadores desenvolvidos desta forma são classificados como RISC (Reduced Instruction Set Computing). Algumas técnicas desenvolvidas a partir da família Pentium Previsão de desvio Empregada pela CPU quando existe uma condição do tipo “se A > B, vá para <endereço>”. O controlador de memória carrega para a memória cache todos os resultados possíveis em vez de aguardar o núcleo do microprocessador acabar o processamento para saber qual o desvio a ser tomado. Arquitetura superescalar A arquitetura superescalar está associada à estrutura do processador. Um único processador funciona internamente como se existissem vários processadores convencionais, permitindo realizar várias instruções ao mesmo tempo. Quando um processador com arquitetura superescalar possui dupla canalização, isso significa que pode realizar duas instruções simultaneamente. Multiprocessamento Quando um microprocessador consegue operar em uma placamãe com mais de um processador simultaneamente. Isso depende do tipo da placa-mãe (que deverá suportar mais de um processador), do chipset e também dos processadores, que deverão ser compatíveis. Tecnologias MMX, 3DNow e SSE Conjunto de instruções que consegue manipular vários dados simultaneamente. É um exemplo da aplicação da técnica SIMD (Single Instruction on Multiple Data). O conjunto de instruções MMX tem 57 instruções e evoluiu com o tempo para tecnologias como SSE e SSE2. Um pouco da evolução da família Intel x86 CAPÍTULO 4 DISPOSITIVOS DE ENTRADA E SAíDA Os dispositivos de entrada e saída de dados, também conhecidos como dispositivos de E/S ou I/O (de input/output), são os elementos periféricos pelos quais a informação proveniente do meio externo é captada ou é para este enviada. Os dispositivos de entrada permitem ao computador acessar informações do mundo externo que são por sua vez codificadas para poderem ser processadas pela CPU. Exemplos de dispositivos de entrada: teclado, mouse, tela touchscreen, joystick, touchpad, scanners, microfone. Figura 25: Exemplos de dispositivos de entrada. Os dispositivos de saída permitem a saída de informações do computador para meios externos, possibilitando sua visualização pelo usuário, armazenamento ou utilização por outro dispositivo. Exemplos de dispositivos de saída: impressora, plotter, monitor. Figura 26: Exemplos de dispositivos de saída. Os dispositivos de entrada e saída são os dispositivos que servem tanto para entrada quanto para a saía de dados em um computador. Como exemplo temos: discos rígidos, modems e unidades de backup (como fitas DAT, por exemplo). Figura 27: Exemplos de dispositivos de entrada e saída. Discos rígidos Os discos rígidos são meios de armazenamento de memória em massa, sendo constituídos por uma parte mecânica e uma parte eletrônica. Os dados são armazenados em um ou mais discos magnéticos rígidos. Pode-se resumir os componentes de um HD nos seguintes: Disco mecânico: construção física do disco, RPM, construção do cabeçote de leitura e gravação, densidade de dados… Cache: buffer na placa do disco para aproveitar melhor a leitura;/escrita física. Interface: a forma de incorporação do disco no sistema do pc, conexão com barramento, princípio do controlador… Sistema de arquivos e formatação: uso de sistema de arquivos e opções de formatação… Controladores MFM, RLL – Padrões antigos, fora de uso. IDE – Interface simples, uso do barramento ISA, baixa taxa de transferência, antigamente só discos menores de 528 MB. EIDE – Melhorias do IDE, uso do barramento PCI, discos até 8.5 GB, controlador na placa-mãe, até quatro discos. SCSI – Controlador para sistemas com altas velocidades e grandes capacidades. Até 7 discos de 18 GB. Um pouco da evolução dos meios de armazenamento em massa DÉCADA DE 1980 Disco magnético de 51/4, capacidade de 1.2 MB 34 discos -> cópia de um HD com 40 MB já há alguns anos: disco rígido de 3.2 GB = 2.669 discos 1984: Disquete de 31/2 pol. com 720 KB Desenvolvido pela Sony para o Apple Machintosh Adotado pelos PCs Substituído pelo disco de 1.44 MB DÉCADA DE 1990 1991: IBM cria o disco de 2,88 MB 1993: Iomega cria o Floptical Disk, com capacidade de leitura dos discos magnéticos e usando mídia ótica Ambos os produtos: caros, sem apelo de mercado Competição com o CD e derivados ZIPDRIVE – IOMEGA 100 MB, 3.000 rpm, princípio de Bernouli, disco barato Unidade externa, conectada pela interface paralela com o micro SUPERDISK – IMATION Capacidade de leitura de discos de 120 MB e discos convencionais Sistema LS-20 (Laser Servo) permite 2.490 trpp X 135 trpp JAZ DRIVE – IOMEGA Lançado em 1996, discos com 1-2 GB, uso de interface SCSI SyJet – SyQuest 1,5 GB, interface paralela, SCSI e EIDE DISCO MAGNETO-ÓTICO Misto de tecnologias óticas e magnéticas. GRAVAÇÃO Uso de um feixe laser potente para atingir o “ponto Curie”, quando são liberadas partículas que podem ser orientadas com o uso de um cabeçote de leitura/gravação. LEITURA Uso do efeito Kerr, em que a luz refletida é alterada de acordo com a orientação das partículas magnéticas. Possui uma vida média de 30 anos. CD ROM – CD-R Sinais gravados com a “queima” do material reflexivo, feita apenas uma vez, e não podendo ser alterada. Ideal para distribuição de dados ou backups. CD REGRAVÁVEL PHILIPS – 1997 Tecnologia puramente ótica Camada de gravação pode ter suas características químicas alteradas Ao ser aquecido em determinada temperatura e resfriado ele cristaliza Ao ser aquecido em temperatura maior e resfriado ele assume estruturanão cristalina A diferença entre a luz refletida em pontos cristalinos e não cristalinos é interpretada como sinais lógicos. O estado do material pode ser alterado com feixe laser inúmeras vezes, permitindo regravações. DVD (DIGITAL VERSATILE DISK) Versões para gravação e leitura, e apenas para leitura. Utiliza feixe laser menor que o CD-ROM, aumentando a capacidade. DVD-ROM: somente leitura, 3.8 GB a 17 GB DVD-R: Gravável (uma vez) até 3.9 GB por lado do disco DVD-RAM: pode ser lido e escrito, até 2.6 GB CAPÍTULO 5 O SISTEMA OPERACIONAL Uma das peças-chave na estrutura funcional de um computador moderno é o sistema operacional, pois é por meio desta camada de software que todos os outros aplicativos conseguem usufruir do hardware oferecido pela máquina. O sistema operacional é o software básico que oferece serviços importantes aos softwares de aplicação para que estes possam utilizar os recursos de hardware disponibilizados pelo computador. Estes serviços podem ser agrupados da seguinte forma: Gerência Processos Memória principal Arquivos Sistema de E/S Memória secundária Rede Sistema de proteção Interpretador de comandos Um processo é um programa em execução, necessita de CPU para ser executado, de memória, acesso a dispositivos de E/S. Neste contexo o papel do S.O. é: Criar e terminar processos; Suspender e recomeçar processos; Prover mecanismos para: Sincronização; Comunicação entre processos. A memória é gerenciada pelo S.O. na forma de uma lista endereçável. Em relação à memória, as responsabilidades do S.O. são: Manter dados sobre uso da memória: Quais partes pertencem a quem; Decidir que processo carregar quando há espaço na memória; Alocar e desalocar memória. Um arquivo é um conjunto de informações que pode representar programas ou dados. Em relação a arquivos o S.O. deve permitir: Criar e apagar arquivos; Criar e apagar diretórios; Instruções para manipulação de arquivos e diretórios; Mapear arquivos em armazenamento secundário; Fazer backup. Sistema de arquivos Estrutura de um disco 3.5 (FAT 12) 1 setor = 1 cluster = 512 bytes Informações no setor de boot (setor 0) 1º, 2º, 3º bytes: instrução (assembly) de salto para rotina de boot do 4º ao 11º byte: nome e versão do DOS (ex.: MSWIN4.0) 12º, 13º: número de bytes por setor (512; no disco fica 00 02) 14º: número de setores por cluster 15º, 16º: número de setores reservados 17º: número de FATs (2) 18º, 19º: número máximo de entradas no diretório (raiz) (112 ou 224) 20º, 21º: número total de setores no disco (0B 40 em um disco de 3.5) 22º: byte descritor do meio -> F0 (disco 3.5), F8 (HD), FC (5.25) 23º, 24º: número de setores usados por uma FAT 25º, 26º: número de setores por trilha 27º, 28º: número de cabeças 29º, 30º: número de setores escondidos 40º a 43º: número de série do disco a partir do 44º: nome do volume a partir do 55º: FAT 12 ou FAT 16 últimos 2 bytes deste setor: 55 AA Estrutura de um arquivo de diretório Um diretório é uma sequência de entradas de 32 bytes cada, em que cada entrada corresponde a 1 arquivo (FAT 12 e FAT 16 normais). Na FAT empregada pelo Windows 95 (que é chamada de VFAT), para cada arquivo podem ser usadas mais de uma entrada de diretório, em que uma entrada segue o formato tradicional e as demais armazenam o nome do arquivo usando codificação UNICODE (2 bytes por caracter). Formato de uma entrada de diretório (tamanho em bytes) indicado abaixo de cada campo: Byte de atributo: Obs.: o campo dia usa 5 bits, o mês os 4 próximos bits e o ano os bits restantes. Cálculo do campo hora: segundos/2 + 32 * minutos + 1.024 * horas Obs.: o campo segundos usa 5 bits, minutos usa 6 bits e horas os bits restantes. FAT 12 Cada entrada da FAT 12 emprega 12 bits ou 1 byte e meio. Logo, em 3 bytes consecutivos temos 2 entradas. Exemplo (como mostrado pelo DiskEdit): F0 FF 02 54 00 32 … Se temos setores de 512 bytes, então cabem 341,33 entradas de FAT por setor. Obs.: entrada FFF = fim de encadeamento FF7 = setor ruim FAT 16 Cada entrada da FAT 16 emprega 16 bits ou 2 bytes . Se temos setores de 512 bytes, então em 1 setor cabem 256 entradas. Obs.: entrada FFFF = fim de encadeamento FFF7 = setor ruim Obs 2: as duas primeiras entradas da FAT são reservadas (não usadas); isto vale para FAT12 e FAT16. A expressão a seguir fornece um valor que corresponde a uma projeção (uma aproximação) de quanto espaço em disco está sendo desperdiçado pelos arquivos gravados no disco. Este desperdício diz respeito a espaço no disco que já está alocado (associado a um arquivo) e que consequentemente não pode ser usado pelo sistema de arquivos (FAT) para armazenar novos arquivos, por exemplo. Espaço desperdiçado = quantidade de arquivos metade do tamanho do cluster Exemplo: Se numa partição FAT temos 1.800 arquivos gravados e o tamanho do cluster (ou bloco) é de 8 KB, então: Espaço desperdiçado = 1.800 * 4 KB = 7.200 KB = 7.03 MB de espaço em disco que está locado mas não pode ser usado para armazenar novos arquivos. O Sistema Operacional Linux Estrutura de diretórios do Sistema de Arquivos do Linux A estrutura do sistema de arquivos apresentada aqui é a definida na versão 1.2 de 28 de março de 1995 do Linux Filesystem Structure Standard (FSSTND). O diretório raiz (/) é normalmente organizado (subdividido) em uma coleção de subdiretórios. Cada um destes subdiretórios armazena uma classe específica de arquivos, como pode ser visto na tabela a seguir: Subdiretório Função (classe de arquivos armazenados) bin Executáveis essenciais (comandos); ex: cat, chmod, cp, date, dd, df, ed, kill, login, ls,mkdir, more, mount, mv, ps, pwd, rm, rmdir, umount,… boot Arquivos estáticos do carregador de boot (boot loader) dev Arquivos de dispositivos etc Arquivos e scripts para configuração do sistema; ex: csh.login, fstab, group, inittab,lilo.conf, passwd, profile, exports, hosts, networks, protocols, … home Diretórios para usuários lib Bibliotecas compartilhadas (shared libraries) mnt Diretório para montagem de sistemas de arquivos temporários proc Pseudo sistema de arquivos (armazena informações de processos) root Diretório do administrador do sistema (root user) sbin Executáveis essenciais (para administração do sistema); ex: clock, getty, init, mkswap, swapon, swapoff, shutdown, fdisk, fsck, mkfs, badblocks, dumpe2fs, e2fsck, lilo, ifconfig, route, … tmp Arquivos temporários usr É a 2 ª maior porção do sistema de arquivos; armazena arquivos compartilháveis, geralmente read-only (tabela a seguir) var Dados variáveis; incluem arquivos de spool, arquivos de log e arquivos temporários;não pode ser uma partição separada O diretório /usr comtém uma hierarquica bastante grande de subdiretórios e merece uma descrição detalhada: Subdiretório Função (classe de arquivos armazenados) X11R6 X Window System versão 11 release 6 X386 X Window System versão 11 release 5 para plataforma x86 bin Comandos de usuário dict Lista de palavras (para spell checkers) doc documentação etc Arquivos de configuração não locais games jogos include Arquivos .h (header files para programas em C) info GNU info system lib bibliotecas local Hierarquia local; usada pelo administrador do sistema quando instala softwarelocalmente man Man pages; subdiretórios man1 (programas de usuário), man2 (chamadas do sistema), man3 (funções de bibliotecas), man4 (dispositivos), man5 (formatos de arquivos), man6 (jogos), man7 (miscelânea), man8 (administração do sistema), man9 (funções e variáveis internas do kernel) sbin Executáveis não essenciais share Dados dependentes de arquitetura src Código-fonte do sistema operacional O diretório /var também contém uma hierarquia de diretórios merecedora de uma análise mais detida. Sua estrutura é apresentadalogo abaixo: Subdiretório Função (classe de arquivos armazenados) adm (obsoleto); link simbólico para /var/log catman Manual pages formatadas localmente lib Subdiretórios para arquivos temporários e de log para aplicativos (emacs, games, … ) local Dados variáveis de software de /usr/local lock Arquivos de lock log Arquivos de log named Arquivos usados pelo servidor de nomes Internet (named) nis Arquivos do Network Information Service (NIS) preserve Arquivos salvos após crash no vi e ex run Contém arquivos com informações sobre o sistema desde o momento do boot spool Diretórios de spool (lpd – diretório de spool da impressora; mail – arquivos demailbox; cron – arquivos cron; …) tmp Arquivos temporários O shell O shell é a camada do sistema operacional que interpreta os comandos do usuários e dispara os processos adequados para atender aos seus objetivos. Do ponto de vista do usuário, um shell é representado por uma janela de terminal na qual é possível digitar comandos e receber respostas do sistema operacional. O universo Linux oferece um número considerável de shells, mas a versão mais usada atualmente é chamada de bash (Bourne Again Shell). Entre as outras versões disponíveis destacam- se ainda o sh (Bourne shell original), o csh (C shell), o ksh (Korn shell), o tcsh (Enhanced C shell) e o zsh (Z shell). Redirecionamento de entrada/saída e dutos (pipes) O Linux permite que a entrada de dados para um arquivo não precise ser necessariamente feita via teclado, caso esta seja a única forma de leitura adotada pelo programa. Uma forma alternativa é redirecionar a entrada de dados a partir de um arquivo, como no exemplo abaixo. ordena < lista Neste exemplo, o processo ordena e coleta os dados a serem processados a partir do arquivo lista. Uma outra situação possível é redirecionar a saída de um processo para um arquivo, como no exemplo a seguir. classifica > resultado Aqui, o processo classifica e gera dados de saída que são armazenados em um arquivo chamado resultado. Pode-se também fazer com que a saída de um processo seja adicionada ao final de um arquivo já existente (append), como no exemplo abaixo. classifica >> novo É possível ainda fazer com que a saída de um processo alimente com dados a entrada de um segundo processo. Este mecanismo é chamada de dutos ou pipes. O exemplo a seguir ilustra este tipo de situação. classifica|ordena Neste caso, os dados gerados pelo processo classifica são usados como entrada de dados para o processo ordena. Filtros Filtros são utilitários geralmente de pequeno tamanho mas muito poderosos, sendo seu uso bastante difundido na comunidade de usuários UNIX/Linux. cat : mostra, cria e concatena arquivos sort : ordena arquivos grep : procura padrão em arquivos wc : conta o número de linhas, palavras e caracteres de um arquivo head : imprime as n 1as linhas de um arquivo tail : imprime as n últimas linhas de um arquivo split : divide um arquivo em arquivos menores diff : compara arquivos e mostra diferenças O uso de caracteres especiais (metacaracteres) * substitui qualquer string Ex.: ls a* (lista todos os arquivos que começam por “a”) rm * (remove todos os arquivos do diretório corrente) ? substitui um caractere Ex.: ls a? (lista todos os arquivos que começam com “a” e possuem só 2 caracteres) ls ?b? (lista todos os arquivos de 3 caracteres que tenham “b” como 2ª letra) Segurança e permissões de acesso Permissões de acesso indicam quais tipos de operações um determinado usuário poderá realizar sobre um arquivo. Todos os arquivos têm suas permissões de acesso divididas em três grupos: permissões de acesso do próprio usuário (daquele que criou o arquivo), permissões de acesso dos usuários que pertencem ao mesmo grupo deste usuário e por último as permissões de acesso de todos os outros usuários da rede. As permissões de acesso são visíveis quando se utiliza o comando ls –l: No exemplo acima aparecem as permissões de acesso de três arquivos. Estrutura do campo de permissão de acesso: As permissões de acesso de um arquivo podem ser ajustadas através do comando chmod. Exemplo: chmod ugo + rwx nomearquivo → adiciona permissão de leitura (r), escrita (w) e execução (x) para o próprio usuário proprietário (criador) do arquivo (u), para usuários do seu grupo (g) e para todos os outros usuários cadastrados (o). Outra maneira de usar o chmod é empregando o modo absoluto: Usuário Permissão Valor U r 400 U w 200 U x 100 G r 040 G w 020 G x 010 O r 004 O w 002 O x 001 Exemplo: chmod 755 nomearquivo → dá permissões pra u,g,o de r,w,x (root). Outro comando importante é o chown, que permite alterar o dono de um determinado arquivo. Exemplo: chown mateus casa.doc → o arquivo casa.doc agora é do usuário mateus Pode-se alterar ainda o grupo ao qual um arquivo pertence; para isso emprega-se o comando chgrp. Exemplo: chgrp projetos casa.doc → o arquivo casa.doc agora pertence ao grupo projetos Utilitários de compressão e arquivamento gzip gzip teste.txt → gera arquivo teste.txt.gz gzip –l teste.txt.gz → lista informações sobre o arquivo compactado gunzip teste.txt.gz → recupera o arquivo original compress compress teste → gera arquivo teste.Z uncompress teste.Z → recupera arquivo teste zip (compatível com pkzip) zip arqdest arqfonte → gera arqdest.zip unzip arqdest → recupera arqfonte zip –pr arqdest fonte.* tar (utilitário de arquivamento Tape Archive) tar cvf dest.tar x → junta arquivos do diretório x em um só arquivo chamado dest.tar; parâmetros c (cria), f(file), v (verbose) tar xvf dest.tar → extrai (x) arquivos tar tvf dest.tar → lista conteúdo do arquivo tar com gzip tar cvf – arq1 arq2 … | gzip > dest.tar.gz (ou dest.tgz) → arquiva e compacta gunzip < dest.tar.gz | tar xvf - → descompacta e desarquiva tar com compress compress dest.tar → gera o arquivo dest.tar.Z zcat dest.tar.Z | tar xvf - → descompacta e desarquiva Significado de alguns comandos UNIX pwd: mostra caminho do diretório corrente (path do diretório onde se está). ls: lista conteúdo do diretório (mostra arquivos e subdiretórios que estão no diretório. mkdir: cria um diretório. cd: muda (alterna) para este diretório. cat: cria um arquivo, mostra um arquivo ou concatena arquivos. more: mostra o conteúdo de um arquivo. cp: copia arquivo. rm: deleta (remove) arquivo. mv: move um arquivo (usado também para renomear arquivos). chmod: altera as permissões de acesso de um arquivo. ps: lista processos da máquina. man: utilitário de ajuda. A seguir é apresentada uma sequência de comandos que podem ser fornecidos dentro de uma janela de terminal: pwd mostra caminho (path atual). ls lista (dir) diretório atual. ls –l lista diretório atual, mostrando atributos do arquivo. mkdir arquivos cria diretório arquivos. cd arquivos entra no diretório arquivos. ls lista diretório corrente. cat > teste criação do arquivo chamado teste. este é um teste com 2 linhas; para encerrar inclusão de linhas. mais uma linha teclar control-d. ctrl-d cat > carro criação do arquivo chamado carro. mais um arquivo e mais uma linha ctrl-d ls –l lista conteúdo do diretório atual (arquivos). more teste mostra conteúdo do arquivo teste. cp teste .. copia o arq. teste para o diretório pai do diret. arquivos. ls .. lista o conteúdo do diretório pai do diret. arquivos. pwd mostra o path atual. cd .. volta para o diretório pai (o diretório inicial). rm teste remove arquivo teste deste diretório. ls –l lista o novo conteúdo deste diretório. ls arquivos lista o conteúdo do diretório arquivos. cd arquivos muda para o diretório arquivos. cat carro >> teste adiciona o conteúdo do arquivo carro no final do arq. teste. more teste motra o novoconteúdo do arquivo teste. mv carro casa muda o nome do arquivo carro para casa. ls –l lista o conteúdo do diretório. chmod ugo+rw casa muda os direitos de acesso do arquivo casa. ls –l lista novamente o conteúdo do diretório. ps mostra números dos processos em execução. man ps chama o help para o comando ps (manual do ps). CAPÍTULO 6 REDES DE COMPUTADORES Um dos recursos mais significativos oferecido pelos computadores é a capacidade de trocar informações entre diferentes máquinas, possibilitando a comunicação entre usuários e programas, o que criou, com o tempo, uma série de novas possibilidades, e de problemas. As redes de computadores podem ser divididas em três categorias de acordo com sua abrangência geográfica: Rede local (LAN ou Local Area Network): faz a interligação com computadores próximos, localizados na mesma sala, andar ou edifício; possui uma distância máxima de alguns quilômetros entre as estações. Geralmente, as LANs possuem uma taxa de transferência de dados na ordem de 1 a 1.000 MBps; Rede metropolitana (MAN ou Metropolitan Area Network): interliga computadores dentro de uma mesma cidade ou área metropolitana, cobrindo distâncias de até 100 Km; Rede de longa distância (WAN ou Wide Area Network): interliga computadores localizados em cidades, estados ou países diferentes. As velocidades podem ir desde 2.400 bps até acima de 1 GBps. LANs: Principais características Uma LAN pode ser caracterizada a partir de diversos fatores, como, por exemplo, sua topologia e forma de codificação dos dados, como apresentado a seguir. Topologia A forma como os computadores de uma LAN estão conectados entre si define a topologia em uso. Cada topologia possui características próprias e pode influir em diversos fatores como facilidade e custo da operação da rede, custo de manutenção, expansibilidade etc. As topologias básicas são três: estrela, anel e barra, com possíveis combinações entre elas, resultando em redes de topologia híbrida. A seguir, são apresentadas essas três topologias. Topologia em estrela Nesta topologia todas as estações estão ligadas a um nó central, às vezes através de um canal bidirecional ou então através de dois canais unidirecionais. A figura a seguir ilustra esse tipo de topologia. Figura 28: Topologia em estrela. Nas LANs, esse tipo de topologia já é muito popular, devido às seguintes características: Uma interrupção no cabo que liga a estação ao hub central não paraliza a rede, mas somente a estação cujo cabo está rompido; Permite gerência de rede centralizada; Permite a utilização de qualquer meio físico; Topologia adequada ao cabeamento predial. Todavia, o componente central é crítico e, se este falhar, toda a rede é paralisada. Em alguns casos, é mantido um equipamento reserva para o caso de acontecer algum problema. Topologia em anel Esta topologia consiste de um laço fechado no qual cada nó está conectado através de um dispositivo repetidor. A informação circula numa só direção no anel, conforme a figura a seguir. Figura 29: Topologia em anel. A estação que quiser transmitir deve esperar sua vez e então introduzir a mensagem ao anel, na forma de um pacote que possui, entre outras informações, o endereço fonte e destino da mensagem. Quando o pacote alcança seu destino, os dados são copiados em um buffer auxiliar local e o pacote prossegue através do anel até fazer toda a volta e chegar novamente na estação origem, que é responsável por tirá-lo de circulação. Topologia em barra Em uma topologia em barra, aquilo que é transmitido por uma estação através do barramento (ou Bus) é recebido por todos os outros nós simultaneamente, configurando, dessa forma, um canal broadcast. A figura a seguir ilustra a topologia em barra. O meio de transmissão é bidirecional, pois as mensagens partem do nó gerador em direção ao terminador do cabo, e só um nó deve transmitir por vez, pois se não ocorrem colisões e os dados são perdidos. Figura 30: Topologia em barra. Topologias híbridas Se numa topologia estrela o nó central ficar sobrecarregado, é possível fazer uma interligação do nó central com outro nó central, levando parte das estações para o outro nó, formando uma outra topologia denominada estrela-estrela. Existem equipamentos no mercado atual que permitem fazer a interconexão entre quaisquer tipos de topologias. Por exemplo, existem hubs que possuem várias entradas para estações na topologia estrela e um conector para cabo coaxial (topologia barra). Forma de codificação dos dados Uma forma bastante comum de codificação é a codificação Manchester (empregada nas redes Ethernet), na qual o período de um bit é dividido em dois intervalos iguais. Quando o bit que deve ser transmitido é “1”, é gerado um pulso de voltagem alta no cabo durante o primeiro intervalo, e baixa no segundo intervalo. Quando deve ser transmitido o bit “0”, o algoritmo é o inverso, ou seja, transmite-se um pulso de baixa voltagem no primeiro intervalo e de alta no segundo intervalo. Protocolos de transmissão de pacotes São duas as principais categorias de protocolos de transmissão existentes: com colisão e sem colisão, isto é, quando se aceita a existência de colisões e quando se evita que elas ocorram. Com colisão: CSMA/CD Um problema que teve que ser superado para a existência das redes locais foi a comunicação entre várias máquinas através de um mesmo meio físico (canal broadcast), sendo que as mensagens deveriam chegar na estação destino e não deveriam interferir nas aplicações que estivessem rodando nas outras estações. O protocolo mais utilizado atualmente que resolve esse problema é o CSMA/CD (Carrier Sense Multiple Access with Collision Detection), que é largamente utilizado em redes locais, como, por exemplo, a Ethernet. O funcionamento desse protocolo é simples, e pode ser resumido na sequência abaixo: 1. Todas as estações estão continuamente escutando o barramento, com o objetivo de ver se alguma mensagem veio para ela; 2. Caso exista a necessidade da estação executar uma transmissão, ela primeiro olha se o barramento está livre (sem transmissão de dados). Caso positivo, a estação envia a sua mensagem, caso contrário, ela espera até que o barramento fique livre; 3. Se duas estações começam a transmitir praticamente no mesmo instante (ambas pensaram que o barramento estava livre), acontece uma colisão entre os quadros das duas estações e os dados tornam-se inválidos. Nesse momento (quando a estação detectou a colisão), ela para de transmitir sua mensagem e aguarda um tempo aleatório. Quando esse tempo esgotou, ela repete o processo, vendo se o barramento está livre e assim por diante. A estação detecta colisão comparando o dado que ela está enviando com o dado que passa pelo barramento. Caso seja diferente, é sinal de que aconteceu uma colisão. Sem colisão (utilizando token) As colisões que ocorrem no CSMA/CD afetam o desempenho da rede como um todo, principalmente quando o cabo é longo, os pacotes são curtos e o número de estações concorrentes é grande. Existem vários tipos de protocolos livres de colisão, mas o mais empregado é o método de token para evitar colisões, como é utilizado pelas redes Token Ring e Token Bus, que utilizam topologias em anel e barra, respectivamente. Há um elemento denominado token, que fica circulando entre as estações da rede. Somente a estação que possui o token pode efetuar a transmissão, e, como existe apenas um token circulando, não ocorrem colisões. Quando uma estação quer transmitir uma mensagem, ela primeiramente deve aguardar a chegada do token, para então retirá-lo de circulação e enviar sua mensagem. Após a transmissão de sua mensagem, a estação deve gerar novo token para continuar circulando e atendendo as outras estações da rede. Protocolos de comunicação: o modelo OSI O modelo OSI é divididoem sete níveis, onde cada um deles possui uma função específica no processo de comunicação entre dois sistemas abertos. A figura abaixo mostra os sete níveis do modelo OSI, iniciando pelo nível mais próximo ao meio físico e terminando no nível mais próximo do usuário. Pode-se ver pela figura que cada nível possui um ou mais protocolos que realizam as funções específicas daquele nível, e esses protocolos são compatíveis entre as máquinas que estão se comunicando. Figura 31: Os sete níveis do modelo OSI. Entre cada nível existe uma interface responsável por permitir que dois níveis quaisquer troquem informações. A interface também define quais primitivas, operações e serviços o nível inferior oferece ao imediatamente superior. Cada nível é independente entre si e executa somente suas funções, sem se preocupar com as funções dos outros níveis. Os principais equipamentos que fazem a interconexão entre segmentos de rede, alguns modificando os protocolos de rede para manter a compatibilidade com o outro segmento, são os repetidores, as pontes, os switches, os roteadores e os gateways, que serão analisados a seguir. Repetidores Repetidores são dispositivos que amplificam sinais elétricos, sem dar tratamento algum à informação que passa através dele. Sua necessidade surge quando a potência do sinal não é suficiente para fornecer a corrente necessária por toda a extensão do cabo. Por exemplo, a distância máxima nas redes Ethernet (com cabo coaxial grosso) é de 2.500 m, mas os chips dos tranceivers só têm potência para 500 m. Uma das soluções é utilizar repetidores para poder ampliar a distância. Pontes (Bridges) Pontes são dispositivos que operam no nível de enlace (nível 2) do modelo OSI, portanto, uma ponte pode interligar duas redes que utilizem protocolos de nível de enlace diferentes, como, por exemplo, Ethernet e Token Ring, ou Token Ring e FDDI. Figura 32: IBM 8229 LAN Bridge. Switches Os switches são dispositivos que operam no nível 2 do modelo OSI e permitem a interconexão entre máquinas diretamente, ou seja, simulando uma conexão ponto a ponto. Essa é uma grande vantagem em relação aos hubs, pois estes somente conseguem fazer uma conexão do tipo broadcast. Assim, em uma rede local com hub central, os 10 MBps da Ethernet são compartilhados por todas as estações, provocando colisões e queda de desempenho. Como se sabe, uma rede Ethernet deve ser projetada com tráfego médio de, no máximo, 40% de sua capacidade nominal. Figura 33: Switch gerenciável TP-Link. No switch, a largura de banda é dedicada entre as estações, eliminando as colisões e provocando um aumento de desempenho. A figura a seguir ilustra várias estações se comunicando simultaneamente. Figura 34: Funcionamento do switch. Com a eliminação das colisões, as estações não precisariam mais ouvir a informação à medida que transmitissem o pacote (característica do CSMA/CD). Dessa forma, sobra um par de fios no esquema Ethernet. Aproveitando-se disso, os fabricantes já lançaram no mercado o Ethernet full-duplex, em que as estações falam por um par de fios e ouvem por outro, duplicando a velocidade da rede, ou seja, as estações falam entre si a 20 MBps (ou 200 MBps no caso de redes Fast-Ethernet). Entretanto, caso se utilizem placas full-duplex, é necessária a utilização de switches que suportem esse protocolo. Roteadores Roteadores são similares às pontes, porém, trabalham no nível de rede do modelo OSI. As redes interligadas através de roteadores podem diferir muito mais que as redes conectadas através de pontes. Os roteadores são necessários quando existe a necessidade de interligar redes locais com redes de longa distância, ou quando se deseja dar uma independência maior aos diferentes segmentos de uma rede local, pois dois segmentos de rede local conectados através de um roteador possuem endereços de rede diferentes. Figura 35: Roteador CISCO. Devido à maior complexidade dos protocolos utilizados pelos roteadores, eles são mais lentos se comparados às pontes. Além disso, são mais caros e pedem um esforço maior para instalação e utilização. Conversores de protocolo (gateways) Os gateways possuem uma tarefa muito mais complexa e difícil que os roteadores, já que devem interligar redes completamente diferentes (a partir do nível de transporte (nível 4) do modelo OSI). Assim, por exemplo, deve-se utilizar um gateway para interligar uma rede que utiliza o protocolo usado na internet (TCP) com outra que utiliza o protocolo OSI (TP4). Algumas vezes, utiliza-se o termo gateway genericamente para indicar a conexão entre quaisquer segmentos de rede, não importando o nível do modelo em que esses segmentos se encaixam. IEEE 802.3 e Ethernet A norma IEEE 802.3 refere-se a uma família de redes locais baseadas no protocolo de acesso ao meio CSMA/CD, que sugere uma forma para permitir a comunicação de várias estações através do mesmo meio físico, utilizando um canal broadcast. A norma 802.3 especifica uma família inteira de sistemas CSMA/CD, rodando a velocidades que variam de 1 a 10 MBps em vários meios físicos. O protocolo Ethernet é uma das possíveis implementações da norma 802.3. Topologia A Ethernet pode ser implementada através das topologias barra e estrela. A topologia mais barata é a tipo barra, com o meio físico sendo o cabo coaxial, mas a tendência é a utilização das redes locais na topologia estrela, com um switch ou hub central e o meio físico sendo o par trançado categoria 5. Velocidade As redes locais Ethernet utilizam uma velocidade de transmissão de dados de 10 MBps, sendo um caso particular da norma IEEE 802.3. Com o tempo foram introduzidos versões mais velozes como a Fast-Ethernet (100 MBps) e a Giga- Ethernet (1 GBps). Meio físico O meio físico utilizado pelas redes Ethernet pode ser o cabo coaxial, o par trançado ou ainda outros tipos alternativos, como a rede via ondas de rádio. Dois tipos de cabos coaxiais são muito comuns: Thick Ethernet cable – cabo Ethernet grosso: normalmente amarelo, possui marcações a cada 2,5 m para mostrar onde devem ir as conexões referentes a cada estação de trabalho. Este padrão é conhecido como o 10base5; Thin Ethernet cable (cheapernet) – cabo Ethernet fino: é mais fino e flexível, utilizando conectores tipo BNC para fazer as junções às estações de trabalho. Este cabo é muito mais barato, porém, a distância máxima é menor que a conseguida com o cabo grosso. O padrão Ethernet com cabo coaxial fino é conhecido como 10base2. Quando se utiliza par trançado (padrão 10baseT), utiliza-se a topologia estrela, pois é necessário um equipamento concentrador das estações (switch ou hub). O par trançado é bastante suscetível a ruídos. Existem dois tipos de hubs: o primeiro funciona simplesmente como um repetidor, recebendo o sinal das estações e enviando para todas as estações conectadas a ele. O segundo tipo é mais sofisticado, sendo chamado de hub inteligente, possuindo normalmente as seguintes características: Concentra as estações, formando a topologia estrela; Isola automaticamente estações com falha; Possui facilidades de gerência, controlando o tráfego, número de colisões e outras informações, que são enviadas a uma estação de controle. CAPÍTULO 7 A INTERNET A internet representou uma revolução em termos de aplicação da tecnologia em larga escala, influenciando todas as áreas de atuação. É também uma concorrência direta da grande evolução das tecnologias de redes de computadores. Uma associação entre o DARPA (Defense Advanced Research Projects Agency), um grupo de universidades e algumas instituições, criaram o “ARPANET Network Working Group” em meados de 1960. Em 1969, a rede ARPANET entrou em operação, consistindo de quatro nós e utilizando comutação de pacotes para efetuar a comunicação. Em 1974, um estudo feito por Vinton Cert e Robert Kahn propôs um grupo de
Compartilhar