quinta-feira, 26 de maio de 2011

Gerência de memória

Memória lógica e memória física

A memória lógica de um processo é aquela que o processo enxerga, ou seja, aquela que o processo é capaz de endereçar e acessar usando as suas instruções. Os endereços manipulados pelo process são endereços lógicos. Em outras palavras, as instruções de máquina de um processo especificam endereços lógicos. Por exemplo, um processo executando um programa escrito na linguagem C manipula variáveis tipo pointer. Essas variáveis contém endereços lógicos. Em geral, cada processo possui a sua memória lógica, que é independente da memória lógica dos outros processos.

A memória física é aquela implementada pelos circuitos integrados de memória, pela eletrônica do computador. O endereço físico é aquele que vai para a memória física, ou seja, é usado para endereçar os circuitos integrados de memória.

O espaço de endereçamento lógico de um processo é formado por todos os endereços lógicos que esse processo pode gerar. Existe um espaço de endereçamento lógico por processo. Já o espaço de endereçamento físico é formado por todos os endereços aceitos pelos circuitos integrados de memória.

A unidade de gerência de memória (Memory Management Unit, MMU) é o componente do hardware responsável por prover os mecanismos básicos que serão usados pelo sistema operacional para gerenciar a memória. Entre outras coisas, é a MMU que vai mapear os endereços lógicos gerados pelos processos nos correspondentes endereços físicos que serão enviados para a memória. Na verdade, o processador e a MMU formam, na maioria das vezes, um único circuito integrado. Podemos considerar os dois registradores de limite como uma MMU muito simples. 

  
Existe uma outra forma de MMU simples, onde o endereço lógico gerado pelo processo é primeiro comparado com um limite superior. Caso seja menor ou igual, ele então é somado ao valor do registrador de base. O resultado da soma é o endereço físico que vai para a memória. Nesse esquema, o endereço lógico é transformado em endereço físico através da soma do valor da base. Temos então o endereço lógico diferente do respectivo endereço físico.


Nesse esquema de MMU, o espaço de endereçamento lógico vai de zero até o valor limite. Esses são os endereços de memória manipulados pelo processo. O processo pode gerar endereços lógicos entre zero e 200. Qualquer valor fora desse intervalo será considerado ilegal. Os endereços lógicos são mapeados pela MMU para uma área do espaço de endereçamento físico. Essa área da memória física inicia no valor indicado pelo registrador de base e tem o mesmo tamanho da memória lógica do processo. A proteção de memória é conseguida, pois o processo de usuário está restrito a essa área da memória física.Tanto os registradores de limite inferior e superior quanto os registradores de base e limite devem ser protegidos. Eles não podem ser acessados em modo usuário. Obviamente, eles podem ser acessados em modo supervisor. Quando ocorre um chaveamento de processo, os valores são copiados do DP para os registradores da MMU.

Uma diferença entre as soluções apresentadas está na carga dos programas. No esquema que emprega apenas registradores de limite, os programas são gerados para o endereço zero da memória. Dessa forma, no momento da carga, os endereços dop programa devem ser corrigidos para que o programa execute corretamente no lugar onde foi colocado. Esse processo de correção de endereços é chamado relocação. Um carregador que efetua uma relocação do programa em tempo de carga é chamado de carregador relocador.

No esquema que emprega registradores de base e limite, todos os programas são também gerados para o endereço zero da memória. Entretanto, eles podem ser carregados em qualquer lugar da memória física.

Um carregador de programas que não precisa corrigir os endereços durante a carga é chamado de carregador absoluto. Nesse esquema, podemos considerar que ocorre uma relocação em tempo de execução, pois cada endereço sofre uma correção automática ao ser somado com o conteúdo do registrador de base.

Partições Fixas

Partições fixas são a forma mais simples de gerência de memória para multiprogramação. A memória é primeiramente dividida em uma parte para uso do SO e uma parte para uso dos processos de usuários. A seguir, a parte dos usuários é dividida em várias partições de tamanhos diferentes porém fixos.Quando um programa deve ser carregado, é escolhida uma partição ainda livre. Obviamente a partição deve ter um tamanho igual ou maior que o programa.

Existem, porém, dois problemas com esse tipo de gerência de memória. Dificilmente o programa a ser carregado terá o tamanho exato de uma partição. Ele será carregado em uma partição que é um pouco maior que o necessário. Isso resulta em um desperdício de memória que é chamado de fragmentação interna, isto é, memória perdida dentro da área alocada para um processo. Outra possibilidade é termos duas partições livres, digamos, de 25 e 100 kbytes. Nesse momento é criado um processo para executar um programa de 110 kbytes. Observe que a memória total livre no momento é de 125 Kbytes, mas ela não é contígua. O programa não pode ser executado devido à forma como a memória é gerenciada. Esse tipo de problema é chamado de fragmentação externa, isto é, memória perdida fora da área ocupada por um processo.

Partições variáveis

Quando variáveis são empregadas, o tamanho das partições é ajustado dinâmicamente às necessidades exatas dos processos. Essa é uma técnica de gerência de memória mais flexível que partições fixas.

O SO mantém uma lista de lacunas, ou seja, espaços livres na memória física que são percorridos quando um processo é criado.

Existem 4 formas básicas de percorrer a lista de lacunas atrás de uma lacuna de tamanho suficiente. Os algoritmos first-fit e circular fit são os mais usados.

First-fit – utiliza a primeira lacuna que encontrar com tamanho suficiente
Best-fit – utiliza a lacuna que resultar na menor sobra
Worst-fit – utiliza a lacuna que resultar na maior sobra
Circular-fit – Igual ao first-fit, mas inicia a procura na lacuna seguinte à última sobra.

Quando um processo termina, a memória que ele ocupava é liberada. Isso corresponde à criação de uma nova lacuna. Caso a nova lacuna criada seja adjacente a outras lacunas, elas são unificadas. 


Alguns sistemas organizam a memória por blocos de, por exemplo, 32 bytes. Esses blocos são muitas vezes chamados de parágrafos. A unidade de alocação passa a ser o parágrafo e o tamanho da área alocada por um processo deve ser um número inteiro de parágrafos, ou seja, um múltiplo exato de 32 bytes. Dessa forma, a menor lacuna possível terá o tamanho de um parágrafo ou 32 bytes. Nesse caso, poderemos ter uma fragmentação interna de até 31 bytes por processo. Em algumas arquiteturas, as variáveis do tipo inteiro devem ficar alinhadas corretamente na memória.

Partições variáveis são tipicamente implementadas através de uma lista encadeada de lacunas. Cada lacuna é representada por um descritor de lacuna, que contém basicamente o seu endereço, tamanho e apontadores para as colunas adjacentes. Como cada lacuna tem o tamanho mínimo de um parágrafo, ela pode hospedar o seu próprio descritor.

Com partições variáveis a fragmentação externa é um problema grave. Á medida que áreas de memória são alocadas e liberadas, muitos fragmentos são gerados. A memória adquire uma aparência de “queijo suíço”. É possível tentar usar compactação de memória para eliminar esse problema, mas em geral não é um processo muito usado.

Swapping

Existem situações nas quais não é possível manter todos os processos simultâneamente na memória.

Uma solução para essas situações é o mecanismo de swapping. Em determinadas situações, um processo é completamente copiado da memória para o disco. Sua execução é suspensa, ou seja, seu descritor de processo é removido da fila do processador e colocado em uma fila de processos suspensos. É dito que esse processo sofreu um swap-out. Mais tarde, ele sofrerá um swap-in, ou seja, será copiado novamente para a memória. Seu descritor de processo volta então para a fila do processador, e sua execução será retomada. O resultado desse revezamento no disco é que o SO consegue executar mais processos do que caberia em um mesmo instante na memória.

Em sistemas nos quais uma pessoa interage com o programa durante a sua execução, o mecanismo de swapping somente é utilizado em último caso, quando não é possível manter todos os processos na memória. A queda no desempenho do sistema é imediatamente sentida pelo usuário no terminal.

Paginação

A técnica de partições fixas gera muita perda de memória e não é mais utilizada na prática. Se essa restrição for eliminada, ou seja, permitir que um programa ocupasse áreas não contíguas de memória, não haveria fragmentação externa. A técnica da paginação possibilita exatamente isso.

O espaço de endereçamento lógico de um processo é dividido em páginas lógicas de tamanho fixo. O endereço lógico também é dividido em duas partes: um número de página lógica e um deslocamento dentro dessa página.

A memória física também é dividida em páginas físicas com tamanho fixo, idêntico ao tamanho da página lógica. Os endereços de memória física também podem ser vistos como compostos de duas partes. Os 3 primeiros bits indicam um número de página física. Os 2 últimos bits indicam um deslocamento dentro dessa página física.

Um programa é carregado página a página. Cada página lógica do processo ocupa exatamente uma página física da memória física. Entretanto, a área ocupada pelo processo na memória física não precisa ser contígua. Mais do que isso, a ordem em que as páginas lógicas aparecem na memória física pode ser qualquer, não precisa ser a mesma da memória lógica.

Durante a carga é montada uma tabela de páginas para o processo. Essa tabela informa, para cada página lógica, qual a página física correspondente. No exemplo, a tabela é formada por 3 entradas, uma vez que o processo possui 3 páginas lógicas.

Quando um processo executa, ele manipula endereços lógicos. O programa é escrito com a suposição que ele vai ocupar uma área contígua de memória, que inicia no endereço zero, ou seja, vai ocupar a memória lógica do processo. Para que o programa execute corretamente, é necessário transformar o endereço lógico especificado em cada instrução executada, no endereço físico correspondente. Isso é feito com o auxílio da tabela de páginas. 

  
O endereço lógico gerado é inicialmente dividido em duas partes: um número de página lógica e um deslocamento dentro da página. O número da página lógica é usado como índice no acesso à tabela de páginas. Cada entrada da tabela de páginas possui o mapeamento de página lógica para página física. Dessa forma, é obtido o número de página física correspondente. Já o deslocamento do byte dentro da página física será o mesmo deslocamento desse byte dentro da página lógica, pois cada página lógica é carregada exatamente em uma página física.

Na prática, os tamanhos de página variam entre 1K e 8Kbytes. Espaços de endereçamento lógico variam de 64K para sistemas antigos e muitos Gbytes nas máquinas atuais. Espaços de endereçamento físico também ficam, em geral, na ordem de Gbytes. Note que o espaço de endereçamento físico denota a capacidade de endereçamento do processador, e não a quantidade de memória realmente instalada na máquina.

Na paginação, uma página lógica pode ser carregada em qualquer página física que esteja livre, dessa forma não existe fragmentação externa.

Existem vantagens e desvantagens em utilizar páginas grandes. Páginas maiores significam que um processo terá menos páginas, a tabela de páginas será menor, a leitura do disco será mais eficiente. Em geral, páginas maiores resultam em um custo menor imposto pelo mecanismo de gerência de memória, ou seja, um overhead menor. Por outro lado, páginas maiores resultam em uma fragmentação interna maior. Normalmente não é o sistema operacional que escolhe o tamanho das páginas. Esse valor é fixado pelo hardware que suporta a gerência de memória, ou seja, pela MMU do computador em questão.

Quando a tabela de páginas é pequena, ela pode ser completamente colocada em registradores de acesso rápido.

Quando a tabela de páginas é muito grande, não é possível mantê-la em registradores. Uma outra solução é manter a tabela de páginas na própria memória. A MMU possui então dois registradores para localizar a tabela na memória. O registrador de base da tabela de páginas (page table base register, PTBR) indica o endereço físico de memória onde a tabela está colocada. O registrador de limite da tabela de páginas (page Table Limit Register, PTLR) indica o número de entradas da tabela. O problema desse mecanismo é que agora cada acesso que um processo faz à memória lógica transforma-se em dois acessos à memória física. No primeiro acesso, a tabela de páginas é consultada, e o endereço lógico é transformado em endereço físico. No segundo acesso, a memória do processo é lida ou escrita.

Uma forma de reduzir o tempo de acesso à memória no esquema anterior é adicionar uma memória cache especial que vai manter as entradas da tabela de páginas mais recentemente utilizadas. Essa memória cache interna à MMU é chamada normalmente de Translation Lookaside Buffer (TLB).

Normalmente, a memória cache é implementada através de um componente de hardware conhecido como memória associativa, que inclui algumas células de memória e toda eletrônica necessária para fazer uma pesquisa paralela, incluindo as células. O problema aí é o preço do hardware.

Quando a memória cache é usada e ocorre um chaveamento de processos, novamente os valores do PTBR e do PTLR para a tabela de páginas de processo que recebe o processador devem ser copiados do DP para os registradores na MMU. Além disso, a memória cache deve ser esvaziada (flushed).

É importante observar que a proteção entre processos é facilmente conseguida com uma MMU que suporte paginação. Em primeiro lugar, o mecanismo de paginação garante que cada processo somente tenha acesso às páginas físicas que constam em sua tabela de páginas. Essa tabela de páginas é construída pelo SO e fica em uma região da memória à qual apenas o SO tem acesso. O acesso aos registradores PTBR e PTLR é privilegiado, isto é, restrito ao código do SO, que executa em modo supervisor.

Em sistemas atuaias, a tabela de páginas pode ser muito grande. Assim sendo, é muito raro vê-la sendo totalmente usada. Na prática, as tabelas de páginas possuem um tamanho variável, ajustado à necessidade de cada processo. Ocorre que, se as tabelas puderem ter qualquer tamanho, então teremos fragmentação externa novamente (e a maior razão para usar paginação foi a eliminação da fragmentação externa).

Para evitar isso, são usadas tabelas com dois níveis. As tabelas de páginas crescem de pedaço em pedaço, e uma tabela auxiliar chamada diretório mantém o endereço de cada pedaço. Para evitar a fragmetação externa, cada pedaço da tabela de páginas deve ter um número inteiro de páginas físicas, mantendo assim toda alocação de memória física em termos de páginas, não importando a sua finalidade. Entradas desnecessárias em cada pedaço são marcadas como inválidas.

Segmentação

Programadores e compiladores não enxergam a memória lógica dividida em páginas, mas sim em segmentos. Uma divisão típica descreve um programa em termos de 4 segmentos: Código, dados alocados estaticamente, dados alocados dinamicamente e pilha e execução.

É possível orientar a gerência de memória para suportar diretamente o conceito de segmento. Nesse caso, a memória lógica do processo passa a ser organizada em termos de segmentos. Uma posição da memória lógica passa a ser endereçada por um número de segmento e um deslocamento em relação ao início do seu segmento. Em tempo de carga, cada segmento é copiado para a memória física, e uma tabela de segmentos é construída. Essa tabela informa, para cada segmento, qual o endereço da memória física onde ele foi colocado e qual seu tamanho. 


Os processos geram endereços lógicos compostos por um número de segmento e um deslocamento dentro do segmento. A MMU inicialmente utiliza o número de segmento fornecido para indexar a tabela de segmentos.

O grande atrativo da segmentação está na facilildade para compartilhar memória. Cada segmento representa uma parte específica do programa, podendo ou não ser compartilhado.

Por exemplo, suponha que o código das rotinas de biblioteca de uma linguagem de programação é compilado como sendo um segmento único. Esse segmento é marcado como “para apeas execução”, ou seja, não pode ser lido nem escrito. Todos os programas escritos nessa linguagem utilizam esse segmento. Entretanto, apenas uma cópia dele é necessária na memória física. Todos os processos executando programas escritos nessa linguagem terão em sua em sua respectiva tabela de segmentos uma referência à posição desse segmento na memória física.

Segmentação Paginada

Na segmentação paginada o espaço lógico é formado por segmentos, e cada segmento é dividido em páginas lógicas. Cada segmento possui uma tabela de páginas associada. No momento de endereçar a memória, a tabela de segmentos indica, para cada segmento, onde a respectiva tabela de páginas está. Essa tabela de páginas é usada para transformar o endereço de página lógica de determinado segmento em endereço de página física, como é feito normalmente na paginação. Sempre lembrando que este não é o único meio de trabalhar a segmentação paginada. Abaixo, vemos o esquema clássico de segmentação paginada. 


Servidores de redes de computadores

Em informática, um servidor é um sistema de computação que fornece serviços a uma rede de computadores. Esses serviços podem ser de diversa natureza, por exemplo, arquivos e correio eletrônico. Os computadores que acessam os serviços de um servidor são chamados clientes. As redes que utilizam servidores são do tipo cliente-servidor, utilizadas em redes de médio e grande porte (com muitas máquinas) e em redes onde a questão da segurança desempenha um papel de grande importância. O termo servidor é largamente aplicado a computadores completos, embora um servidor possa equivaler a um software ou a partes de um sistema computacional, ou até mesmo a uma máquina que não seja necessariamente um computador.

A história dos servidores tem, obviamente, a ver com as redes de computadores. Redes permitiam a comunicação entre diversos computadores, e, com o crescimento destas, surgiu a idéia de dedicar alguns computadores para prestar algum serviço à rede, enquanto outros se utilizariam destes serviços. Os servidores ficariam responsáveis pela primeira função.

Com o crescimento e desenvolvimento das redes, foi crescendo a necessidade das redes terem servidores e minicomputadores, o que acabou contribuindo para a diminuição do uso dos mainframes.

O crescimento das empresas de redes e o crescimento do uso da Internet entre profissionais e usuários comuns foi o grande impulso para o desenvolvimento e aperfeiçoamento de tecnologias para servidores.

Tipos de Servidores

Existem diversos tipos de servidores. Os mais conhecidos são:

Servidor de arquivos: Servidor que armazena arquivos de diversos usuários.

Servidor web: Servidor responsável pelo armazenamento de páginas de um determinado site, requisitados pelos clientes através de browsers.

Servidor de e-mail: Servidor responsável pelo armazenamento, envio e recebimento de mensagens de correio eletrônico.

Servidor de impressão: Servidor responsável por controlar pedidos de impressão de arquivos dos diversos clientes.

Servidor de banco de dados: Servidor que possui e manipula informações contidas em um banco de dados, como, por exemplo, um cadastro de usuários.

Servidor DNS: Servidores responsáveis pela conversão de endereços de sites em endereços IP e vice-versa. DNS é um acrônimo de Domain Name System, ou sistema de nomes de domínios.

Servidor proxy: Servidor que atua como um cache, armazenando páginas da internet recém-visitadas, aumentando a velocidade de carregamento destas páginas ao chamá-las novamente.

Servidor de imagens: Tipo especial de servidor de banco de dados, especializado em armazenar imagens digitais.

Os clientes e os servidores se comunicam através de protocolos, assim como dois ou mais computadores de redes.

Um computador, de repente, pode atuar em mais de um tipo diferente de servidor. Por exemplo, pode existir em uma rede, um computador que atue como um servidor web e servidor de banco de dados, por exemplo; ou um computador pode atuar como servidor de arquivos, de correio eletrônico e proxy ao mesmo tempo. Computadores que atuem como um único tipo de servidor é chamado de servidor dedicado. Os servidores dedicados possuem a vantagem de atender a uma requisição de um cliente mais rapidamente.

Com exceção do servidor de banco de dados (um tipo de servidor de aplicação), os demais servidores apenas armazenam informações, ficando por conta do cliente o processamento das informações. No servidor de aplicações, os papéis se invertem, com o cliente recebendo o resultado do processamento de dados da máquina servidora.

Em uma rede heterogênea (com diversos hardwares, softwares) um cliente também pode ser um servidor e assim um outro servidor pode ser cliente do mesmo. Por exemplo uma rede tem um servidor de impressão e um de arquivos, supondo que você está no servidor de arquivos e necessita imprimir uma folha de um documento que você está escrevendo, quando você mandar imprimir a folha o serviço do servidor de impressão será utilizado, e assim a máquina que você está usando, que é o servidor de arquivos, está sendo cliente do servidor de impressão, pois está utilizando de seu serviço.

Hardware e software de servidores

Hardware

Servidores dedicados, que possuem uma alta requisição de dados por partes dos clientes e que atuam em aplicações críticas utilizam hardware específico para servidores.

Já servidores que não possuam essas atuações podem utilizar hardware de um computador comum, não necessitando ser, de repente, um supercomputador.

Para começar, muitos servidores baseiam-se em entradas e saídas de informações (principalmente gravações e deleções de arquivos), o que implica em interfaces de entrada e saída e discos rígidos de alto desempenho e confiabilidade. O tipo de disco rígido mais utilizado possui o padrão SCSI, que permite a interligação de vários periféricos, dispostos em arranjos RAID.

Devido a operar com muitas entradas e saídas de informações, os servidores necessitam de processadores de alta velocidade, algumas vezes alguns servidores são multi-processados, ou seja, possuem mais de um processador.

Por ter de operar por muito tempo (as vezes de maneira ininterrupta), alguns servidores são ligados a geradores elétricos. Outros utilizam sistemas de alimentação (por exemplo, o UPS) que continuam a alimentar o servidor caso haja alguma queda de tensão.

E, por operar durante longos intervalos de tempos, e devido à existência de um ou mais processadores de alta velocidade, os servidores precisam de um eficiente sistema de dissipação de calor. O que implica em coolers mais caros, mais barulhentos, porém de maior eficiência e confiabilidade.

Existem outros hardware específicos para servidor, especialmente placas, do tipo hot swapping, que permite a troca destes enquanto o computador está ligado, o que é primordial para que a rede continue a operar.

PPPoE

PPPoE (Point-to-Point Protocol over Ethernet) é um protocolo para conexão de usuários em uma rede Ethernet a Internet. Seu uso é típico nas conexões de um ou múltiplos usuários em uma rede LAN à Internet através de uma linha DSL, de um dispositivo wireless (sem fio) ou de um modem de cabo broadband comum. O protocolo PPPoE deriva do protocolo PPP. O PPPoE estabelece a sessão e realiza a autenticação com o provedor de acesso a Internet.

Topologias de redes de computadores

O termo topologia, ou mais especificamente topologia da rede, diz respeito ao layout físico da rede, ou seja, como computadores, cabos e outros componentes estão ligados na rede. Topologia é o termo padrão que muitos profissionais usam quando se referem ao desenho básico da rede.

A escolha de uma determinada topologia terá impacto nos seguintes fatores:

» Tipo de equipamento de rede necessário;
» Capacidades do equipamento;
» Crescimento da rede;
» Forma como a rede será gerenciada.

Antes que computadores possam compartilhar recursos e executar qualquer tarefa de comunicação, eles devem estar conectados, e cabos são utilizados para fazer essa conexão entre eles.

Porém conectar os computadores por meio de cabos não é tão simples assim.

Existem vários tipos de cabos que combinados com diversas placas de rede e outros componentes necessitam de vários tipos de arranjos.

Para trabalhar bem uma topologia deve-se levar em conta o planejamento. Não somente o tipo de cabo deverá ser levado em consideração, mas também, a forma como ele será passado através de pisos, tetos e paredes.

A topologia pode determinar como os computadores se comunicam na rede.

Diferentes topologias necessitam de diferentes métodos de comunicação e esses métodos tem grande influência na rede.

As topologias padrão mais usadas são as seguintes:

» Estrela;
» Anel.

Estrela

Nessa topologia não há mais um único segmento ligando todos os computadores na rede. Eles estão ligados por meio de vários cabos a um único dispositivo de comunicação central, que pode ser um hub ou um switch. Este dispositivo possui várias portas onde os computadores são ligados individualmente, e é para onde converge todo o tráfego. Quando uma estação A deseja se comunicar com uma estação B, esta comunicação não é feita diretamente, mas é intermediada pelo dispositivo central, que a replica para a toda a rede, novamente somente a estação B processa os dados enviados, as demais descartam. Hubs e switches intermediam esta comunicação entre as estações de formas diferentes. Por exemplo, se um hub replica todo o tráfego que recebe para todas as suas portas, o mesmo não ocorre com o switch. A grande vantagem da topologia estrela em relação a de barramento, é que uma falha no cabo não paralisará toda a rede.

Somente aquele segmento onde está a falha será afetado. Por outro lado, a rede poderá ser paralisada se houver uma falha no dispositivo central. Os cabos utilizados se assemelham aos cabos utilizados na telefonia, porém com maior quantidade de pares. São cabos par-trançados, comumente chamados de UTP.

Possuem conectores nas extremidades chamados de RJ-45.

Anel

Nessa topologia, as estações estão conectadas por um único cabo como na de barramento, porém na forma de círculo. Portanto não há extremidades. O sinal viaja em loop por toda a rede e cada estação pode ter um repetidor para amplificar o sinal.

A falha em um computador impacta a rede inteira.

Arquitetura de Redes

Um conjunto de camadas e protocolos é chamado de arquitetura de rede. A especificação de uma arquitetura deve conter informações suficientes para permitir que um implementador desenvolva o programa ou construa o hardware de cada camada, de forma que ela obedeça corretamente ao protocolo adequado.

Ethernet

Ethernet é uma tecnologia de interconexão para redes locais - Local Área Networks (Redes de Área locais) LAN - baseada no envio de pacotes. Ela define cabeamento e sinais elétricos para a camada física, e formato de pacotes e protocolos para a camada de controle de acesso ao meio (Media Access Control - MAC) do modelo OSI. A Ethernet foi padronizada pelo IEEE como 802.3. A partir dos anos 90, ela vem sendo a tecnologia de LAN mais amplamente utilizada e tem tomado grande parte do espaço de outros padrões de rede como Token Ring, FDDI e ARCNET.

Descrição geral

Uma placa de rede Ethernet típica com conectores BNC e par trançado. Ethernet é baseada na idéia de pontos da rede enviando mensagens, no que é essencialmente semelhante a um sistema de rádio, cativo entre um cabo comum ou canal, às vezes chamado de éter (no original, ether). Isto é uma referência oblíquia ao éter luminífero, meio através do qual os físicos do século XIX acreditavam que a luz viajasse.

Cada ponto tem uma chave de 48 bits globalmente única, conhecida como endereço MAC, para assegurar que todos os sistemas em uma ethernet tenham endereços distintos.

Hubs Ethernet

Hubs, formam uma rede com topologia física em estrela, com múltiplos controladores de interface de rede enviando dados ao hub e, daí, os dados são então reenviados a um backbone, ou para outros segmentos de rede.

Porém, apesar da topologia física em estrela, as redes Ethernet com hub ainda usam CSMA/CD, no qual todo pacote que é enviado a uma porta do hub pode sofrer colisão; o hub realiza um trabalho mínimo ao lidar com colisões de pacote.

As redes Ethernet trabalham bem como meio compartilhado quando o nível de tráfego na rede é baixo. Como a chance de colisão é proporcional ao número de transmissores e ao volume de dados a serem enviados, a rede pode ficar extremamente congestionada, em torno de 50% da capacidade nominal, dependendo desses fatores. Para solucionar isto, foram desenvolvidos "comutadores" ou switches Ethernet, para maximizar a largura de banda disponível.

Ethernet Comutada (Switched Ethernet)

A maioria das instalações modernas de Ethernet usam switches Ethernet ao invés de hubs. Embora o cabeamento seja idêntico ao de uma Ethernet com hub, com switches no lugar dos hubs, a Ethernet comutada tem muitas vantagens sobre a Ethernet média, incluindo maior largura de banda e cabeamento simplificado. Redes com switches tipicamente seguem uma topologia em estrela, embora elas ainda implementem uma "nuvem" única de Ethernet do ponto de vista das máquinas ligadas.

No início, switches Ethernet funcionam como os hubs, com todo o tráfego sendo repetido para todas as portas. Contudo, ao longo do tempo o switch "aprende" quais são as pontas associadas a cada porta, e assim ele pára de mandar tráfego não-broadcast para as demais portas a que o pacote não esteja endereçado. Desse modo, a comutação na Ethernet pode permitir velocidade total de Ethernet no cabeamento a ser usado por um par de portas de um mesmo switch.

Extensão Geográfica:

LAN

Em computação, LANs (acrônimo de Local Area Network, "rede de área local") são redes utilizadas na interconexão de equipamentos processadores com a finalidade de troca de dados. Tais redes são denominadas locais por cobrirem apenas uma área limitada (10 Km no máximo, quando passam a ser denominadas WANs), visto que, fisicamente, quanto maior a distância de um nó da rede ao outro, maior a taxa de erros que ocorrerão devido à degradação do sinal.

As LANs são utilizadas para conectar estações, servidores, periféricos e outros dispositivos que possuam capacidade de processamento em uma casa, escritório, escola e edifícios próximos.

Componentes de uma LAN:

Servidores

Servidores são computadores com alta capacidade de processamento e armazenagem que tem por função disponibilizar serviços, arquivos ou aplicações a uma rede. Como provedores de serviços, eles podem disponibilizar e-mail, hospedagem de páginas na internet, firewall, proxy, impressão, banco de dados, servir como controladores de domínio e muitas outras utilidades. Como servidores de arquivos, eles podem servir de depósito para que os utilizadores guardem os seus arquivos num local seguro e centralizado. E, finalmente, como servidores de aplicação, disponibilizar aplicações que necessitam de alto poder de processamento à máquinas com baixa capacidade, chamadas de thin clients (clientes magros).

Estações

As estações de trabalho, também chamadas de clientes, são geralmente computadores de secretária, portáteis os quais são usados para acesso aos serviços disponibilizados pelo servidor, ou para executar tarefas locais. São máquinas que possuem um poder de processamento menor. Algumas vezes são usadas estações sem disco (diskless), as quais usam completamente os arquivos e programas disponibilizados pelo servidor.

Sistema Operacional de Rede

O Sistema Operacional de Rede é um programa informático de controle da máquina que dá suporte à rede, sendo que existem 2 classes de sistema: sistema cliente e sistema servidor.

O sistema cliente possui características mais simples, voltadas para a utilização de serviços, enquanto que o sistema servidor possui uma maior quantidade de recursos, tais como serviços para serem disponibilizados aos clientes.

Os sistemas baseados em Unix são potencialmente clientes e servidores, sendo feita a escolha durante a instalação dos pacotes, enquanto que em sistemas Windows, existem versões clientes (Windows 2000 Professional, Windows XP) e versões servidores (Windows 2000 Server e Windows 2003 Server).

Meios de Transporte

Atualmente, os meios de transporte de dados mais utilizados são a Ethernet ou o Wireless, operando a velocidades que variam de 10 a 10000 Mbps. As mídias de transmissão mais utilizadas são os cabos (par trançado, coaxial, fibra óptica) e o ar (em redes Wireless).

Dispositivos de rede

Dispositivos de rede são os meios físicos necessários para a comunicação entre os componentes participantes de uma rede. São exemplos os concentradores, os roteadores, os switchs, as bridges, as placas de rede e os pontos de acesso wireless.

Protocolos de Comunicação

Protocolo é a "linguagem" que os diversos dispositivos de uma rede utilizam para se comunicar. Para que seja possível a comunicação, todos os dispositivos devem falar a mesma linguagem, isto é, o mesmo protocolo. Os protocolos mais usados atualmente são o TCP/IP.

Resumo geral: Uma LAN é a unidade fundamental de qualquer rede de computadores. Pode abranger desde um ambiente com apenas dois computadores conectados até centenas de computadores e periféricos que se espalham por vários andares de um prédio. Uma LAN está confinada a uma área geográfica limitada.

PAN

Personal Area Network ou Rede de Área Pessoal é uma rede de computadores pessoais, formadas por nós (dispositivos conectados à rede) muito próximos ao usuário (geralmente em metros). Estes dispositivos podem ser pertencentes ao usuário ou não. Como exemplo podemos imaginar um computador portátil conectando-se a um outro e este a uma impressora. Tecnologicamente é o mesmo que uma LAN, diferindo-se desta apenas pela pouca possibilidade de crescimento e pela utilização doméstica.

MAN

Uma Metropolitan Area Network ou Rede de Área Metropolitana é uma rede de comunicação que abrange uma cidade. O exemplo mais conhecido de uma MAN é a rede de televisão a cabo disponível em muitas cidades.

A partir do momento que a internet atraiu uma audiência de massa, as operadoras de redes de TV a cabo, começaram a perceber que, com algumas mudanças no sistema, elas poderiam oferecer serviços da Internet de mão dupla em partes não utilizadas do espectro. A televisão a cabo não é a única MAN.

WAN

A Wide Area Network (WAN), Rede de área alargada ou Rede de longa distância, também conhecida como Rede geograficamente distribuída, é uma rede de computadores que abrange uma grande área geográfica, com freqüência um país ou continente. Difere, assim, das PAN, das LAN e das MAN.

A história da WAN começa em 1965 quando Lawrence Roberts e Thomas Merril ligaram dois computadores, um TX-2 em Massachussets a um Q-32 na Califórnia, através de uma linha telefónica de baixa velocidade, criando a primeira rede de área alargada (WAN). A maior WAN que existe é a Internet.

Em geral, as redes geograficamente distribuídas contém conjuntos de servidores, que formam sub-redes. Essas sub-redes têm a função de transportar os dados entre os computadores ou dispositivos de rede.

As Wans tornaram-se necessárias devido ao crescimento das empresas, onde as Lan's não eram mais suficientes para atender a demanda de informações, pois era necessária uma forma de passar informação de uma empresa para outra de forma rapida e eficiente. Ai surgiram as wans, que conectam redes dentro de uma vasta área geográfica, permitindo comunicação a grande distância.

Tráfego de WAN

O tráfego das Wans aumenta continuamente surgindo em função mais congestionamento do que será transportado na rede, definindo as características destes tráfegos (voz, dados, imagens e vídeo), qualidade de serviço(QoS), protocolos ultra compreensão. O tráfego da rede tem que ser modelado através de medições com um grau de resolução elevado, incluindo a analise de pacotes a fim de disponibilizar aos interessados usando técnicas gráficas, estatísticas descritivas, entre outros. Quando ocorre variação na chegada de pacotes isso indica que a Wan está consistente e seu tráfego pode ser acelerado de acordo com as necessidades dos serviços.

Segurança em WAN’s

Ao pensar em segurança em redes de longa distância, é preciso que se tenha em mente que a segurança no trafego de dados é algo imprescindível e exige certos cuidados. Na rede mundial (Internet), milhares de pessoas navegam e nem todos são bem intencionados. Por isso em se tratando de WAN todo cuidado é pouco! Neste contexto todos precisam tomar atitudes que visem aumentar o grau de confiabilidade de sua conexão. Como exemplo podemos citar a comunicação por e-mail, embora muitos achem que tal comunicação é altamente segura, um e-mail pode ser capturado, lido por outros, destruído ou até sofrer modificações de conteúdo. Outro ponto importante é a questão da senha pois é comum que os usuários não dispense muita atenção a isso, mas estudos mostram que um hacker só precisa de 30 segundos para invadir uma máquina mal protegida. É por isto que as empresas investem tanto no quesito segurança. Dentro os recursos mais utilizados pode-se citar: IDS, FIREWALL, CRIPTOGRAFICA, PKI, VPN.

Gerenciamento de WAN’s

Para que possa ser entendido como funciona o gerenciamento de wans, partimos do principio: O gargalo de desempenho é a wan;

Para o perfeito gerencimento de wans existem algumas técnicas envolvendo a largura da banda que devem ser observadas: A utilização de bons roteadores nos ajudam a conservar a largura da banda, ou seja o direcionamento de maneira mais lógica possível,mantendo suas funções equilibradas;

O roteador não propaga broadcast para a wan, garantindo assim uma boa performance; Os roteadores suportam vários protocolos de roteamento podendo assim escolher qual deles em função das suas necessidades é o mais apropriado;

Assim sendo para garantir um bom gerenciamento de uma wan deve-se levar em consideração a utilização de um bom hardware compatível com as necessidades de cada realidade para que possa ser utilizada de forma mais coesa a banda e o tráfego de informações garantindo assim, segurança na transmissão dos dados, levando em consideração no aspecto de escolha, o preço em primeiro lugar,pois as telecons existentes oferecem excelentes serviços de gerenciamento de wans.

Resumo geral: Uma WAN é feita da interconexão de duas ou mais LANs, podendo essas LANs estarem localizadas em prédios diferentes separados por uma rua, ou estarem localizadas em vários países ao redor do mundo. Diferentemente da LAN ela não está limitada a uma área geográfica.

RAN

RAN é a sigla para Regional area network, uma rede de dados que interconecta negócios, residências e governos em uma região geográfica específica. RANs são maiores que local area networks (LANs) e metropolitan area networks (MANs), mas menores que wide area networks (WANs). RANs são comumente caracterizadas pelas conexões de alta velocidade utilizando cabo de fibra óptica ou outra mídia digital.