Prévia do material em texto
Algoritimos
Aplicados a
Engenharia I
Os números e o ábaco
Ábaco.
A capacidade do ser humano em calcular quantidades nos mais variados modos foi um dos fatores que possibilitaram o desenvolvimento da matemática e da lógica. Nos primórdios da matemática e da álgebra, utilizavam-se os dedos das mãos para efetuar cálculos.
Na região do Mar Mediterrâneo, surgiram o alfabeto e o ábaco. O ábaco dos romanos consistia de bolinhas de mármore que deslizavam numa placa de bronze cheia de sulcos. Também surgiram alguns termos matemáticos: em latim "Calx" significa mármore, assim "Calculus" era uma bolinha do ábaco, e fazer cálculos aritméticos era "Calculare".
As primeiras máquinas mecânicas de calcular. A primeira considerada máquina de calcular foi desenvolvida por Wilhelm Schickard em 1592 1635. Ela fazia multiplicação e divisão, mas foi perdida durante a Guerra dos Trinta Anos. A primeira calculadora capaz de realizar as operações básicas de soma e subtração foi inventada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal ano1623,1662. Pascal, que aos 18 anos trabalhava com seu pai em um escritório de coleta de impostos na cidade de Rouen, desenvolveu a máquina para auxiliar o seu trabalho de contabilidade. A calculadora usava engrenagens que a faziam funcionar de maneira similar a um odômetro. Pascal recebeu uma patente do Lista de reis de França rei da França para que lançasse sua máquina no comércio. A comercialização de suas calculadoras não foi satisfatória devido a seu funcionamento pouco confiável, apesar de Pascal ter construído cerca de 50 versões. As máquinas de calcular,ainda hoje podem ser encontradas em uso por algumas lojas de departamentos. Em 1671, o filósofo e matemático alemão de Leipzig,Gottfried Wilhelm Leibniz 21 de junho de 1646 14 de novembro de 1716 introduziu o conceito de realizar multiplicações e divisões através de adições e subtrações sucessivas. Em 1694, a máquina foi construída, no entanto, sua operação apresentava muita dificuldade e sujeita a erros.
Em 1820, o francês natural de Paris, Charles Xavier Thomas, conhecido como Thomas de Colmar, 1785,1870 projetou e construiu uma máquina capaz de efetuar as 4 operações aritméticas básicas: a Arithmomet. Esta foi a primeira calculadora realmente comercializada com sucesso. Ela fazia multiplicações com o mesmo princípio da calculadora de Leibnitz e efetuava as divisões com a assistência do usuário.
A revolução industrial
Em 1801, na França, durante a Revolução Industrial, Joseph Marie Jacquard, mecânico francês, (1752-1834) inventou um tear mecânico controlado por grandes cartões perfurados. Sua máquina era capaz de produzir tecidos com desenhos bonitos e intrincados. Foi tamanho o sucesso que Jacquard foi quase morto quando levou o tear para Lyon, pois as pessoas tinham medo de perder o emprego. Em sete anos, já havia 11 mil teares desse tipo operando na França.
Babbage e Ada
O brilhante matemático inglês Charles Babbage (26 de dezembro de 1791 - 18 de outubro de 1871) é conhecido como o "Pai do Computador". Babbage projetou o chamado "Calculador Analítico", muito próximo da concepção de um computador atual.
Charles Babbage foi um matemático inglês.
O projeto, totalmente mecânico, era composto de uma memória, um engenho central, engrenagens e alavancas usadas para a transferência de dados da memória para o engenho central e dispositivos para entrada e saída de dados. O calculador utilizaria cartões perfurados e seria automático.
Por algum tempo, o governo britânico financiou Babbage para construir a sua invenção.
Em parceria com Charles Babbage, Ada Augusta (1815-1852) ou Lady Lovelace, filha do poeta Lord Byron, era matemática amadora entusiasta. Ela se tornou a pioneira da lógica de programação, escrevendo séries de instruções para o calculador analítico. Ada inventou o conceito de subrotina, descobriu o valor das repetições - os laços (loops) e iniciou o desenvolvimento do desvio condicional.
Babbage teve muitas dificuldades com a tecnologia da época, que era inadequada para se construir componentes mecânicos com a precisão necessária. Com a suspensão do financiamento por parte do governo britânico, Babbage e Ada utilizaram a fortuna da família Byron até a falência, sem que pudessem concluir o projeto, e assim o calculador analítico nunca foi construído.
A lógica booleana
As máquinas do início do século XIX utilizavam base decimal (0 a 9), mas foram encontradas dificuldades em implementar um dígito decimal em componentes eletrônicos, pois qualquer variação provocada por um ruído causaria erros de cálculo consideráveis.
O matemático inglês George Boole (1815-1864) publicou em 1854 os princípios da lógica booleana, onde as variáveis assumem apenas valores 0 e 1 (verdadeiro e falso), que passou a ser utilizada a partir do início do século XX.
Hollerith e sua máquina de perfurar cartões
Por volta de 1890, Dr. Herman Hollerith (1860-1929) foi o responsável por uma grande mudança na maneira de se processar os dados dos censos da época.
Os dados do censo de 1880, manualmente processados, levaram 7 anos e meio para serem compilados. Os do censo de 1890 foram processados em 2 anos e meio, com a ajuda de uma máquina de perfurar cartões e máquinas de tabular e ordenar, criadas por Hollerith e sua equipe.
As informações sobre os indivíduos eram armazenadas por meio de perfurações em locais específicos do cartão. Nas máquinas de tabular, um pino passava pelo furo e chegava a uma jarra de mercúrio, fechando um circuito elétrico e causando um incremento de 1 em um contador mecânico.
Mais tarde, Hollerith fundou uma companhia para produzir máquinas de tabulação. Anos depois, em 1924, essa companhia veio a se chamar IBM.
O primeiro computador
Há uma grande polêmica em torno do primeiro computador. O Z-1 é considerado por muitos como o primeiro computador eletromecânico. Ele usava relés e foi construído pelo alemão Konrad Zuse (1910-1995) em 1936. Zuse tentou vendê-lo ao governo para uso militar, mas foi subestimado pelos nazistas, que não se interessaram pela máquina.
A guerra e os computadores
Com a II Guerra Mundial, as pesquisas aumentaram nessa área. Nos Estados Unidos, a Marinha, em conjunto com a Universidade de Harvard e a IBM, construiu em 1944 o Mark I, um gigante eletromagnético. Num certo sentido, essa máquina era a realização do projeto de Babbage.
Mark I ocupava 120 m3, tinha milhares de relés e fazia muito barulho. Uma multiplicação de números de 10 dígitos levava 3 segundos para ser efetuada.
Em segredo, o exército norte-americano também desenvolvia seu computador. Esse usava apenas válvulas e tinha por objetivo calcular as trajetórias de mísseis com maior precisão.
O engenheiro John Presper Eckert (1919-1995) e o físico John Mauchly (1907-1980) projetaram o ENIAC: Eletronic Numeric Integrator And Calculator. Com 18 000 válvulas, o ENIAC conseguia fazer 500 multiplicações por segundo, porém só ficou pronto em 1946, vários meses após o final da guerra. Os custos para a manutenção e conservação do ENIAC eram proibitivos, pois dezenas a centenas de válvulas queimavam a cada hora e o calor gerado por elas necessitava ser controlado por um complexo sistema de refrigeração, além dos gastos elevadíssimos de energia elétrica.
Gerações de computadores
A arquitetura de um computador depende do seu projeto lógico, enquanto que a sua implementação depende da tecnologia disponível.
As três primeiras gerações de computadores refletiam a evolução dos componentes básicos do computador (hardware) e um aprimoramento dos programas (software) existentes.
Os computadores de primeira geração (1945–1959) usavam válvulas eletrônicas, quilômetros de fios, eram lentos, enormes e esquentavam muito.
A segunda geração (1959–1964) substituiu as válvulas eletrônicas por transístores e os fios de ligação por circuitos impressos, o que tornou os computadores mais rápidos, menores e de custo mais baixo.
A terceira geração de computadores (1964–1970) foi construída com circuitos integrados, proporcionando maiorcompactação, redução dos custos e velocidade de processamento da ordem de microssegundos. Tem início a utilização de avançados sistemas operacionais.
A quarta geração, de 1970 até hoje, é caracterizada por um aperfeiçoamento da tecnologia já existente, proporcionando uma otimização da máquina para os problemas do usuário, maior grau de miniaturização, confiabilidade e velocidade maior, já da ordem de nanossegundos (bilionésima parte do segundo).
O termo quinta geração foi criado pelos japoneses para descrever os potentes computadores "inteligentes" que queriam construir em meados da década de 1990. Posteriormente, o termo passou a envolver elementos de diversas áreas de pesquisa relacionadas à inteligência computadorizada: inteligência artificial, sistemas especialistas e linguagem natural. Mas o verdadeiro foco dessa ininterrupta quinta geração é a conectividade, o maciço esforço da indústria para permitir aos usuários conectarem seus computadores a outros computadores. O conceito de supervia da informação capturou a imaginação tanto de profissionais da computação como de usuários comuns.
Hardware e Software
O Hardware, é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e placas, que se comunicam através de barramentos. Em contraposição ao hardware, o software é a parte lógica, ou seja, o conjunto de instruções e dados que é processado pelos circuitos eletrônicos do hardware. Toda interação dos usuários de computadores modernos é realizada através do software ( Programas, Word, Excel ), que é a camada, colocada sobre o hardware, que transforma o computador em algo útil para o ser humano.
Classificação de Computadores
Os computadores estão disponíveis em formas, em tamanhos diferentes e nos pesos, em devido a estes formas e tamanhos que diferentes executam sortes diferentes dos trabalhos de um outras.
Podem também ser classificados em maneiras diferentes. Free Articles Todos os computadores são projetados pelas arquiteturas de computador qualificadas que projetam estas máquinas como suas exigências.
Um computador que seja usado em um repouso difere no tamanho e na forma do computador que está sendo usado em um hospital. Os computadores agem como um usuário em edifícios grandes, quando o computador diferir também no tamanho e na forma que executam seu trabalho como um forecaster do tempo.
Um estudante que carrega um laptop com ele a sua faculdade é diferente na forma e no tamanho de todos os computadores mencionados acima.
Aqui nós estamos indo introduzir um por um classificações diferentes dos computadores. Nós discutiremos o que estão nas classificações e os que trabalho executam.
Computador Super
O mais grande no tamanho, o mais caro no preço do que qualquer outro é classificado e sabido como o computador super. Pode processar trillions das instruções nos segundos. Este computador não é usado como um PC em um repouso nenhuns por um estudante em uma faculdade.
Os governos usam especialmente este tipo de computador para seus cálculos diferentes e trabalhos pesados. As indústrias diferentes usam também este computador enorme projetando seus produtos.
Em a maioria dos filmes do Hollywood é usado para finalidades do animation. Este tipo do computador é também útil para relatórios do tempo do forecasting worldwide.
Mainframes
Um outro gigante nos computadores depois que o computador super é o Mainframe, que pode também processar milhões da instrução por o segundo e capaz de alcançar billions dos dados.
Este computador é usado geralmente em hospitais grandes, linha de ar companhias dos reservations, e muitas outras companhias enormes preferem o mainframe por causa de sua potencialidade de recuperar dados em uma base enorme.
Isto é normalmente a caro e fora do alcance de uma pessoa salário-baseada que queira um computador para seu repouso.
Este tipo do computador pode custar até milhares dos dólares.
Minicomputer
Este computador é seguinte dentro ele alinha mas menos ofertas mais menos do que o mainframe no trabalho e no desempenho. Estes são os computadores, que são preferidos na maior parte pelo tipo pequeno de personals do negócio, de faculdades, etc.
Computadores pessoais
Quase todos os usuários do computador são familiares com os computadores pessoais. Sabem normalmente o que o computador pessoal é e o que são suas funções.
Este é o computador preferido na maior parte pelos usuários home. Estes computadores estão menos no custo do que os computadores dados acima e também, pequeno no tamanho; são chamados também PCes no short para computadores pessoais.
Este computador é pequeno no tamanho e você pode fàcilmente arranjá-lo para caber em seu único bedroom com sua toda a acomodação. Este é pensado hoje para ser o computador o mais popular em tudo.
Computadores do caderno
Tendo um tamanho pequeno e um peso baixo o caderno é fácil de carregar a em qualquer lugar. Um estudante pode fazer exame d com ele/ela a his/sua escola em seu saco com seu livro.
Isto é fácil de carregar ao redor e preferido por estudantes e por povos do negócio encontrar-se com suas atribuições e outras tarefas necessárias.
A aproximação deste computador é também a mesma que o computador pessoal. Pode armazenar a mesma quantidade de dados e de ter uma memória do mesmo tamanho que aquela de um computador pessoal. Se pode dizer que é a recolocação do computador desktop pessoal.
Configuração de Computadores
Quando vemos em um jornal ou revista um anúncio de computador para vender, nos deparamos com uma série de informações conturbadas e que podem gerar uma verdadeira confusão em nossas cabeças (a menos que você tenha lido esta apostila e entendido tudo que ela quis mostrar até agora). A configuração de um computador é, nada mais, nada menos que a “receita” do computador, ou seja, a listagem dos equipamentos que o formam. É necessário conhecer todos os equipamentos e suas capacidades para avaliar se um computador é mais potente, e conseqüentemente mais caro, que outro.
Listo abaixo algumas configurações de computadores para avaliarmos todas as possibilidades apresentadas em concursos:
1) PENTIUM III 800 MHz; 128MB RAM; 20GB HD; CD 52X; Modem 56K; Vídeo 8MB; Monitor 15"
2) ATHLON 1 GHz; 64MB RAM; 20GB HD; CD 52X; Modem 56K; Vídeo 3D 32MB; Monitor 17"
3) CELERON 700 MHz; 64MB; 30GB HD; CDRW 8x4x32x; Placa ISDN; Vídeo 8MB; Placa Ethernet 10/100; Monitor 15"
Vamos às explicações:
1) Onde aparece PENTIUM III 800 MHz, ATHLON 1 GHz e CELERON 700 MHZ, estamos falando do Processador do computador em questão. Por exemplo, PENTIUM é o modelo dele (do processador) e 800 MHZ é o Clock do mesmo (clock é sinônimo de freqüência do processador). Ou seja, no caso do computador da configuração 1, o processador que está dentro dele é um chip do modelo PENTIUM III cuja freqüência de trabalho é de 800 Mhz.
Esses 800 MHz significam 800 milhões de Hertz (1 Hertz é a repetição de um determinado acontecimento uma vez por segundo). Essa unidade é chamada freqüência (repetição, ciclo). Portanto, um processador de 800 MHz é um processador que possui um pequeno cristal que oscila (pisca) cerca de 800 milhões de vezes por segundo, imprimindo-lhe a velocidade que ele apresenta. Portanto, quanto maior o CLOCK (freqüência) do processador, maior será a velocidade do computador.
Verifique abaixo uma pequena listagem dos processadores mais comuns hoje em dia, que podem ser citados em concursos públicos (esta tabela apresenta os modelos de alguns processadores, além da empresa fabricante e algumas explicações). Lembre-se: Processadores em uma mesma linha são “equivalentes”, ou seja, são da mesma “geração”:
Algumas observações sobre os processadores do mercado: Em concursos públicos, raramente veremos comparações entre Processadores concorrentes (como por exemplo, comparar o PENTIUM III com o ATHLON seria criar uma questão difícil de responder, portanto, se evita isso). Mas é possível comparar o PENTIUM III com o CELERON (o primeiro é superior ao segundo),para saber a “ordem” dos mais “fortes”, analise a tabela, ela começa dos mais “fracos” para os mais robustos.
2) Na mesma configuração acima, onde aparece 128MB e 64MB, estas são as quantidades de memória RAM dos computadores acima citados. Quando mais memória RAM, mais “livre” será executado o trabalho no seu computador, tornando-o um pouco mais rápido. (existem vários tipos de memória RAM, como SDRAM, DRAM, EDO RAM, RAMBUS, etc... mas esse nível de conhecimento, como as diferenças entre elas não são cobradas em concursos).
3) 20GB e 30GB, apresentados nas configurações anteriores, apontam as capacidades de armazenamento dos HDs (Discos Rígidos daquelas máquinas). Um Disco Rígido maior não afeta, de maneira substancial, a velocidade de um computador, mas sim, permite que se possa armazenar mais dados de forma permanente.
4) As unidades de CD dos dois primeiros micros são leitoras e trabalham com uma taxa de transferência de 50X (50 vezes 150Kbps). Já a unidade de CD do terceiro computador é uma unidade que permite a gravação de CDs (Gravador de CD) e suas velocidades são: 8X para Gravar um CD, 4X para Regravar um CD, 32X para ler um CD.
5) Modem 56Kbps é a placa de Modem, que permite a comunicação de dados através de uma linha telefônica convencional. O terceiro micro apresenta uma Placa ISDN, que é um dispositivo que permite a comunicação através de uma linha telefônica DIGITAL (cujo sistema é chamado de ISDN).
6) Placa de vídeo é o nome dado ao equipamento que recebe os dados do processador e os “desenha” no monitor.
Dois dos computadores citados acima usam uma placa de vídeo com 8MB de capacidade de memória (chamada memória de vídeo). O computador do meio usa uma placa de vídeo aceleradora (ideal para programas e jogos que usam recursos de 3D) com 32MB de memória de vídeo.
7) O Monitor é apenas o equipamento que apresenta os dados para o usuário, ele não influencia na velocidade do computador, o monitor só afeta o preço da máquina. Portanto, um monitor de 17” (17 polegadas – tamanho da diagonal do monitor) não é mais “rápido” que um de 15”.
8) O terceiro computador da listagem ainda apresenta uma Placa Ethernet 10/100, que é uma placa de rede. Permite que o computador se conecte a outros através de uma rede local (usando cabos específicos, chamados Cabos de Rede). Um sistema operativo(português europeu) ou sistema operacional(português do Brasil) é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário. É comum utilizar-se a abreviatura SO (em português) ou OS (do inglês Operating System).
Sistemas Operacionais
Software como Programa de Computador
Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um programa correto e funcional, essa sequência segue padrões específicos que resultam em um comportamento desejado.
Um programa pode ser executado por qualquer dispositivo capaz de interpretar e executar as instruções de que é formado.
Quando um software está representado como instruções que podem ser executadas diretamente por um processador dizemos que está escrito em linguagem de máquina. A execução de um software também pode ser intermediada por um programa interpretador, responsável por interpretar e executar cada uma de suas instruções. Uma categoria especial e notável de interpretadores são as máquinas virtuais, como a JVM (Máquina Virtual Java), que simulam um computador inteiro, real ou imaginado.
O dispositivo mais conhecido que dispõe de um processador é o computador. Atualmente, com o barateamento dos microprocessadores, existem outras máquinas programáveis, como telefone celular, máquinas de automação industrial, calculadora, etc.
A Construção de um programa de computador
Um programa é um conjunto de instruções para o processador (linguagem de máquina). Entretanto, pode-se utilizar Linguagens de Programação, que traduza comandos em instruções para o processador.
Normalmente, programas de computador são escritos em linguagens de programação, pois estas foram projetadas para aproximar-se das linguagens usadas por seres humanos. Raramente a linguagem de máquina é usada para desenvolver um programa.
Alguns softwares feitos para usos específicos, como por exemplo software embarcado ou software embutido, ainda são feitos em linguagem de máquina para aumentar a velocidade ou diminuir o espaço consumido. Em todo caso, a melhoria dos processadores dedicados também vem diminuindo essa prática, sendo a C uma linguagem típica para esse tipo de projeto. Essa prática, porém, vem caindo em desuso, principalmente devido à grande complexidade dos processadores atuais, dos sistemas operacionais e dos problemas tratados. Muito raramente, realmente apenas em casos excepcionais, é utilizado o código de máquina, a representação numérica utilizada diretamente pelo processador.
O Programa tem que ser "carregado" na memória principal para ser executado (vide Computador). Após carregar o programa, o computador entra em funcionamento, executando outros programas. As instruções de um programa aplicativo podem ser passadas para o sistema ou diretamente para o hardware, que recebe as instruções na forma de linguagem de máquina.
Tipos de Programas de Computador
Qualquer computador moderno tem uma variedade de programas que fazem diversas tarefas.
Eles podem ser classificados em duas grandes categorias:
1. Software de sistema que incluiu o firmware (O BIOS dos computadores pessoais, por exemplo), drivers de dispositivos, o sistema operacional e tipicamente uma interface gráfica que, em conjunto, permitem ao usuário interagir com o computador e seus periféricos
2. Software aplicativo, que permite ao usuário fazer uma ou mais tarefas específicas. Os softwares aplicativos podem ter uma abrangência de uso de larga escala, muitas vezes em âmbito mundial; nestes casos, os programas tendem a ser mais robustos e mais padronizados. Programas escritos para um pequeno mercado têm um nível de padronização menor.
Ainda é possível usar a categoria Software embutido ou Software embarcado, indicando software destinado a funcionar dentro de uma máquina que não é um computador de uso geral e normalmente com um destino muito específico.
Atualmente temos um novo tipo de software. O software como serviço, que é um tipo que roda diretamente na internet, não sendo necessário instalar nada no computador do usuário. Geralmente esse tipo de software é gratuito e tem as mesmas funcionalidades das versões desktop
Um sistema operativo(português europeu) ou sistema operacional(português do Brasil) é um programa ou um conjunto de programas cuja função é servir de interface entre um computador e o usuário. É comum utilizar-se a abreviatura SO (em português) ou OS (do inglês Operating System).
Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:
pela perspectiva do usuário ou programador (visão top-down): é uma abstração do hardware, fazendo o papel de intermediário entre o aplicativo (programa) e os componentes físicos do computador (hardware); ou numa visão bottom-up, de baixo para cima: é um gerenciador de recursos, i.e., controla quais aplicações (processos) podem ser executadas, quando, que recursos (memória, disco, periféricos) podem ser utilizados.
História
Na primeira geração de computadores (aproximadamente 1945-1955), que eram basicamente construídos com válvulas e painéis, os sistemas operacionais não existiam. Os programadores, que também eram os operadores, controlavam o computador por meio de chaves, fios e luzes de aviso.
Na geração seguinte (aproximadamente 1955-1965), foram criados os sistemas em lote (batch systems), que permitiram melhor uso dos recursos computacionais. A base do sistema operacional era um programa monitor, usado para enfileirar tarefas (jobs). O usuário foi afastado do computador; cada programa era escrito em cartões perfurados,que por sua vez eram carregados, juntamente com o respectivo compilador (normalmente Fortran ou Cobol), por um operador, que por sua vez usava uma linguagem de controle chamada JCL (job control language).
No início da computação os primeiros sistemas operacionais eram únicos, pois cada mainframe vendido necessitava de um sistema operacional específico. Esse problema era resultado de arquiteturas diferentes e da linguagem de máquina utilizada. Após essa fase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas (jobs), pois os sistemas eram monousuários e tinham cartões perfurados como entrada (eliminando, assim, o trabalho de pessoas que eram contratadas apenas para trocar os cartões perfurados).
Um dos primeiros sistemas operacionais de propósito geral foi o CTSS, desenvolvido no MIT. Após o CTSS, o MIT, os laboratórios Bell da AT&T e a General Eletric desenvolveram o Multics, cujo objetivo era suportar centenas de usuários. Apesar do fracasso comercial, o Multics serviu como base para o estudo e desenvolvimento de sistemas operacionais. Um dos desenvolvedores do Multics, que trabalhava para a Bell, Ken Thompson, começou a reescrever o Multics num conceito menos ambicioso, criando o Unics (em 1969), que mais tarde passou a chamar-se Unix. Os sistemas operacionais eram geralmente programandos em assembly, até mesmo o Unix em seu início. Então, Dennis Ritchie (também da Bell) criou a linguagem C a partir da linguagem B, que havia sido criada por Thompson. Finalmente, Thompson e Ritchie reescreveram o Unix em C. O Unix criou um ecossistema de versões, onde destacam-se: System V e derivados (HP-UX, AIX); família BSD (FreeBSD, NetBSD, OpenBSD, etc.), Linux e até o Mac OS X (que deriva do Mach e FreeBSD).
Na década de 1970, quando começaram a aparecer os computadores pessoais, houve a necessidade de um sistema operacional de utilização mais fácil. Em 1980, William (Bill) Gates e seu colega de faculdade, Paul Allen, fundadores da Microsoft, compram o sistema QDOS ("Quick and Dirty Operating System") de Tim Paterson por $50.000, batizam-no de DOS (Disk Operating System) e vendem licenças à IBM. O DOS vendeu muitas cópias, como o sistema operacional padrão para os computadores pessoais desenvolvidos pela IBM.
No começo da década de 1990, um estudante de computação finlandês postou um comentário numa lista de discussão da Usenet dizendo que estava desenvolvendo um kernel de sistema operacional e perguntou se alguém gostaria de auxiliá-lo na tarefa. Este estudante chamava-se Linus Torvalds e o primeiro passo em direção ao tão conhecido Linux foi dado naquele momento.
Visão geral
Um sistema operativo pode ser visto como um programa de grande complexidade que é responsável por todo o funcionamento de uma máquina desde o software a todo hardware instalado na máquina. Todos os processos de um computador estão por de trás de uma programação complexa que comanda todas a funções que um utilizador impõe à máquina. Existem vários sistemas operativos; entre eles, os mais utilizados no dia a dia, normalmente utilizados em computadores domésticos, são o Windows, Linux e Mac OS X.
Um computador com o sistema operativo instalado poderá não dar acesso a todo o seu conteúdo dependendo do utilizador. Com um sistema operativo, podemos estabelecer permissões a vários utilizadores que trabalham com este. Existem dois tipos de contas que podem ser criadas num sistema operativo, as contas de Administrador e as contas limitadas. A conta Administrador é uma conta que oferece todo o acesso à máquina, desde a gestão de pastas, ficheiros e software de trabalho ou entretenimento ao controlo de todo o seu Hardware instalado. A conta Limitada é uma conta que não tem permissões para aceder a algumas pastas ou instalar software que seja instalado na raiz do sistema ou então que tenha ligação com algum Hardware que altere o seu funcionamento normal ou personalizado pelo Administrador. Para que este tipo de conta possa ter acesso a outros conteúdos do disco ou de software, o administrador poderá personalizar a conta oferecendo permissões a algumas funções do sistema como também poderá retirar acessos a certas áreas do sistema.
O sistema operativo funciona com a iniciação de processos que este irá precisar para funcionar correctamente. Esses processos poderão ser ficheiros que necessitam de ser frequentemente actualizados, ou ficheiros que processam dados úteis para o sistema. Poderemos ter acesso a vários processos do sistema operativo a partir do gestor de tarefas, onde se encontram todos os processos que estão em funcionamento desde o arranque do sistema operativo até a sua utilização actual. Pode-se também visualizar a utilização da memória por cada processo, no caso de o sistema operativo começar a mostrar erros ou falhas de acesso a programas tornando-se lento, pode-se verificar no gestor de tarefas qual dos processos estará bloqueado ou com elevado número de processamento que está a afectar o funcionamento normal da memória.
Funcionamento
Um sistema operacional possui as seguintes funções:
1. gerenciamento de processos;
2. gerenciamento de memória;
3. sistema de arquivos;
4. entrada e saída de dados.
Gerenciamento de processos
O sistema operacional multitarefa é preparado para dar ao usuário a ilusão que o número de processos em execução simultânea no computador é maior que o número de processadores instalados. Cada processo recebe uma fatia do tempo e a alternância entre vários processos é tão rápida que o usuário pensa que sua execução é simultânea.
São utilizados algoritmos para determinar qual processo será executado em determinado momento e por quanto tempo.
Os processos podem comunicar-se, isto é conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados são:
· sinais,
· pipes,
· named pipes,
· memória compartilhada,
· soquetes (sockets),
· semáforos,
· trocas de mensagens.
O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interrompível, o que significa que pode ser interrompido no meio da execução de uma tarefa.
Gerenciamento de memória
O sistema operacional tem acesso completo à memória do sistema e deve permitir que os processos dos usuários tenham acesso seguro à memória quando o requisitam.
Vários sistemas operacionais usam memória virtual, que possui 3 funções básicas:
1. assegurar que cada processo tenha seu próprio espaço de endereçamento, começando em zero, para evitar ou resolver o problema de relocação (Tanenbaum, 1999);
2. prover proteção da memória para impedir que um processo utilize um endereço de memória que não lhe pertença;
3. possibilitar que uma aplicação utilize mais memória do que a fisicamente existente.
Sistema de arquivos
A memória principal do computador é volátil, e seu tamanho é limitado pelo custo do hardware. Assim, os usuários necessitam de algum método para armazenar e recuperar informações de modo permanente.
Um arquivo é um conjunto de bytes, normalmente armazenado em um dispositivo periférico não volátil (p.ex., disco), que pode ser lido e gravado por um ou mais processos.
O sistema de arquivos é a estrutura que permite o gerenciamento de arquivos -- criação, destruição, leitura, gravação, controle de acesso, etc.
Classificações
Em relação ao seu projeto (arquitetura), segundo Tanenbaum (1999):
· Kernel monolítico ou monobloco: o kernel consiste em um único processo executando numa memória protegida (espaço do kernel) executando as principais funções. Ex.: Windows, Linux, FreeBSD.
· Microkernel ou modelo cliente-servidor: o kernel consiste de funções mínimas (comunicação e gerenciamento de processos), e outras funções, como sistemas de arquivos e gerenciamento de memória, são executadas no espaço do usuário como serviços; as aplicações (programas) são os clientes. Ex.: GNU Hurd, Mach.
· Sistema em camadas:funções do kernel irão executar em camadas distintas, de acordo com seu nível de privilégio. Ex.: Multics.
· Monitor de máquinas virtuais: fornece uma abstração do hardware para vários sistemas operacionais. Ex.: VM/370, VMware, Xen.
Quanto à capacidade de processamento, pode-se usar a seguinte classificação:
Monotarefa: pode-se executar apenas um processo de cada vez Ex.: DOS.
· Multitarefa: além do próprio SO, vários processos de utilizador (tarefas) estão carregados em memória, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador é distribuído de modo que o usuário tenha a impressão que vários processos estão sendo executados simultaneamente. Ex: Windows, Linux, FreeBSD e o Mac OS X.
Multiprocessamento ou multiprogramação: o SO pode distribuir as tarefas entre vários processadores.
Monousuário: sistema operacional pode responder apenas para um único usuário por vez. Ex.: Windows voltado para usuário final.
Multiusuário: sistema operacional pode responder por "N" usuários ao mesmo tempo. Ex.: UNIX, LINUX, todos da familia BSD e etc.
Rede de Computadores
Ir para: navegação, pesquisa
Uma rede de computadores consiste de 2 ou mais computadores e outros dispositivos ligados entre si e compartilhando dados, impressoras, trocando mensagens (e-mails), etc. Internet é um exemplo de Rede. Existem várias formas e recursos de vários equipamentos que podem ser interligados e compartilhados, mediante meios de acesso, protocolos e requisitos de segurança.
Um conector RJ-45 usado para conectar redes em informática.
História
Antes do advento de computadores baseadas em algum tipo de sistema de telecomunicação, a comunicação entre máquinas calculadoras e computadores antigos era realizada por usuários humanos através do carregamento de instruções entre eles.
Em setembro de 1940, George Stibitz usou uma máquina de teletipo para enviar instruções para um conjunto de problemas a partir de seu Model K na Faculdade de Dartmouth em Nova Hampshire para a sua em Nova Iorque e recebeu os resultados de volta pelo mesmo meio. Conectar sistemas de saída como teletipos a computadores era um interesse na Advanced Research Projects Agency (ARPA) quando, em 1962, J. C. R. Licklider foi contratado e desenvolveu um grupo de trabalho o qual ele chamou de a “Rede Intergaláctica”, um precursor da ARPANet.
Em 1964, pesquisadores de Dartmouth desenvolveram o Sistema de Compartilhamento de Tempo de Dartmouth para usuários distribuídos de grandes sistemas de computadores. No mesmo ano, no MIT, um grupo de pesquisa apoiado pela General Electric e Bell Labs usou um computador (DEC’s PDP-8) para rotear e gerenciar conexões telefônicas.
Durante a década de 1960, Leonard Kleinrock, Paul Baran e Donald Davies, de maneira independente, conceituaram e desenvolveram sistemas de redes os quais usavam datagramas ou pacotes, que podiam ser usados em uma rede de comutação de pacotes entre sistemas de computadores.
Em 1969, a Universidade da Califórnia em Los Angeles, SRI (em Stanford), a Universidade da Califórnia em Santa Bárbara e a Universidade de Utah foram conectadas com o início da rede ARPANet usando circuitos de 50 kbits/s.
Redes de computadores e as tecnologias necessárias para conexão e comunicação através e entre elas continuam a comandar as indústrias de hardware de computador, software e periféricos. Essa expansão é espelhada pelo crescimento nos números e tipos de usuários de redes, desde o pesquisador até o usuário doméstico.
Atualmente, redes de computadores são o núcleo da comunicação moderna. O escopo da comunicação cresceu significativamente na década de 1990 e essa explosão nas comunicações não teria sido possível sem o avanço progressivo das redes de computador.
Classificação
Segundo a Arquitetura de Rede:
Arcnet
· ARCNET (envolvendo o acrónimo para o inglês Attached Resource Computer NETwork) é um protocolo de rede local semelhante em objetivos à Ethernet ou Token Ring. ARCNET foi o primeiro sistema de redes largamente disponível para microcomputadores e tornou-se popular nos anos 80 para tarefas de automação de escritório. Desde então ela ganhou uma continuidade no mercado de sistemas embarcados, onde certas características do protocolo são especialmente úteis. Em outubro de 1992, o grupo ANSI especificou o protocolo ARCnet como ATA/ANSI 878.1 Local Área Network Standard.
· Uma das aplicações mais comuns para o protocolo ARCNET é controle de tráfego de dados em fibra óptica. Esse tipo de rede é estruturada com um centralizador ou HUB e diversos componentes com capacidade de conexão via par de cabos (RX e TX) de fibra óptica. Alguns exemplos de aplicação prática são o controle de equipamentos CLP, minilaboratórios fotográficos ou minilabs digitais.
Ethernet
História
A Ethernet foi originalmente desenvolvida como um, entre muitos, projeto pioneiro da Xerox PARC. Entende-se, em geral, que a Ethernet foi inventada em 1973, quando Robert Metcalfe escreveu um memorando para os seus chefes contando sobre o potencial dessa tecnologia em redes locais. Contudo, Metcalfe afirma que, na realidade, a Ethernet foi concebida durante um período de vários anos. Em 1976, Metcalfe e David Boggs (seu assistente) publicaram um artigo, Ethernet: Distributed Packet-Switching For Local Computer Networks.
Metcalfe deixou a Xerox em 1979 para promover o uso de computadores pessoais e redes locais (LANs), e para isso criou a 3Com. Ele conseguiu convencer DEC, Intel, e Xerox a trabalhar juntas para promover a Ethernet como um padrão, que foi publicado em 30 de setembro de 1980. Competindo com elas na época estavam dois sistemas grandemente proprietários, token ring e ARCNET. Em pouco tempo ambos foram afogados por uma onda de produtos Ethernet. No processo a 3Com se tornou uma grande companhia.Disso também seja o o fato de que a 3Com também seja conhecida por U.S Robotics, também uma fabricante de processadores.
Descrição geral
Uma placa de rede Ethernet típica com conectores BNC (esquerda) e RJ-45 (centro).
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.
Tem sido observado que o tráfego Ethernet tem propriedades de auto-similaridade, com importantes conseqüências para engenharia de tráfego de telecomunicações..
Ethernet com meio compartilhado CSMA/CD
Um esquema conhecido como Carrier Sense Multiple Access with Collision Detection (CSMA/CD) organizava a forma como os computadores compartilhavam o canal. Originalmente desenvolvido nos anos 60 para ALOHAnet - Hawaii usando Rádio, o esquema é relativamente simples se comparado ao token ring ou rede de controle central (master controlled networks). Quando um computador deseja enviar alguma informação, este obedece o seguinte algoritmo:
1. Se o canal está livre, inicia-se a transmissão, senão vai para o passo 4;
2. [transmissão da informação] se colisão é detectada, a transmissão continua até que o tempo mínimo para o pacote seja alcançado (para garantir que todos os outros transmissores e receptores detectem a colisão), então segue para o passo 4;
3. [fim de transmissão com sucesso] informa sucesso para as camadas de rede superiores, sai do modo de transmissão;
4. [canal está ocupado] espera até que o canal esteja livre;
5. [canal se torna livre] espera-se um tempo aleatório, e vai para o passo 1, a menos que o número máximo de tentativa de transmissão tenha sido excedido;
6. [número máximo de tentativa de transmissão excedido] informa falha para as camadas de rede superiores, sai do modo de transmissão;
Naprática, funciona como um jantar onde os convidados usam um meio comum (o ar) para falar com um outro. Antes de falar, cada convidado educadamente espera que outro convidado termine de falar. Se dois convidados começam a falar ao mesmo tempo, ambos param e esperam um pouco, um pequeno período. Espera-se que cada convidado espere por um tempo aleatório de forma que ambos não aguardem o mesmo tempo para tentar falar novamente, evitando outra colisão. O tempo é aumentado exponencialmente se mais de uma tentativa de transmissão falhar.
Originalmente, a Ethernet fazia, literalmente, um compartilhamento via cabo coaxial, que passava através de um prédio ou de um campus universitário para interligar cada máquina. Os computadores eram conectados a uma unidade transceiver ou interface de anexação (Attachment Unit Interface, ou AUI), que por sua vez era conectada ao cabo. Apesar de que um fio simples passivo fosse uma solução satisfatória para pequenas Ethernets, não o era para grandes redes, onde apenas um defeito em qualquer ponto do fio ou em um único conector fazia toda a Ethernet parar.
Como todas as comunicações aconteciam em um mesmo fio, qualquer informação enviada por um computador era recebida por todos os outros, mesmo que a informação fosse destinada para um destinatário específico. A placa de interface de rede descarta a informação não endereçada a ela, interrompendo a CPU somente quando pacotes aplicáveis eram recebidos, a menos que a placa fosse colocada em seu modo de comunicação promíscua. Essa forma de um fala e todos escutam definia um meio de compartilhamento de Ethernet de fraca segurança, pois um nodo na rede Ethernet podia escutar às escondidas todo o trafego do cabo se assim desejasse. Usar um cabo único também significava que a largura de banda (bandwidth) era compartilhada, de forma que o tráfego de rede podia tornar-se lentíssimo quando, por exemplo, a rede e os nós tinham de ser reinicializados após uma interrupção elétrica.
Hubs Ethernet
Este problema foi contornado pela invenção de hubs Ethernet, que 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 em vez 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.
Já que os pacotes são tipicamente entregues somente na porta para que são endereçadas, o tráfego numa Ethernet comutada é levemente menos público que numa Ethernet de mídia compartilhada. Contudo, como é fácil subverter sistemas Ethernet comutados por meios como ARP spoofing e MAC flooding, bem como por administradores usando funções de monitoramento para copiar o tráfego da rede, a Ethernet comutada ainda é considerada como uma tecnlogia de rede insegura.
Tipos de quadro Ethernet e o campo EtherType
Há quatro tipos de quadro Ethernet :
· Ethernet original versão I (não mais usado)
· O quadro Ethernet versão 2 ou quadro Ethernet II, chamado quadro DIX (iniciais de DEC, Intel, e Xerox). É o mais comum atualmente, já que é muitas vezes usado diretamente pelo Protocolo Internet.
quadro IEEE 802.x LLC
quadro IEEE 802.x LLC/SNAP
Os tipos diferentes de frame têm formatos e valores de MTU diferentes, mas podem coexistir no mesmo meio físico.
A Ethernet Versão 1 original da Xerox tinha um campo de comprimento de 16 bits, embora o tamanho máximo de um pacote fosse 1500 bytes. Esse campo de comprimento foi logo reusado na Ethernet Versão 2 da Xerox como um campo de rótulo, com a convenção de que valores entre 0 e 1500 indicavam o uso do formato Ethernet original, mas valores maiores indicavam o que se tornou conhecido como um EtherType, e o uso do novo formato de frame. Isso agora é suportado nos protocolos IEEE 802 usando o header SNAP.
O IEEE 802.x definiu o campo de 16 bits após o endereço MAC como um campo de comprimento de novo. Como o formato de frames do Ethernet I não é mais usado, isso permite ao software determinar se um frame é do Ethernet II ou do IEEE 802.x, permitindo a coexistência dos dois padrões no mesmo meio físico. Todos os frames 802.x têm um campo LLC. Examinando o campo LLC, é possível determinar se ele é seguido por um campo SNAP.
As variantes 802.x de Ethernet não são de uso geral em redes comuns. O tipo mais comum usado hoje é a Ethernet Versão 2, já que é usada pela maioria das redes baseadas no Protocolo da Internet, com seu EtherType setado em 0x0800. Existem técnicas para encapsular tráfego IP em frames IEEE 802.3, por exemplo, mas isso não é comum.
Variedades de Ethernet
Além dos tipos de frames mencionados acima, a maioria das diferenças entre as variedades de Ethernet podem ser resumidas em variações de velocidade e cabeamento. Portanto, em geral, a pilha do software de protocolo de rede vai funcionar de modo idêntico na maioria dos tipos a seguir.
As seções seguintes provêem um breve sumário de todos os tipos de mídia Ethernet oficiais. Em adição a esses padrões, muitos fabricantes implementaram tipos de mídia proprietários por várias razões, geralmente para dar suporte a distâncias maiores com cabeamento de fibra ótica.
Algumas variedades antigas de Ethernet
Xerox Ethernet -- a implementação original de Ethernet, que tinha 5 versões, Versão 1 e Versão 2, durante seu desenvolvimento. O formato de frame da versão 2 ainda está em uso comum.
· 10BASE5 (também chamado Thicknet) -- esse padrão antigo da IEEE usa um cabo coaxial simples em que você literalmente conseguia uma conexão furando o cabo para se conectar ao núcleo. É um sistema obsoleto, embora devido a sua implantação largamente difundida antigamente, talvez ainda possa ser utilizado por alguns sistemas.
10BROAD36 -- Obsoleto. Um padrão antigo suportando Ethernet para distâncias mais longas. Utilizava técnicas de modulação de banda larga similares àquelas empregadas em sistemas de cable modem, e operava com cabo coaxial.
· 1BASE5 -- Uma tentativa antiga de padronizar uma solução de LAN de baixo custo, opera a 1 Mbit/s e foi um fracasso comercial.
· StarLAN 1 -- A primeira implementação de Ethernet com cabeamento de par trançado.
10 Mbit/s Ethernet
· 10BASE2 (também chamado ThinNet ou Cheapernet) -- Um cabo coaxial de 50-ohm conecta as máquinas, cada qual usando um adaptador T para conectar seu NIC. Requer terminadores nos finais. Por muitos anos esse foi o padrão dominante de ethernet de 10 Mbit/s.
· 10BASE5 (também chamado Thicknet) -- Especificação Ethernetde banda básica de 10 Mbps, que usa o padrão (grosso) de cabo coaxial de banda de base de 50 ohms. Faz parte da especificação de camada física de banda de base IEEE 802.3, tem um limite de distância de 500 metros por segmento.
· StarLAN 10 -- Primeira implementação de Ethernet em cabeamento de par trançado a 10 Mbit/s. Mais tarde evoluiu para o 10BASE-T.
· 10BASE-T -- Opera com 4 fios (dois conjuntos de par trançado) num cabo de cat-3 ou cat-5. Um hub ou switch fica no meio e tem uma porta para cada nó da rede. Essa é também a configuração usada para a ethernet 100BASE-T e a Gigabit.
FOIRL -- Link de fibra ótica entre repetidores. O padrão original para ethernet sobre fibra.
10BASE-F -- um termo genérico para a nova família de padrões de ethernet de 10 Mbit/s: 10BASE-FL, 10BASE-FB e 10BASE-FP. Desses, só o 10BASE-FL está em uso comum (todos utilizando a fibra óptica como meio físico).
10BASE-FL -- Uma versão atualizada do padrão FOIRL.
· 10BASE-FB -- Pretendia ser usada por backbones conectando um grande número de hubs ou switches, agora está obsoleta.
10BASE-FP -- Uma rede passiva em estrela que não requer repetidores, nunca foi implementada.
Fast Ethernet
100BASE-T -- Designação para qualquer dos três padrões para 100 Mbit/s ethernet sobre cabo de par trançado. Inclui 100BASE-TX, 100BASE-T4 e 100BASE-T2.
· 100BASE-TX -- Usa dois pares, mas requer cabo cat-5. Configuração "star-shaped" idêntica ao 10BASE-T. 100Mbit/s.
· 100BASE-T4 -- 100 Mbit/s ethernet sobre cabeamento cat-3 (Usada em instalações 10BASE-T). Utiliza todos os quatro pares no cabo. Atualmente obsoleto, cabeamento cat-5 é o padrão. Limitado a Half-Duplex.
100BASE-T2 -- Não existem produtos. 100 Mbit/s ethernet sobre cabeamento cat-3. Suporta full-duplex, e usa apenas dois pares. Seu funcionamento é equivalente ao 100BASE-TX, mas suporta cabeamento antigo.
· 100BASE-FX -- 100 Mbit/s ethernet sobre fibra óptica. Usando fibra ótica multimodo 62,5 mícrons tem o limite de 400 metros.
Gigabit Ethernet
· 1000BASE-T -- 1 Gbit/s sobre cabeamento de cobre categoria 5e ou 6.
· 1000BASE-SX -- 1 Gbit/s sobre fibra.
· 1000BASE-LX -- 1 Gbit/s sobre fibra. Otimizado para distâncias maiores com fibra mono-modo.
· 1000BASE-CX -- Uma solução para transportes curtos (até 25m) para rodar ethernet de 1 Gbit/s num cabeamento especial de cobre. Antecede o 1000BASE-T, e agora é obsoleto.
10-Gigabit Ethernet
O novo padrão Ethernet de 10 gigabits abrange 7 tipos diferentes de mídias para uma LAN, MAN e WAN. Ele está atualmente especificado por um padrão suplementar, IEEE 802.3ae, e será incorporado numa versão futura do padrão IEEE 802.3.
· 10GBASE-SR -- projetado para suportar distâncias curtas sobre cabeamento de fibra multi-modo, variando de 26m a 82m dependendo do tipo de cabo. Suporta também operação a 300m numa fibra multi-modo de 2000 MHz.
10GBASE-LX4 -- usa multiplexação por divisão de comprimento de ondas para suportar distâncias entre 240m e 300m em cabeamento multi-modo. Também suporta 10km com fibra mono-modo.
10GBASE-LR e 10GBASE-ER -- esses padrões suportam 10km e 40km respectivamente sobre fibra mono-modo.
· 10GBASE-SW, 10GBASE-LW e 10GBASE-EW. Essas variedades usam o WAN PHY, projetado para interoperar com equipamentos OC-192 / STM-64 SONET/SDH. Eles correspondem à camada física do 10GBASE-SR, 10GBASE-LR e 10GBASE-ER respectivamente, e daí usam os mesmos tipos de fibra e suportam as mesmas ditâncias. (Não há um padrão WAN PHY correspondendo ao 10GBASE-LX4.)
Ethernet de 10 gigabit é muito nova, e continua em vistas sobre qual padrão vai ganhar aceitação comercial.
Padrões Relacionados
Esses padrões de rede não são parte do padrão Ethernet IEEE 802.3 Ethernet, mas suportam o formato de frame ethernet, e são capazes de interoperar com ele.
· Wireless Ethernet (IEEE 802.11) -- Frequentemente rodando a 2 Mbit/s (802.11legacy), 11 Mbit/s (802.11b) ou 54 Mbit/s (802.11g).
· 100BaseVG -- Um rival precoce para a ethernet de 100 Mbit/s. Ele roda com cabeamento categoria 3. Usa quatro pares. Um fracasso, comercialmente.
· TIA 100BASE-SX -- Promovido pela Telecommunications Industry Association. O 100BASE-SX é uma implementação alternativa de ethernet de 100 Mbit/s em fibra ótica; é incompatível com o padrão oficial 100BASE-FX. Sua característica principal é a interoperabilidade com o 10BASE-FL, suportando autonegociação entre operações de 10 Mbit/s e 100 Mbit/s -- uma característica que falta nos padrões oficiais devido ao uso de comprimentos de ondas de LED diferentes. Ele é mais focado para uso na base instalada de redes de fibra de 10 Mbit/s.
· TIA 1000BASE-TX -- Promovido pela Telecommunications Industry Association, foi um fracasso comercial, e nenhum produto desse padrão existe. O 1000BASE-TX usa um protocolo mais simples que o padrão oficial 1000BASE-T, mas requer cabeamento categoria 6
· Token ring
· História
· Desenvolvida pela IBM em meados de 1980, essa arquitetura opera a uma velocidade de transmissão de 4 a 16 Mbps, utilizando como meio de transmissão o par trançado, sendo que, o protocolo token funciona passando uma permissão de transmissão para cada estação do anel consecutivamente e essa permissão fornecida pelo protocolo é chamada de token (bastão ou ficha de passagem) a qual vai passando de estação em estação na rede. O controle dos dados transmitidos e a permissão para transmissão são feitos pelo protocolo Token-Passing utilizado em redes locais, sendo que, as redes padrão Token Ring usam como meio de transmissão um barramento em forma de anel. O Token ou permissão de transmissão é um recurso que é atribuído pela estação transmissora a um usuário em um dado instante de tempo dando a este usuário o direito exclusivo de executar determinados serviços. O Token é um pequeno bloco de dados composto de três bytes. Os HUBs Token Ring (chamados de MAU, Multistation Access Unit), executam uma função que é realizada dentro do HUB o qual isola nós de rede que apresentem problemas para não interromper a passagem dos dados. A principal diferença desta arquitetura a Ethernet, é que nesta cada equipamento tem um tempo certo para enviar seus dados para a rede. Mesmo que a rede esteja livre, o equipamento deve esperar o seu tempo para enviar mensagem. Na Ethernet, todas as máquinas tem a mesma prioridade, assim podem ocorrer colisões. Na Token Ring não existe possibilidade de colisões. A principal diferença entre um HUB da Ethernet e um MAU da Token Ring, é que no primeiro todas as máquinas recebem a mensagem, enquanto no segundo (MAU), os dados são enviados para a próxima máquina do anel (lógico), até que encontre o seu destino. A codificação utilizada para transmitir dados através do cabeamento é codificação Manchester.
· Topologia
· A topologia das redes Token Ring é em anel e nela circula uma ficha (token). A circulação da ficha é comandada por cada micro da rede. Cada micro recebe a ficha, e, caso ela esteja vazia, tem a oportunidade de enviar um quadro de dados para um outro micro da rede, “enchendo” a ficha.Em seguida, esse computador transmite a ficha para o próximo micro do anel. A ficha fica circulando infinitamente. Caso ela esteja cheia, ela circula até chegar na máquina que tenha o endereço de destino especificado no quadro de dados. Caso ela dê uma volta inteira no anel e não atinja a máquina de destino, o computador monitor percebe isso e toma as providências necessárias (esvaziar a ficha e retornar uma mensagem de erro para o micro transmissor), já que o micro de destino não existe na rede. Ao atingir o computador de destino, este “esvazia” a ficha e manda ela de volta para o computador transmissor, marcando a ficha como “lida”. Caso a ficha esteja vazia, ela continua circulando infinitamente até que alguma máquina queira transmitir dados para a rede.
· Cablagem
· As redes Token Ring utilizam o cabo par trançado com blindagem de 150 ohms. A IBM chama a esse cabo de tipo 1. Atinge taxas de transferência de até 100 Mbps. Já o cabo Tipo1A é um cabo que consegue operar com taxas deaté 300 Mbps. Importante notar que a arquitectura Token Ring opera tipicamente a 4 Mbps ou 16 Mbps. Taxas mais altas estão a ser implementadas, especialmente com o aparecimento de cabos que conseguem operar a taxas muito maiores do que estas: 100 Mbps e 1 Gbps.
FDDI
· Ir para: navegação, pesquisa
Protocolos Internet (TCP/IP)
Camada
Protocolo
5.Aplicação
HTTP, SMTP, FTP, SSH, RTP, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS, Ping ...
4.Transporte
TCP, UDP, SCTP, DCCP ...
3.Rede
IP (IPv4, IPv6) , ARP, RARP, ICMP, IPSec ...
2.Enlace
Ethernet, 802.11 WiFi, IEEE 802.1Q, 802.11g, HDLC, Token ring, FDDI, PPP, Frame Relay,
1.Física
Modem, RDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, ...
· O padrão FDDI (Fiber Distributed Data Interface) foi estabelecido pelo ANSI (American National Standards Institute) em 1987. Este abrange o nível físico e de ligação de dados (as primeiras duas camadas do modelo OSI).
· A expansão de redes de âmbito mais alargado, designadamente redes do tipo MAN (Metropolitan Area Network), são algumas das possiblidades do FDDI, tal como pode servir de base à interligação de redes locais, como nas redes de campus.
· As redes FDDI adotam uma tecnologia de transmissão idêntica às das redes Token Ring, mas utilizando, vulgarmente, cabos de fibra óptica, o que lhes concede capacidades de transmissão muito elevadas (na casa dos 100 Mbps (apenas 100 Mbps?) ou mais) e a oportunidade de se alargarem a distâncias de até 200 Km, conectando até 1000 estações de trabalho. Estas particularidades tornam esse padrão bastante indicado para a interligação de redes através de um backbone – nesse caso, o backbone deste tipo de redes é justamente o cabo de fibra óptica duplo, com configuração em anel FDDI, ao qual se ligam as sub-redes. FDDI utiliza uma arquitetura em anel duplo.
ISDN
· RDIS
· Ir para: navegação, pesquisa
· RDIS (acrónimo para Rede Digital Integrada de Serviços ou Rede Digital com Integração de Serviços) ou RDSI (Rede Digital de Serviços Integrados), traduções alternativas do inglês ISDN (Integrated Service Digital Network), é uma tecnologia que usa o sistema telefónico comum. O ISDN já existe há algum tempo, sendo consolidado nos anos de 1984 e 1986, sendo umas das pioneiras na tecnologia xDSL.
· A conexão pode ser realizada até uma taxa de transmissão de 128Kbps, através de duas linhas de até 64 Kbps, que são usadas tanto para conexão com a Internet quanto para chamadas telefónicas de voz normais. É possível efetuar a conexão em apenas 64Kbps e deixando a outra linha disponível para chamadas de voz. Caso esteja conectado a 128 Kbps, ou seja, usando as duas linhas, não será possível realizar ou receber chamadas telefónicas. É possível também fazer duas chamadas telefónicas simultâneas, cada uma usando uma linha de 64 Kbps.
· Esta taxa 128Kbps ocorre pelo fato da comunicação com a central telefônica ocorrer de forma digital em todo o percurso, ao invés de forma analógica. Isto é explicado da seguinte forma: a largura de banda de uma linha analógica comum é de 4KHz, e numa linha ISDN este valor é de 128Kbps, fazendo com que os 4KHz de sinal não existam mais, pois a linha conectada com a central de telefonia não trabalha com sinais analógicos.
Telefone RDIS
Visão frontal do RDIS Eumex 220PC
Frame Relay
Ir para: navegação, pesquisa
O Frame Relay é uma eficiente tecnologia de comunicação de dados usada para transmitir de maneira rápida e barata a informação digital através de uma rede de dados, dividindo essas informações em frames (quadros) a um ou muitos destinos de um ou muitos end-points. Em 2006, a internet baseada em ATM e IP nativo começam, lentamente, a impelir o desuso do frame relay. Também o advento do VPN e de outros serviços de acesso dedicados como o Cable Modem e o dsl, aceleram a tendência de substituição do frame relay. Há, entretanto, muitas áreas rurais onde o DSL e o serviço de cable modem não estão disponíveis e a modalidade de comunicação de dados mais econômica muitas vezes é uma linha frame relay. Assim, uma rede de lojas de varejo, por exemplo, pode usar frame relay para conectar lojas rurais ou interioranas em sua WAN corporativa. (provavelmente com a adoção de uma VPN para segurança).
O frame-relay é uma técnica de comutação de quadros efetuada de maneira confiável, considerando as seguintes caractéristicas: Redes locais com um serviço orientado a conexão, operando no nivel 2 do modelo OSI, com baixo retardo e com controle de erro nos nós.
No fim da década de 80 e início da década de 90, vários fatores combinados demandaram a transmissão de dados com velocidades mais altas como:
· a migração das interfaces de texto para interfaces gráficas
· O aumento do tráfego do tipo rajada (burst) nas aplicações de dados
· O aumento da capacidade de processamento dos equipamentos de usuário
· A popularização das redes locais e das aplicações cliente / servidor
· A disponibilidade de redes digitais de transmissão
Os projetistas do frame relay visaram um serviço de telecomunicação para a transmissão de dados de alto custo-benefício para tráfego do tipo rajada (bursty) nas aplicações de dados entre redes locais (LANs) e entre end-points de uma WAN, a fim de atender a estes requisitos.
A conversão dos dados para o protocolo Frame Relay é feita pelos equipamentos de acesso ainda na lan, geralmente um roteador. Os frames gerados são enviados aos equipamentos de rede, cuja função é basicamente transportar esse frames até o seu destino, usando os procedimentos de chaveamento ou roteamento próprios do protocolo. A rede Frame Relay é sempre representada por uma nuvem, já que ela não é uma simples conexão física entre 2 pontos distintos. A conexão entre esses pontos é feita através de um circuito virtual permantente(PVC) configurado com uma determinada banda. A alocação de banda física na rede é feita pacote a pacote, quando da transmissão dos dados, ao contrário do TDM em que existe uma alocação de banda fixa na rede, mesmo que não haja qualquer tráfego de dados.
O Frame Relay é um serviço de pacotes ideal para tráfego de dados IP, que organiza as informações em frames, ou seja, em pacotes de dados com endereço de destino definido, ao invés de coloca-los em slots fixos de tempo, como é o caso do TDM. Este procedimento permite ao protocolo implementar as características de multiplexação estatística e de compartilhamento de portas.
Considerando o modelo OSI para protocolos, o Frame Relay elimina todo o processamento da camada de rede (layer 3) do X.25. Apenas algumas funcionalidades básicas da camada de enlace de dados (layer 2) são implementadas, tais como a verificação de frames válidos, porém sem a solicitação de retransmissão em caso de erro. Desta forma, as funcionalidades implementadas nos protocolos de aplicação, tais como verificação de seqüência de frames, o uso de frames de confirmações e supervisão, entre outras, não são duplicadas na rede Frame Relay. Isto permite um trafego de quadros (frames) ou pacotes em alta velocidade (até 1,984 Mbps), com um atraso mínimo e uma utilização eficiente da largura de banda.
Características
É um protocolo WAN de alta performance que opera nas camadas fisica e de enlace do modelo OSI. Esta tecnologia utiliza comutação por pacotes para promover a interface com outras redes através de dispositivos de borda (roteadores), compartilhando dinamicamente os meios de transmissão e a largura de banda disponíveis, de forma mais eficiente e flexível
Protocolo Frame Relay, sendo descendente direto do X-25, utiliza-se das funcionalidades de multiplexação estatística e compartilhamento de portas, porém com a alta velocidade e baixo atraso (delay) dos circuitos TDM. Isto é possível pois o mesmo não utiliza o processamento da camada de rede (layer 3) do X.25. Isto exige redes confiáveis para a sua implementação eficiente, pois em caso de erro no meio de transmissão, ocorre um aumento significativo no número de retransmissões, pois a checagem de erros ocorre somente nas pontas.O protocolo Frame Relay proporciona orientação a conexão em sua camada de trabalho (modelo OSI - Camada de Enlace de Dados ou camada 2).
O Frame Relay é baseada no uso de Circuitos Virtuais (VC's). Um VC é um circuito de dados virtual bidirecional entre 2 portas quaisquer da rede, que funciona como se fosse um circuito dedicado. Existem 2 tipos de Circuitos Virtuais: O Permanent Virtual Circuit (PVC) e o Switched Virtual Circuit (SVC).
O PVC é um circuito virtual permanente configurado pelo operador na rede através de um sistema de Gerência de Rede, como sendo uma conexão permanente entre 2 pontos. A rota através dos equipamentos de rede pode ser alterada ao passo que ocorrem falhas ou reconfigurações, mas as portas de cada extremidade são mantidas fixas. Já o SVC é um circuito virtual comutado, que é disponibilizado na rede de forma automática,conforme a demanda, sendo utilizado principalmente por aplicações de Voz que estabelecem novas conexões a cada chamada.
O Frame Relay também possibilita a utilização de múltiplos canais lógicos em uma mesma linha de acesso, o que torna o mesmo ponto-multiponto. Isto significa que podemos, utilizando uma única linha dados em um ponto de concentração (cpd, por exemplo), acessar diversos pontos remotos. Cada ponto remoto é acessado através de um endereço lógico diferente, chamado DLCI.
Outra característica interessante do Frame Relay é o CIR(Commited information rate). O Frame Relay é um protocolo de redes estatístico, voltado principalmente para o tráfego tipo rajada, em que a sua infra-estrutura é compartilhada pela operadora de telefonia e, conseqüentemente, tem um custo mais acessível do que uma linha privada. Isto significa que quando um usuário de serviços de telecomunicações contrata uma linha Frame Relay com 128 Kb/s, não quer dizer que ele tenha alocado na rede da operadora esta banda todo o tempo, pois, já que a infraestrutura é compartilhada, haverá momentos em que ocorrerá congestionamentos. No ato da assinatura do contrato com a operadora, o usuário escolhe uma taxa de CIR, que pode ser de 25%, 50%, a que o usuário escolher, e no momento do congestionamento, a operadora garante que terá disponível a banda correspondente ao CIR. Por exemplo, se um usuário tem um Frame Relay de 128 KB/s com um CIR de 50%, caso a rede não esteja congestionada o mesmo poderá realizar uma rajada de tráfego a até 128 KB/s. Porém, caso haja congestionamento, esta banda vai sendo automaticamente reduzida até o valor de CIR, podendo este usuário no pior caso trafegar a 64 KB/s, que corresponde a 50% de 128 KB/s. Quando maior o CIR, maior o custo da linha 2.
Obtido em "http://pt.wikipedia.org/wiki/Frame_Relay"
ATM
ATM pode significar:
· Asynchronous Transfer Mode, protocolo de telecomunicações
· Adobe Type Manager, software de gerenciamento de tipos da Adobe Systems
· ATM, clone Russo do ZX Spectrum
· ATM, máquina para realizar operações bancárias
· ATM, articulação têmporo-mandibular
· ATM, expressão em inglês para um dos fetiches do cinema pornô.
· ATM, expressão em inglês, utilizada nos mercados financeiros.
· X25
X.25 é conjunto de protocolos padronizado pela ITU para redes de longa distância e que usam o sistema telefônico ou ISDN como meio de transmissão.
História
O X.25 foi lançado em 1970 pelo Tymnet, baseado em uma estrutura de rede analógica, que era predominante na época. É um protocolo de rede, que tem a função de gerenciar um pacote fazendo a organização das informações. O X.25 faz isto da seguinte forma: o protocolo X.25 será responsável pela interpretação de uma onda modulada recebida e fará a demodulação do sinal. Separando o cabeçalho de um pacote de uma mensagem. Quando uma informação entra na interface de rede esse é o primeiro protocolo a ser acionado.
Tipos de acesso
O protocolo X.25 permite o acesso a redes públicas ou privadas operando com a comutação de pacotes sendo orientado a bit. A transmissão de dados ocorre entre o terminal cliente denominado de Data Terminal Equipment (DTE) e um equipamento de rede denominado Data Circuit Terminating Equipment (DCE). A transmissão dos pacotes de dados é realizada através de um serviço orientado a conexão (a origem manda uma mensagem ao destino pedindo a conexão antes de enviar os pacotes), garantindo assim a entrega dos dados na ordem correcta, sem perdas ou duplicações.
O X.25 trabalha com três camadas do modelo OSI:
· Camada Física: define as características mecânicas e eléctricas da interface do Terminal e da Rede. A transmissão é feita de modo síncrono e full duplex.
· Camada de Enlace: responsável por iniciar, verificar e encerrar a transmissão dos dados na ligação física entre o DTE e o DCE. Responsável pelo sincronismo, detecção e correcção de erros durante a transmissão.
· Camada de Rede: responsável pelo empacotamento dos dados. Define se a transmissão será realizada por Circuito Virtual (conexões temporárias, estabelecidas somente no momento da comunicação) ou por Circuito Virtual Permanente (conexões permanentes, não existe a necessidade de realizar uma chamada para estabelecer conexão).
Operação no Brasil
No Brasil, as redes X.25 são administradas e operadas por empresas de telefonia, operadoras de telecomunicações. Ainda em uso, o serviço X.25 está perdendo espaço devido aos sistemas de interligação baseados em Frame Relay e ADSL.
Tópicos Relacionados
· Comunicação de Dados
· CLEC e ILEC
· Gerência de Redes de Telecomunicações e Modelo TMN
· Princípios da Gerência de Redes
· Rede de Telecomunicações
· Rede de Transmissão
· Rede de Telefonia Fixa e Rede de Telefonia Celular
· Sinalização por canal comum número 7
· Telefonia e Telefone
· Telegrafia e Telégrafo
· Telecomunicações no Brasil e Telecomunicação em Portugal
· DSL
Digital Subscriber Line (simplesmente DSL ou ainda xDSL) é uma família de tecnologias que fornecem um meio de transmissão digital de dados, aproveitando a própria rede de telefonia que chega na maioria das residências. As velocidades típicas de download de uma linha DSL variam de 128 kilobits por segundo (kbps) até 24 Mbits/s dependendo da tecnologia implementada e oferecida aos clientes. As velocidades de upload são menores do que as de download para o ADSL e são iguais para o caso do SDSL.
Arquitectura
Na região entre o assinante e a central telefônica, a atual infra-estrutura de transmissão de voz utilizada pelas concessionárias de serviços públicos de telecomunicações é formada por um par de fios metálicos trançados e requer uma largura de banda de 300 à 3.400 Hz.
A tecnologia DSL utiliza técnicas digitais de processamento de sinais com freqüências de até 2,2 MHz sem interferir na faixa de voz, que são capazes de otimizar a utilização da largura de banda do par metálico com velocidades.
Há dois tipos de modulação para transmissões DSL, a saber:
A modulação DMT (acrônimo para Discrete Multi-Tone), que foi selecionada como padrão pela ANSI através da recomendação T1.413 e, posteriormente, pela ETSI. Ela descreve uma técnica de modulação por multi-portadoras na qual os dados são coletados e distribuídos sobre uma grande quantidade de pequenas portadoras, com cada uma utilizando um tipo de modulação analógica QAM (Quadrature Amplitude Modulation). Os canais são criados utilizando-se técnicas digitais conhecidas como Transformadas Discretas de Fourier.
· A modulação CAP (acrônimo para Carrier-less Amplitude/Phase) determina uma outra versão de modulação QAM na qual os dados modulam uma única portadora, que depois é transmitida na linha telefônica. Antes da transmissão, a portadora é suprimida e, depois, é reconstruída na recepção.
História
Ela foi inventada em 1988 por um engenheiro da Bell Labs. O seu uso começou no final da década de 1990 como forma de acesso à internet de banda larga.
SAN (Storage Area Network)
Storage area network
Ir para: navegação, pesquisa
Na computação, um storage area network (área de armazenamento em rede, em português) é uma rede projetada para agrupar dispositivos de armazenamentode computador. Os SANs são mais comuns nos armazenamentos de grande porte.
Existem duas variações de SANs:
1. Uma rede na qual o propósito principal é a transferência de dados entre computadores e dispositivos de armazenamento. Um SAN consiste em uma infra-estrutura de comunicação que provê conexões físicas com uma camada de gerenciamento, que organiza as conexões, os dispositivos de armazenamento e os computadores, tornando a transferência de dados robusta e segura.
2. Um sistema de armazenamento formado por dispositivos de armazenamento, computadores e/ou aplicações, e todo um controle via software, comunicando-se através de uma rede de computadores.
Definindo SAN
Os storage networks, ou redes de armazenamento, são diferenciadas de outras formas de armazenamento em rede pelo método de acesso em baixo nível que eles apresentam. O tráfego de dados nessas redes é bastante similar a aqueles usados internamente em discos, como ATA e SCSI.
Em uma rede de armazenamento, o servidor envia pedidos por blocos específicos ou segmentos de dados de específicos discos. Esse método é conhecido como block storage (armazenamento de blocos). O dispositivo age similarmente a um drive interno, acessando o bloco específico e enviando a resposta através da rede.
Em alguns métodos de acessos de arquivos mais tradicionais, como SMB/CIFS ou NFS, o servidor envia pedidos para um arquivo abstrato como o componente de um grande sistema de arquivos, gerenciados por um computador intermediário. O intermediário, então, determina o local físico do tal arquivo abstrato, acessa ele em um dos drives internos e, por fim, envia o arquivo completo pela rede.
A maioria dos storage networks usam o protocolo SCSI para a comunicação entre servidores e dispositivos, embora não usem o baixo nível da interface SCSI.
Benefícios
Compartilhar o armazenamento normalmente simplifica a administração e proporciona flexibilidade, uma vez que cabos e dispositivos de armazenamento não precisam ser movidos fisicamente para mudar armazenamento de um servidor para outro, por exemplo. Note, apesar, que com a exceção do sistema de arquivos SAN e clusters, o SAN ainda é de relação um-a-um. Ou seja, cada dispositivo no SAN é de propriedade de um único computador. Oposto a isso, o NAS (Network-Attached Storage), permite que vários computadores acessem ao mesmo conjunto de arquivos em uma rede.
Os SANs tendem a aumentar a capacidade de armazenamento, uma vez que múltiplos servidores podem compartilhar da mesma reserva de crescimento.
Outros benefícios incluem a habilidade de permitir que servidores efetuem boot pelo próprio SAN. Isto permite uma rápida e fácil reposição de servidores defeituosos, uma vez que o SAN pode ser reconfigurado para que o servidor de reposição use o LUN (Logical Unit Number, ou número lógico de unidade) do servidor defeituoso. Esse processo pode levar pouco mais de 30 minutos e é uma idéia relativamente nova que está sendo implantada em novos data centers.
Os SANs também tendem a ser mais efetivos em processos de recuperação de dados. Um SAN pode replicar dados de vários servidores para uma área de armazenamento secundária. Essa área secundária pode ser local ou remota.
Tipos de SAN
Os SANs normalmente são construídos em uma infra-estrutura especialmente projetada para comportar grande tráfego de dados originados de armazenamento. Assim, eles proporcionam um acesso mais rápido e estável do que protocolos de alto-nível como os NAS.
A tecnologia mais comum para SAN é a rede de fibra ótica com o conjunto de comandos SCSI. Um canal de fibra ótica SAN padrão é feita de alguns switches que estão interligados, formando uma rede.
Uma alternativa, e mais recente (2003), de protocolo SAN é o iSCSI, que usa o mesmo conjunto de comandos SCSI sobre TCP/IP (e, tipicamente, Ethernet). Nesse caso, os switches, cabos e hubs seriam de protocolo TCP/IP.
Conectado ao SAN estarão um ou mais servidores (hosts) e uma ou mais coleções de discos, arquivos de fita ou outros dispositivos de armazenamento.
Existem dois tipos de SANs - SAN centralizado ou SAN distribuído.
LAN (Local Area Network)
LAN
Ir para: navegação, pesquisa
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 ou PDAs, 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, IPX/SPX e o NetBEUI.
História
Na época anterior aos PCs, as empresas possuíam somente um computador central, com usuários o acessando através de terminais utilizando um cabo simples de baixa velocidade. Redes tais como a SNA (Systems Network Architecture) da IBM estavam focadas em linkar terminais ou outros mainfraimes em locais remotos através de conexões dedicadas sendo, portanto, WANs.
As primeiras LANs foram criadas no final de 1970 e eram usadas para criar links de alta velocidade entregrandes computadores centrais em um determinado local. De muitos sistemas competidores criados nessa época a Ethernet, e ARCNET eram os mais populares.
O crescimento do CP/M e depois dos computadores pessoais baseados em DOS, proporcionaram que um único local pudesse ter dúzias e até centenas de computadores. A atração inicial das redes era geralmente compartilhar espaço em disco e impressoras à laser, os quais eram extremamente caros na época. Um entusiasmo maior com o conceito de LAN surgiu por volta de 1983, o qual foi declarado pela indústria de computadores como "o ano da LAN".
Na realidade o conceito de LAN foi estragado devido à proliferação de camadas físicas e implementações de protocolos incompatíveis, assim como confusões em como melhor compartilhar recursos. Tipicamente, cada fabricante tinha seu próprio tipo de placa de rede, cabos, protocolos e sistema operacional de rede. Uma solução apareceu com o advento do Novell NetWare, o qual proporcionou suporte a mais de 40 tipos de placas de rede e cabos, e um sistema operacional muito mais sofisticado do que qualquer um dos competidores. O NetWare dominou as LANs dos computadores pessoais até a introdução do Microsoft Windows NT Advanced Server em 1993 e o Windows for Workgroups ("Windows para grupos de trabalho").
Dos competidores do NetWare, somente Banyan Vines tinha forças técnicas comparáveis, mas Banyan nunca obteve uma base segura. A Microsoft e a 3Com trabalharam juntas para criar um sistema operacional de rede simples o qual formou a base da 3Com 3+Share Microsoft Lan Manager e IBM Lan Server. Nenhum desses particularmente teve sucesso.
No mesmo período de tempo, computadores baseados em Unix estavam utilizando redes baseadas em TCP/IP, influenciando até hoje a tecnologia dessa área.
PAN (Personal Area Network)
· Rede de área pessoal
· Ir para: navegação, pesquisa
· Rede de área pessoal, tradução de Personal Area Network (ou PAN), é uma tecnologia de rede formada por nós (dispositivos conectados à rede) muito próximos uns dos outros (geralmente não mais de uma dezena de metros). Por exemplo, um computador portátil conectando-se a um outro e este a uma impressora.
· São exemplos de PAN as redes do tipo Bluetooth e UWB.
· MAN (Metropolitan Area Network)
Ir para: navegação, pesquisa
· Rede de área metropolitana, (Metropolitan Area Network) uma rede de comunicação que abrange uma cidade;
· MAN AG, um grupo empresaria especializado em motores e veículos pesados. Obtido em "http://pt.wikipedia.org/wiki/MAN"
WAN (Wide Area Network)
· Rede de longa distância
· Ir para: navegação, pesquisa
· 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.
· Mercado de Redes Wan
· A maior fatia da receita no Brasil é originária do fornecimento de aplicações WAN pelas empresas brasileiras fornecedoras de backbone deriva dos usuários corporativos. Com a abertura do mercado das Telecomunicações proporcionado pela privatização do setor está aumentando a oferta e a variedade dos serviços dedicados a WAN no Brasil. Atualmente o investimento na migração para redes MPLS, VoIP, QoS e IPTV é o foco das operadoras afim de atingir um número cada vez maior de usuários atraídos pelo custo cada vez menor devido a concorrência na prestação destes serviços.
· A Implementanção de uma Wan cada vez mais demanda um bom planejamento por parte das empresas e administradores de redes. A forma de acesso a Internet, maior rede Wan existente, que mais vem crescendo recentemente é o acesso através de [banda larga]. Segundo pesquisa realizada, no ano de 2006, pela [IDC Brasil]o crescimento foi de 40,1%. Tal percentual representa 1,6 milhão de novas conexões o que totaliza 5,7 milhões de usuários no territorio nacional. Em resumo, no periodo de seis anos (2001 a 2006), a banda larga cresceu 1.639% no Brasil. No entanto tal fatia do mercado simboliza apenas 3% da população brasileira. Sendo que deste total 60,7% dos acessos são efetuados na região Sudeste cabendo ao estado de São Paulo 39% deste total. A tecnologia mais utilizada no acesso banda larga é o [XDSL]que equivale a 78,2% das conexões banda larga existentes no país. O avanço de novas tecnologias no mercado ainda possibilitou ao consumidor brasileiro uma diminuição do valor de acesso a banda larga. A concorrência, em especial entre as operadoras de [TV a cabo] e as de telefonia, pela preferência do consumidor resultou em uma queda de preço de aproximadamente 8%. Tal diminuição ainda possibilitou a alteração da velocidade já utilizada pelos assinantes. Preços menores foram os principais responsaveís pela opção dos consumidores por bandas com maior velocidade. Os acessos superiores a 1 Mbps saltaram de 2% do mercado em dezembro de 2005 para 22% no mesmo período de 2006. As velocidades acima de 512 Kbps representaram 37% do mercado.
·
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.
· QoS (Quality of Service)
· O QoS é uma expressão para definir a qualidade de serviço de uma rede wan para um determinado tráfego em tcnologias como: IP, ATM, Frame-Relay e outros. A qualidade de serviço é a capacidade da rede em que os dados são transmitidos de forma consistente e previsível, satisfazendo as necessidades das aplicações dos usuários em serviços diferenciados.
· Recursos que podem ser utilizado no QoS são:
· − Classificação de pacotes
· − Gerenciamento de banda e controle de admissão
· − Prevenção de congestionamento
· − Medição de serviços e tráfego com granuralidade.
· Os recuos são utilizados de acordo com os serviços e os dados que serão transmitidos na rede wan.
· Protocolos WAN
· Uma breve exposição de protocolos usados em Redes WAN
· Possibilitam a transmissão de dados de uma Rede fisicamente distante através de uma infra-estrutura de canais de dados de longa distância. Exemplos de protocolos:
· PPP – Point-to-Point Protocol
· - Protocolo mais comum para de acesso à Internet tanto em conexões discadas como dedicadas.
· Redes X.25
· - X.25 é um conjunto de protocolos especificados pelo ITU-T.
· Frame Relay
· - Técnica de comutação de pacotes e sucessor natural da rede X.25.
· Rede ATM ( Asynchronous Transfer Mode )
· - Tecnologia de transmissão e comutação de dados.
· Acesso remoto com Digital Subscriber Line (xDSL)
· - Permite tráfego de alta capacidade usando o cabo telefônico normal entre sua casa (ou escritório)e a central telefônica
· Asymmetric Digital Subscriber Line (ADSL)
· - Capacidade assimétrica (recebe mais do que envia)
· High-Bit-Rate Digital Subscriber Line (HDSL)
· - Capacidade simétrica: 2 Mbps usando 3 pares
· 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.
·
SLA para WAN´s
· Na realidade,podemos simplificar o SLA como sendo os direitos dos consumidores aplicados às relações entre empresas. Isto é, com o SLA as empresas têm garantias legais de níveis de qualidade, prazo e estrutura por parte de seus fornecedores, o que, na prátrica, significa um grande avanço nas relações B2B no mercado de tecnologia.
· Longa Distância Nacional
· Após o cumprimento das metas de universalização, o mercado nacional de chamadas LDN e LDI mudou muito em relação à metade da década passada. A razão foi o fato das grandes operadoras passarem a oferecer serviços de telecomunicação fora de sua área de atuação. Abaixo gráficos que mostram esta mudança. Tal “fenômeno” pode ser observado através do market share de 2004.
· A Embratel ainda detém a maior parcela do market share, porém observa-se uma tendência para que o mercado seja distribuído pelas operadoras de telefonia fixa, principalmente pelo fato destas operadoras estarem mais próximas dos assinantes.
· Outro fator relevante para esse mercado é que a partir de 2006 as autorizações dos serviços de STFC (Telefonia Fixa Comutada) incluem também os serviços de Longa Distância (LDN/LDI). Entretanto, prestar o serviço de STFC sempre implica em cumprir as metas de qualidade definidas e os seus custos têm um enquadramento tributário bastante complexo.
·
Gerenciamento de Wans
· 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.
· RAN
· Ir para: navegação, pesquisa
· 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.
· Obtido em "http://pt.wikipedia.org/wiki/RAN"
· CAN
· Ir para: navegação, pesquisa
· A CAN (Campus Area Network) é uma rede que usa ligações entre computadores localizados em áreas de edifícios ou prédios diferentes, como em campus universitários ou complexos industriais.
· Deve também usar links (ligações) típicos de LANs (Local Area Networks) ou perde-se seu caráter de CAN para tornar-se uma MAN ou WAN, dependendo de quem seja o dono do link usado
· Segundo a topologia:
· Rede em anel (Ring)
· Rede em barramento (Bus)
· Rede em estrela (Star)
· Rede em ponto-a-ponto
· Segundo o meio de transmissão:
· Rede por cabo
· Rede de Cabo coaxial
· Rede de Cabo de fibra óptica
· Rede de Cabo de par trançado
· Rede sem fios
· Rede por infravermelhos
· Rede por microondas
· Rede por rádio
Modelagem de rede de computadores segundo Tanenbaum
Uma rede pode ser definida por seu tamanho, topologia, meio físico e protocolo utilizado.
Tamanho: LAN, CAN, MAN E WAN
LAN (Local Area Network, ou Rede Local). É uma rede onde seu tamanho se limita a apenas um prédio.
CAN(Campus Area Network). Uma rede que abrange uma área mais ampla, onde pode-se conter vários prédios dentro de um espaço continuos ligados em rede.
MAN (Metropolitan Area Network). A MAN é uma rede onde temos por exemplo, uma rede farmácia, em uma cidade, onde todas acessam uma base de dados comum.
WAN (Wide Area Network, ou rede de longa distância). Uma WAN integra equipamentos em diversas localizações geográficas, envolvendo diversos países e continentes como a Internet.
Topologia:
Topologia em Estrela:
o o o
\_ | _/
\|/
o-----o-----o
_/|\_
/ | \
o o o
Neste tipo de rede, todos os usuários comunicam-se com um modo central, tem o controle supervisor do sistema, chamado "host".Por meio do host os usuários podem se comunicar entre si e com processadores remotos ou terminais. No segundo caso, o host funciona como um comutador de mensagens para passar dados entre eles.
O arranjo em estrela é a melhor escolha se o padrão de comunicação da rede for de um conjunto de estações secundárias que se comunicam com o nó central. As situações nas quais isso acontece são aquelas em que o nó central está restrito às funções de gerente das comunicações e a operações de diagnósticos.
O gerenciamento das comunicações por este nó central pode ser por chaveamento de pacotes ou de circuitos.
O nó central pode realizar outras funções além das de chaveamento e processamento normal. Por exemplo, pode compatibilizar a velocidade de comunicação entre o transmissor e o receptor. Se o protocolo dos dispositivos fonte e destino utilizarem diferentes protocolos, o nó central pode atuar como um conversor, permitindo duas redes de fabricantes diferentes se comuinicar.
No caso de ocorrer falha em uma estação ou no elo de ligação com o nó central, apenas esta estação fica fora de operação.
Entretanto, se uma falha ocorrer no nó central, todo sistema pode ficar fora do ar. A solução deste problema seria a redundância, mas isto acarreta um aumento considerável de custos.
A expansão de uma rede desse tipo só pode ser feita até um certo limite, imposto pelo nó central: em termos de capacidade de chaveamento, número de circuitos concorrentes que podem ser gerenciados e números de nós que podem ser servidos.
O desempenho obtido numa rede em estrela depende da quantidade de tempo requerido pelo nó central para processar e encaminhar menssagens, e da carga de tráfego de conexão, ou seja, é limitado pela capacidade de processamento do nó central.
Esta configuração facilita o controle da rede e a maioria dos sistemas de computação com funções de comunicação; possuem um software que implementa esta configuração.
Barramento:
o------o------o
| |
| |
o o
||
| |
o------o------o
Anel:
A topologia em anel como o próprio nome diz tem um formato circular.
Meio físico:
O meio mais utilizado hoje é o Ethernet. O padrão Ethernet vem subdividido em: Coax/10base2, UTP (Unshielded Twisted Pair - Par Trançado Não Blindado)/10BaseT e UTP/100baseT. A Gigabit ethernet está começando a ser utilizado, também.
Também pode ser conectado por Fibra, um fino filamento contínuo de vidro com uma cobertura de proteção que pode ser usada para conectar longas distancias.
E ainda há as redes sem fios, que se subdividem em diversas tecnologias: Wi-fi, bluetooth, wimax e outras.
Protocolo: O que a rede está Falando Hoje, o protocolo mais usado é o TCP/IP , e espera-se que em breve passemos a utilizar o IPv6.
Sistemas de Numeração
Os computadores "entendem" impulsos elétricos, positivos ou negativos, que são representados por 1 e 0, respectivamente. A cada impulso elétrico, damos o nome de Bit (BInary digiT). Um conjunto de 8 bits reunidos como uma única unidade forma um Byte.
Para os computadores, representar 256 números binários é suficiente. Por isso, os bytes possuem 8 bits. Basta fazer os cálculos. Como um bit representa dois valores (1 ou 0) e um byte representa 8 bits, basta fazer 2 (do bit) elevado a 8 (do byte) que é igual a 256.
Os bytes representam todas as letras (maiúsculas e minúsculas), sinais de pontuação, acentos, sinais especiais e até sinais que não podemos ver, mas que servem para comandar o computador e que podem, inclusive, serem enviados pelo teclado ou por outro dispositivo de entrada de dados e instruções.
Para que isto aconteça, os computadores utilizam uma tabela que combina números binários com símbolos: a tabela ASCII (American Standard Code for Information Interchange). Nesta tabela, cada byte representa um caractere ou um sinal.
A partir daí, foram criados vários termos para facilitar a compreensão humana da capacidade de armazenamento, processamento e manipulação de dados nos computadores. No que se refere aos bits e bytes, tem-se as seguintes medidas:
1 Byte = 8 bits
1 Kilobyte (ou KB) = 1024 bytes
1 Megabyte (ou MB) = 1024 kilobytes
1 Gigabyte (ou GB) = 1024 megabytes
1 Terabyte (ou TB) = 1024 gigabytes
1 Petabyte (ou PB) = 1024 terabytes
1 Exabyte (ou EB) = 1024 petabytes
1 Zettabyte (ou ZB) = 1024 exabytes
1 Yottabyte (ou YB) = 1024 zettabytes
É também através dos bytes que se determina o comprimento da palavra de um computador, ou seja, a quantidade de bits que ele utiliza na composição das instruções internas, como por exemplo:
8 bits - palavra de 1 byte
16 bits - palavra de 2 bytes
32 bits - palavra de 4 bytes
Na transmissão de dados entre computadores, geralmente usa-se medições relacionadas a bits e não a bytes. Assim, existem também os seguintes termos:
1 Kilobit (ou Kb) = 1024 bits
1 Megabit (ou Mb) = 1024 Kilobits
1 Gigabit ou (Gb) = 1024 Megabits
Note que quando a medição é feita em bytes, o B da sigla é maiúsculo (como em GB). Quando a medição é feita em bits, o B da sigla fica em minúsculo (como em Gb).
Números
Raras são as pessoas que se interessam por História da Ciência, em geral, e História da Matemática, em particular. É uma pena, pois a história mostra quão difícil foi chegarmos a este estágio de nossa civilização. Lembre que este hiperdocumento (homepage) faz uso de tecnologia só recentemente disponível a nós comuns mortais (Internet). Mesmo o Teorema de Pitágoras que, segundo os gregos, data de cerca de 500 anos antes de Cristo, ou seja, aproximadamente 2500 anos atrás, já teve esta datação questionada. Segundo o livro de Gillings, A Matemática na Era dos Faraós, foi encontrado um pergaminho que, após ser decifrado, fez os historiadores da ciência acreditarem que este teorema já era conhecido há cerca de, pelo menos, 1000 anos, antes, isto é, há cerca de 3500 anos. O mesmo acontece com a idéia de números.
Acredita-se que a necessidade de criação de números veio com a necessidade de contar. Seja o número de animais, alimentos, ou coisas do tipo. Como a evolução nos legou algumas características, como os cinco dedos em cada mão (fingers) e cinco dedos em cada pé (toes), seria muito natural que os primeiros sistemas de numeração fizessem uso das bases 10 (decimal) e 20 (vigesimal). O número 80, em francês, escrito como quatre-vingt (ou, quatro vezes o vinte) é remanescente de um sistema vigesimal.
Base de um Sistema de Numeração
Como se sabe, em Eletrônica e Computação, as bases mais utilizadas para sistemas de numeração são:
· Binária (Base 2)
· Octal (Base 8)
· Decimal (Base 10)
· Hexadecimal (Base 16)
Uma relação entre elas pode ser visualizada na tabela a seguir
Binária
Octal
Decimal
Hexadecimal
00000
00
00
00
00001
01
01
01
00010
02
02
02
00011
03
03
03
00100
04
04
04
00101
05
05
05
00110
06
06
06
00111
07
07
07
01000
10
08
08
01001
11
09
09
01010
12
10
0A
01011
13
11
0B
01100
14
12
0C
01101
15
13
0D
01110
16
14
0E
01111
17
15
0F
10000
20
16
10
10001
21
17
11
10010
22
18
12
10011
23
19
13
10100
24
20
14
De acordo com a tabela acima, o número decimal 20 é representado por 2010, isto é, escreve-se o número e um índice indicando a base em que está representado. Tem-se portanto, a seguinte equivalência:
101002 = 248 = 2010 = 1416
Teorema da Representação por Base
Seja k qualquer inteiro maior que 1 (lembre que a palavra inteiro é usada apenas para números representados na base decimal). Então, para cada inteiro positivo n, existe uma representação (a prova deste teorema você encontra em qualquer bom livro de teoria numérica, como por exemplo, o de George E. Andrews.
n = a0ks + a1ks-1 + ... + as
onde a0>0 e cada ai é um inteiro não negativo maior que k. Esta representação de n é unica e é chamada de representação de n na base k. Exemplos:
1. 1210 = 1.101 + 2.100 = 1210
2. 1710 = 1.161 + 1.160 = 1116
3. 1210 = 1.23 + 1.22 + 0.21 + 0.20 = 11002
4. 1210 = 1.81 + 4.80
Tipos de Arquivo
Em informática é a forma usada por determinada aplicação computacional reconhecer os dados gerados por ela. Cada aplicativo tem um formato específico, padronizado ou não para que possa tratar as informações contidas no arquivo gerado.
Tipos
Os formatos de arquivos digitais podem ser:
· Arquivos de texto
· Arquivos de Imagem
· Arquivos de som
· Arquivos compactados
· Bancos de dados
· Arquivos executáveis
Alguns tipos de arquivo mais comuns foram criados por grandes empresas como a Microsoft, Adobe, IBM, Oracle denre outras, e se tornaram padrão de mercado.
Alguns exemplos
Formato .XLS - planilhas do Microsoft Excel
Formato .DBF - Bancos de dados Dbase
Formato .MDB - Bancos de dados Access
Formato .FB - Bancos de dados Firebird
Formato .DOC - Documento de texto do Microsoft Word
Formato .PDF - Documentos Acrobat Adobe
Formato .TXT - Arquivos Texto comum.
Tabela de formatos
Observação: alguns formatos de ficheiros, por exemplo o PDF, permite imagens raster (mapa de bits) e vector (desenho vectorial), já que a tecnolgia PostScript do PDF está concebida para gerir ambos os métodos de representação de imagem.
Eis um resumo dos formatos de arquivos gráficos mais comuns :
Extensão
Tipo MIME
raster / vector
Nome próprio
Descrição
.ai
application
/illustrator
raster / vector
Adobe Illustrator Document
Formato vectorial do Adobe Illustrator. As primeiras verões suportavam apenas imagens vectoriais. É uma variante do Postscript tal como os formatos PDF, EPS e PS.
.art
?
raster
ART
ART é um formato proprietário do software cliente da America Online. Trata-se de uma única imagem gravada num ficheiro, gravada da internet, em que o programa escolhe o melhor método de compressão.
.art
?
?
Another Ray Tracer
Formato do pacote de programas VORT para Unix
.blend
image/bmp
vector
abreviatura de Blender.
software nativo do software Blender3d
.bmp
image/bmp
raster
Windows Bitmap
Comumente usado pelos programas MicrosoftWindows, e o pelo próprio sistema operador do Windows. Compressào sem perdas de informação pode ser especificada, mas alguns programas usam apenas arquivos não-comprimidos.
.cgm
mage/cgm
vector
Computer Graphics Metafile
Definido pelo padrão ISO 8632. Normalmente usado para desenhos complexos de engenharia, por exemplo, na aviação.
.cin
image/cineon
raster
Cineon
Cineon é uma variante do formato DPX dirigido a filmes digitais.
.cpt
?
raster
Corel Photo-Paint Image
Formato padrão do Corel Photo-Paint. Poucos programas suportam este formato.
.dpx
image/dpx
vector
Digital Picture eXchange file format
DPX é um padrão ANSI/SMPTE (268M-2004) semelhante ao Cineon mas com cabeçalhos (headers) mais flexíveis e variáveis. Normalmente é usado para filmes, em que um digitalizador de película cinematográfica fornece saída neste formato ou uma máquina de filmar. Este ficheiro não armazena o som.
.dxf
image/vnd.dxf
vector
ASCII Drawing Interchange
Ficheiros de texto no padrão ASCII utilizados para armazenar dados de programas CAD.
.eps
application
/postscript
raster / vector
Encapsulated PostScript
Formato com a finalidade de inportar e exportar ficheiros PostScript. Ao invés do formato ".ps" não editável, destinado a saídas em impressoras.
.dwg
vector
arquivo nativo do AutoCAD
AutoCAD DWG, Ficheiros de texto no padrão ASCII utilizados para armazenar dados de programas CAD.
.eps
application
/postscript
raster / vector
Encapsulated PostScript
Formato com a finalidade de importar e exportar ficheiros PostScript. Ao invés do formato ".ps" não editável, destinado a saídas em impressoras.
.emf
?
vector
Windows Enhanced Metafile
Versão avançada do Windows Metafile.
.exr
image/exr
raster
Extended Dynamic Range Image File Format
OpenEXR é um formato Open Source e (HDR) desenvolvido pela Industrial Light & Magic. É destinado à indústria cinematográfica.
.fh
?
vector
Macromedia Freehand Document
Formato nativo do Macromedia Freehand.
.fla
?
vector
Flash Source File
Formato nativo do Macromedia Flash. Ver também o formato ".swf".
.fpx
image/vnd.fpx
raster
Flashpix (1.0.2)
Não-comprimido / com perda de informação, 8-bit em tons de cinza & 24-bit em cores. Fornece múltiplas resoluções de cada imagem.
.gif
image/gif
raster
Graphics Interchange Format
Usado extensivamente na web, mas por vezes evitado devido a problemas de patente. Suporta imagens animadas. Suporta somente 255 cores por quadro, portanto requer quantização com perdas de informação para fotos full-color (16.7 milhões de cores); usar quadros múltiplos pode melhorar precisão de cores. Usa compressão sem perdas de informação, compressão LZW patenteada. A patente venceu em 2003.
.iff
.ilbm
?
raster
Interchange file format / Interleave bitmap
Formato de arquivo popular no computador Amiga. ILBM é um subtipo do formato IFF, que pode conter mais que apenas imagens.
.jpeg
.jpg
image/jpeg
raster
Joint Photographic Experts Group
Usado extensivamente para fotos na web. Usa compressão com perda de informação; a qualidade pode variar enormemente dependendo das definições de compressão.
.jpg2
.jp2
image/jpeg2000
raster
Joint Photographic Experts Group
JPEG 2000 é um sucessor do JPEG, permitindo compressão com perda de dados (lossy) e sem (lossless). O suporte deste formato em programas ainda é pequeno.
.mng
video/x-mng
raster
Multiple-image Network Graphics
Formato de animação que usa datastreams semelhantes àqueles de PNG e JPEG, originalmente designado para substituir o uso de GIF animado na web. Livre da patente associada ao GIF animado.
.pbm
image
/x-portable-bitmap
raster
Portable Bitmap Format
Um simples formato gráfico em preto de branco. Diferente da maioria de formatos de arquivos gráficos, um arquivo PBM é texto integral e pode ser processado por ferramentas de processamento de texto. É relacionado aos formatos de arquivo gráfico PGM (tons de cinza) e PPM (colorido).
.pcd
image/jpcd ??
raster
ImagePac Photo CD
Formato proprietário da Kodak, com perdas de informação, cores 24-bit.
.pdf
application/pdf
raster / vector
Portable Document Format
Versão simplificada do PostScript. É um formato nativo do Adobe Acrobat Reader, Adobe Acrobat Professional e do Adobe eBook Reader. Permite múltiplas páginas e ligações (links). As últimas versões permitem ainda a inclusão de video, 3D, preenchimento de formulários, entre muitas outras opções.
.pgm
image
/x-portable-graymap
raster / vector
Portable Graymap Format
Um simples formato em tons de cinza. Diferente da maioria de formatos de arquivos gráficos, um arquivo PGM é texto integral e pode ser processado por ferramentas de processamento de texto. É relacionado aos formatos de arquivo gráfico PBM (preto e branco) e PPM (colorido).
.pict
image/pct ??
raster / vector
Picture
Formato padrão utilizado para armazenar imagens nos sistemas operativos do Macintosh anteriores à versão OS X.
.png
image/png
raster
Portable Network Graphics
Formato de imagem bitmap (mapa de bits) comprimido sem perdas de informação, originalmente designado para substituir o uso de GIF na web. Livre de patente patent, que venceu em 2003, associado a GIF.
.ppm
image
/x-portable-pixmap
raster
Portable Pixmap Format
Um simples formato em tons de cinza. Diferente da maioria de formatos de arquivos gráficos, um arquivo PPM é texto integral e pode ser processado por ferramentas de processamento de texto. É relacionado aos formatos de arquivo gráfico PBM (preto e branco) and PGM (tons de cinza).
.ps
application
/postscript
vector
PostScript
Formato destinado a saídas em impressoras, normalmente impressoras laser que suportem PostScript.
.psd
application
/x-photoshop
raster
Photoshop Document
Formato padrão da Adobe para documentos do Photoshop. Possui muitos recursos extras como image layering. Suportado por muito poucos programas fora o Adobe Photoshop.
.psp
?
raster
Paint Shop Pro Document
Formato nativo do Paint Shop Pro, de forma similar ao .psd do Adobe Photoshop. Suportado por poucos programas.
.svg
.svgz
image/svg+xml
vector
Scalable Vector Graphics
Formato baseado no XML, definido pelo World Wide Web Consortium para ser utilizado em navegadores.
.skp
.skb
application
/skechup
vector
SketchUp Format
Formato utilizado no programa Sketchup,da Google, que vem surgindo como uma ótima opção para modelagens em 3D nas áreas de Arquitetura, mecânica e até cinema, dentre outras.
.swf
application
/x-shockwave-flash
vector
Flash
Formato nativo e não editável do Macromedia Flash, normalmente criado a partir do formato editável ".fla". Este formato armazena animações para serem visualizadas normalmente em páginas da internet, e pode ser criado em outros programas que o suportem.
.tiff
.tif
image/tiff
raster
Tagged Image File Format
Usado extensivamente para gráficos tradicionais impressos. Compressões com e sem perdas de informação disponíveis (LZW, ZIP e JPEG) assim como outras opções, apesar de muitos programas não suportarem essas opções para além do padrão TIFF.
.wbmp
image
/vnd.wap.wbmp
raster
Wireless Application Protocol Bitmap Format
Utilizado para armazenar imagens em dispositivos sem fios (wireless), normalmente em telemóveis (ou celular no Brasil) com câmara fotográfica.
.wmf
image/x-wmf
vector
Windows Metafile
Formato nativo do Microsoft Windows para armazenar imagens.
.xar
?
vector
Xar
Formato nativo do programa Xara X e da sua última versão, o Xara Xtreme.
.xbm
image/x-xbitmap
raster
X BitMap
Usado quase que exclusivamente em plataformas UNIX com o Sistema X Window e suportado pela maioria dos navegadores. Um arquivo ASCII que não usa compressão, designado de modo que arquivos estejam em sintaxe C(++) para que imagens possam ser incluídas no código fonte.
.xcf
application
/x-gimp-image
raster
eXperimental Computing Facility
Formato nativo do GIMP. Possui muitos recursos extras como imagem em camadas (layers). Usado principalmenteno GIMP, porém também suportado pelo ImageMagick.
.xpm
image/x-xpm
raster
X-Pixmap
Usado quase que exclusivamente em plataformas UNIX com o Sistema X Window. Um arquivo ASCII que não usa compressão, designado de modo que arquivos estejam em sintaxe C(++) para que imagens possam ser incluídas no código fonte.
Arquivos sonoros
Em computação arquivo de som ou arquivo sonoro é um formato de arquivo que permite armazenamento de áudio digital. Em geral este arquivo armazena amostras de som em intervalos regulares, sendo que estas amostras representam a posição em que a membrana da caixa de som deve estar no momento da gravação.
Há três propriedades destes arquivos que determinam a qualidade do som armazenado e o seu tamanho. São eles: a resolução, ou seja, quantos bits são usados para representar cada amostra, a taxa de amostragem, ou seja, quantas amostras são tomadas do som por segundo e por último, o codec que pode proporcionar formas mais ou menos eficientes para armazenar estas informações.
Os arquivos MIDI não seguem estes princípios. Na verdade eles não possuem áudio armazenado, mas sim uma seqüência de notas musicais que podem ser executadas por sintetizadores.
Não se deve confundir o codec com o formato do arquivo. O formato especifica a disposição dos dados dentro do arquivo e o codec a forma como a informação sobre o som é tratada. Há formatos de arquivo que proporcionam possibilidade de usar vários codecs para codificar o som no arquivo.
Arquivos no formato de som Wave criado pela Microsoft e AIFF criado pela Apple armazenam o som sem utilizar compressão de dados, geralmente resultando em arquivos maiores caso seja preferida uma maior qualidade. Há também formatos que utilizam compressão de dados como o MP3, que utiliza codec de compressão com perdas. Outro formato que faz uso de compressão é o Ogg-Vorbis.
A possibilidade de compressão do formato MP3 foi responsável por parte da popularização do mesmo, pois possibilitou o armazenamento de uma quantidade muito superior de músicas em um mesmo espaço de armazenamento.
Todos estes formatos citados anteriormente são livres ou abertos, mas também há formatos proprietários de arquivos de som. Entre estes, podemos citar o formato Windows Media Audio, o formato usado pelo Real Player (RA), e o M4P usado no iTunes que inclui proteção contra pirataria.
Executável
Um executável ou arquivo executável, em informática, é um arquivo em que seu conteúdo deve ser interpretado como um programa por um computador.
Normalmente, eles possuem a representação binária das instruções de máquina de um processador específico, mas podem conter também uma forma intermediária que podem ser necessários serviços de um interpretador para executar.
Se um arquivo é um executável ou não é mais uma questão de convenção; alguns sistemas operacionais indicam arquivos executáveis pela convenção nominal (como por exemplo o nome do arquivo terminando com a extensão ".exe") ou anotado separado do arquivo na sua meta-informação (como os bits da permissão de executar em um sistema operacional tipo Unix).
Na maioria das arquiteturas modernas, um arquivo executável contém muitas informações que não fazem parte do programa em si, como por exemplo informações sobre o ambiente necessário para a execução do programa, informação simbólica e de depuração, ou outra informação usada pelo sistema operacional na preparação do programa a ser executado.
Os executáveis possuem chamadas aos serviços do sistema operacional além das instruções de máquina comuns. Isto significa que os executáveis normalmente são específicos a um sistema operacional além de serem específicos a um processador.
Hoje em dia, a distinção entre um programa na sua forma original (em linguagem humana) e em sua forma executável (em linguagem de máquina) está se tornando menos distinta, já que o ato de transformar a forma original no formato máquina (por compilação) ou a interpretação pode ser feito de modo implícito.
Desse modo, o significado do termo executável está geralmente sendo estendido de um arquivo que contém instruções de máquina para qualquer arquivo que possa ser executado pelo ambiente sem a necessidade de uma transformação explícita.
Arquivos contendo linguagem interpretada, por outro lado, são normalmente chamados de arquivos de script ou scripts em vez de executáveis.
Conceito de Banco de Dados
Banco de dados
Ir para: navegação, pesquisa
Bancos de dados, (ou bases de dados), são conjuntos de dados com uma estrutura regular que organizam informação. Um banco de dados normalmente agrupa informações utilizadas para um mesmo fim.
Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGDB.
O modelo de dados mais adotado hoje em dia é o modelo relacional, onde as estruturas têm a forma de tabelas, compostas por linhas e colunas.
Definições
O termo banco de dados foi criado inicialmente pela comunidade de computação, para indicar coleções organizadas de dados armazenados em computadores digitais, porém o termo é atualmente usado para indicar tanto bancos de dados digitais como bancos de dados disponíveis de outra forma. No Brasil, é mais comum usar o termo base de dados quando se mencionam outros tipos de bancos de dados senão aqueles armazenados em um computador e gerenciados por um SGBD.
Aceitando uma abordagem mais técnica, um banco de dados é uma coleção de registros salvos em um computador em um modo sistemático, de forma que um programa de computador possa consultá-lo para responder questões.
Normalmente um registro está associado a um conceito completo e é dividido em campos, ou atributos, que dão valores a propriedades desses conceitos. Possivelmente alguns registros podem apontar diretamente ou referenciar indiretamente outros registros, o que faz parte da caracterização do modelo adotado pelo banco de dados.
A descrição de quais são os tipos de registros existentes em um banco de dados e ainda quais são os campos de cada registro é conhecida como esquema do banco de dados ou esquema relacional
Estritamente falado, o termo banco de dados deve ser aplicado apenas aos dados, enquanto o termo sistema gerenciador de bancos de dados deve ser aplicado ao software com a capacidade de manipular bancos de dados de forma geral. Porém, é comum misturar os dois conceitos.
Modelos de Dados dos Bancos de Dados atuais
A maneira mais prática de bancos de dados é de acordo com a forma que seus dados são vistos pelo usuário, ou seja, seu modelo de dados. Diversos modelos foram e vem sendo utilizados ao longo da história, com vantagens para um ou para outro por determinados períodos.
Atualmente, a classificação mais comum citaria 4 modelos básicos:
· Modelos Navegacionais, divididos em
· Modelo Hierárquico
· Modelo em Redes
· Modelo Relacional
· Modelo Orientado a Objetos
Porém, outros modelos podem ser citados, incluindo:
· Modelo de Entidades e Relacionamentos
· Modelo de lista invertida
· Modelo Relacional Estendido
· Modelo Semi-Estruturado
Historicamente, o modelo de bancos de dados em rede foi implementado primeiro; porém o primeiro produto comercial usava o modelo de bancos de dados hierárquico, que nada mais é que uma versão simplificada do primeiro. Ambos os modelos foram resultado da busca de usar mais efetivamente os novos dispositivos de memória secundária de acesso direto, que substituíam os cartões perfurados e as fitas magnéticas. Isso aconteceu na década de 1960.
Em 1970 E.F. Codd propôs o modelo de bancos de dados relacional que surgiu e ganhou destaque teórico imediato. Porém, a implementação do modelo exigia pesquisas e só na década de 1980 eles iam começar a ganhar o mercado, se estabilizando totalmente como líder do mercado a partir da década de 1990.
Podemos identificar o aparecimento do que pode ser chamado modelo plano (tabular)para fins mais diretos e simples. Nesse caso, os dados estão simplesmente arranjados em uma única matriz bi-dimensional de elementos de dados na qual todos os membros de uma dada coluna possuem valores de mesmo tipo, e todos os membros de uma linha estão relacionados entre si. Seu melhor exemplo são as planilhas eletrônicas.
O único modelo que foi extensamente tratado de forma teórica foi o modelo relacional. Os modelos pré-existentes foram fruto de implementações, enquanto os modelos subseqüentes, como o modelo orientado a objetos, não apresentavam um campo tão rico para novas teorias, mas apresentam grandes desafios para a implementação eficiente das operações necessárias.
Modelos Navegacionais
No modelo, os dados são organizados em registros, que são coleções de itens de dados, e podem ser armazenados ou recuperados de um banco de dados de forma conjunta. É possível que um registro possua uma estrutura interna, e elementos (itens de dados) contínuos podem ser agrupados, que também podem formar outros grupos. Dessa forma, um registro pode ter uma construção hierárquica. Os registros com a mesma estrutura formam um tipo de registro, que podem ser considerados equivalentes a uma tabela fora da primeira forma normal, ou ainda a um objeto complexo. Os tipos de registro possíveis em um banco de dados são definidos em seu esquema.
A principal característica do modelo em redes é permitir a navegação entre os registros, por meio de Conjuntos de Dados, que possui um registro proprietário e registros membros, implementados por meio de ponteiros. Basicamente, registros equivalem a entidades e conjuntos de dados equivalem a descrição dos relacionamentos. Como não há limitação na topologia criada pelos registros e conjuntos, o modelo permite a criação de redes, de onde ganhou o nome.
Um subconjunto particular do modelo de rede, o modelo hierárquico, limita os relacionamentos a uma estrutura de árvore, ao contrário da estrutura aplicada pelo modelo de rede completo.
O modelo em redes foi definido formalmente em 1971, pela Conference on Data Systems Languages (CODASYL), de onde ganhou seu outro nome: modelo CODASYL.
Modelo Relacional
O modelo relacional é uma teoria matemática desenvolvida por Edgar Frank Codd para descrever como as bases de dados devem funcionar. Embora esta teoria seja a base para o software de bases de dados relacionais, muito poucos sistemas de gestão de bases de dados seguem o modelo de forma restrita, e todos têm funcionalidades que violam a teoria, desta forma variando a complexidade e o poder. A discussão se esses bancos de dados merecem ser chamados de relacional ficou esgotada com tempo, com a evolução dos bancos existentes.
De acordo com a arquitetura ANSI / SPARC em três níveis, os Bancos de dados relacionais consistem de três componentes:
· uma coleção de estruturas de dados, formalmente chamadas de relações, ou informalmente tabelas, compondo o nível conceitual;
· uma coleção dos operadores, a álgebra e o cálculo relacionais, que constituem a base da linguagem SQL; e uma coleção de restrições da integridade, definindo o conjunto consistente de estados de base de dados e de alterações de estados. As restrições de integridade podem ser de quatro tipos:
· domínio (ou tipo de dados),
· atributo,
· relvar (variável de relacionamento) e
· restrições de base de dados.
Diferentemente dos modelos navegacionais, não existem quaisquer ponteiros, de acordo com o Princípio de Informação: toda informação tem de ser representada como dados; qualquer tipo de atributo representa relações entre conjuntos de dados.
Diferentemente dos bancos de dados em rede, nos bancos de dados relacionais os relacionamentos entre as tabelas não são codificados explicitamente na sua definição. Em vez disso, se fazem implicitamente pela presença de atributos chave. As bases de dados relacionais permitem aos utilizadores (incluindo programadores) escreverem consultas (queries), reorganizando e utilizando os dados de forma flexível e não necessariamente antecipada pelos projetistas originais. Esta flexibilidade é especialmente importante em bases de dados que podem ser utilizadas durante décadas, tornando as bases de dados relacionais muito populares no meio comercial.
Um dos pontos fortes do modelo relacional de banco de dados é a possibilidade de definição de um conjunto de restrições de integridade. Estas definem os conjuntos de estados e mudanças de estado consistentes do banco de dados, determinando os valores que podem e os que não podem ser armazenados.
Bancos de Dados Orientados a Objetos
Na década de 90, o modelo baseado na orientação a objeto foi aplicado também aos bancos de dados, criando um novo modelo de programação conhecido como bancos de dados orientados a objeto. Os objetos são valores definidos segundo classes, ou tipos de dados complexos, com seus próprios operadores (métodos).
Com o passar do tempo, os sistemas gestores de bancos de dados orientados a objeto e os bancos de dados relacionais baseados na linguagem SQL se aproximaram. Muitos sistemas orientados a objeto são implementados sobre bancos de dados relacionais baseados em linguagem SQL.
O resultado comercial, porém, foi pequeno. Atualmente vários princípios de orientação a objeto foram adotados pelos bancos de dados relacionais, gerando o que pode ser chamado de banco de dados relacional estendido.
Bancos de Dados Semi-Estruturados
Mais recentemente ainda, apareceram os bancos de dados semi-estruturados, onde os dados são guardados e manipulados na forma de XML (ao contrário da forma de tabelas). Novamente, os produtores de bancos de dados relacionais responderam estendendo suas capacidades para tratar dados semi-estruturados.
Índices
Todos os tipos de bancos de dados podem ter seu desempenho melhorado pelo uso de índices. O tipo mais comum de índice é uma lista ordenada dos valores de uma coluna de uma tabela, contendo ponteiros para as linhas associadas a cada valor. Um índice permite que o conjunto das linhas de uma tabela que satisfazem determinado critério sejam localizadas rapidamente. Há vários métodos de indexação utilizados comumente, como árvores B, hashes e listas encadeadas...
Utilização
Os bancos de dados são utilizados em muitas aplicações, abrangendo praticamente todo o campo dos programas de computador. Os bancos de dados são o método de armazenamento preferencial para aplicações multiusuário, nas quais é necessário haver coordenação entre vários usuários. Entretanto, são convenientes também para indivíduos, e muitos programas de correio eletrônico e organizadores pessoais baseiam-se em tecnologias padronizadas de bancos de dados.
Um banco de dados é um conjunto de informações com uma estrutura regular. Um banco de dados é normalmente, mas não necessariamente, armazenado em algum formato de máquina lido pelo computador. Há uma grande variedade de bancos de dados, desde simples tabelas armazenadas em um único arquivo até gigantescos bancos de dados com muitos milhões de registros, armazenados em salas cheias de discos rígidos.
Bancos de dados caracteristicamente modernos são desenvolvidos desde os anos da década de 1960. Um pioneiro nesse trabalho foi Charles Bachman.
Apresentação dos dados
A apresentação dos dados geralmente é semelhante à de uma planilha eletrônica, porém os sistemas de gestão de banco de dados possuem características especiais para o armazenamento, classificação, gestão da integridade e recuperação dos dados. Com a evolução de standards de conectividade entre as tabelas de um banco de dados e programas desenvolvidos em linguagens como Java, Delphi, Visual Basic, C++, etc, a apresentação dos dados, bem como a navegação, passou a ser definida pelo programador ou o designer de aplicações. Como hoje em dia a maioria das linguagens de programação fazem ligações a bancos de dados, a apresentação deste tem ficado cada vez mais a critério dos meios de programação, fazendo com que os bancos de dados deixem de restringir-se às pesquisas básicas, dando lugar ao compartilhamentoem tempo real de informações, mecanismos de busca inteligentes e permissividade de acesso hierarquizada.
Modelos de base de dados
O modelo plano (ou tabular) consiste de matrizes simples, bidimensionais, compostas por elementos de dados: inteiros, números reais, etc. Este modelo plano é a base das planilhas eletrônicas.
O modelo em rede permite que várias tabelas sejam usadas simultaneamente através do uso de apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por grafos.
Bases de dados relacionais consistem, principalmente de três componentes: uma coleção de estruturas de dados, nomeadamente relações, ou informalmente tabelas; uma coleção dos operadores, a álgebra e o cálculo relacionais; e uma coleção de restrições da integridade, definindo o conjunto consistente de estados de base de dados e de alterações de estados. As restrições de integridade podem ser de quatro tipos: domínio (também conhecidas como type), atributo, relvar e restrições de base de dados.
Diferentemente dos modelos hierárquico e de rede, não existem quaisquer apontadores, de acordo com o Princípio de Informação: toda informação tem de ser representada como dados; qualquer tipo de atributo representa relações entre conjuntos de dados. As bases de dados relacionais permitem aos utilizadores (incluindo programadores) escreverem consultas (queries) que não foram antecipadas por quem projetou a base de dados. Como resultado, bases de dados relacionais podem ser utilizadas por várias aplicações em formas que os projetistas originais não previram, o que é especialmente importante em bases de dados que podem ser utilizadas durante décadas. Isto tem tornado as bases de dados relacionais muito populares no meio empresarial.
O modelo relacional é uma teoria matemática desenvolvida por Ted Codd para descrever como as bases de dados devem funcionar. Embora esta teoria seja a base para o software de bases de dados relacionais, muito poucos sistemas de gestão de bases de dados seguem o modelo de forma restrita e todos têm funcionalidades que violam a teoria, desta forma variando a complexidade e o poder. A discussão se esses bancos de dados merecem ser chamados de relacional ficou esgotada com tempo, com a evolução dos bancos existente.
Aplicações de bancos de dados
Bancos de dados são usados em muitas aplicações, enquanto atravessando virtualmente a gama inteira de software de computador. Bancos de dados são o método preferido de armazenamento para aplicações multi-usuárias grandes onde a coordenação entre muitos usuários é necessária. Até mesmo usuários individuais os acham conveniente, entretanto, muitos programas de correio eletrônico e organizadores pessoais estão baseados em tecnologia de banco de dados standard.
Aplicativo de Banco de Dados
Um Aplicativo de Banco de dados é um tipo de software exclusivo para gerenciar um banco de dados. Aplicativos de banco de dados abrangem uma vasta variedade de necessidades e objectivos, de pequenas ferramentas como uma agenda, até complexos sistemas empresariais para desempenhar tarefas como a contabilidade.
O termo "Aplicativo de Banco de dados" usualmente se refere a softwares que oferecem uma interface para o banco de dados. O software que gerencia os dados é geralmente chamado de sistema gerenciador de banco de dados (SGBD) ou (se for embarcado) de "database engine".
Exemplos de aplicativos de banco de dados são Microsoft Visual FoxPro, Microsoft Access, dBASE, FileMaker , (em certa medida) HyperCard, MySQL, PostgreSQL, Microsoft SQL Server e Oracle.
Em Março, 2004, AMR Research (como citado em um artigo da CNET News.com listado na secção de "Referências") previu que aplicações de banco de dados de código aberto seriam amplamente aceitas em 2006.
Transação
É um conjunto de procedimentos que é executado num banco de dados, que para o usuário é visto como uma única ação. A integridade de uma transação depende de 4 propriedades, conhecidas como ACID.
Atomicidade
Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Qualquer ação que constitui falha na unidade de trabalho e a transação deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada (commit).
· Consistência
Nenhuma operação do banco de dados de uma transação pode ser parcial.O status de uma transação deve ser implementado na íntegra. Por exemplo, um pagamento de conta não pode ser efetivado se o processo que debita o valor da conta corrente do usuário não for efetivado antes, nem vice-versa.
Isolamento
Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. Nenhuma outra transação, operando no mesmo sistema, pode interferir no funcionamento da transação corrente. Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento.
· Durabilidade
· Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.
Na prática, alguns SGBDs relaxam na implementação destas propriedades buscando desempenho.
Controle de concorrência é um método usado para garantir que as transações são executadas de uma forma segura e segue as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback). Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que qualquer escalonamento produzido ao se processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzindo executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade.
Segurança em banco de dados
Os bancos de dados são utilizados para armazenar diversos tipos de informações, desde dados sobre uma conta de e-mail até dados importantes da Receita Federal. Para tal existem diversos tipos, os quais variam em complexidade e sobretudo em segurança.
São meios de proteger as informações armazenadas num banco de dados
· Criptografia
· Senhas
· Backup
Linguagem de programação
Ir para: navegação, pesquisa
Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.
O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador.
Uma das principais metas das linguagens de programação é permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenções mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (código de máquina). Assim, linguagens de programação são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programação são ferramentas importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez.
Linguagens de programação também tornamos programas menos dependentes de computadores ou ambientes computacionais específicos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador no qual será executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programação, era esta independência da máquina onde seria executada.
História
A primeira linguagem de programação para computadores foi provavelmente Plankalkül, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco ou nenhum impacto no futuro das linguagens de programação.
A primeira linguagem de programação de alto nível amplamente usada foi Fortran, criada em 1954.
Em 1957 foi criada [B-0], que daria origem a Flow-Matic (1958), antecessor imediato de COBOL, de 1959. Lisp e ALGOL foram criadas em 1958. Veja um mapa[1] da história das linguagens de programação].
Interpretação e compilação
Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução.
Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar (ou rodar, como se diz no jargão da computação) o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C.
Se o texto do programa é traduzido à medida em que vai sendo executado, como em Javascript, Python ou Perl, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente (freqüentemente linguagens interpretadas são chamadas também de script).
Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina de uma máquina virtual (sendo esta máquina virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como o Java e o Parrot. E também há outras formas de interpretar em que os códigos-fontes, ao invés de serem interpretados linha-a-linha, têm blocos "compilados" para a memória, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como JIT.
Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o código java para o código intermediário (e portável) da JVM. As JVMs originais interpretavam esse código, de acordo com o código de máquina do computador hospedeiro, porém atualmente elas compilam, segundo a técnica JIT o código JVM para código hospedeiro.
A tradução é tipicamente feita em várias fases, sendo as mais comuns a Análise léxica, a Análise sintática ou Parsing, a Geração de código e a Otimização. Em compiladores também é comum a Geração de código intermediário. Veja também Compilador.
Classificação
As linguagens de programação podem ser classificadas e sub-classificadas de várias formas.
Classificação da ACM
A ACM mantém um sistema de classificação[2] com os seguintes sub-itens:
· Linguagens aplicativas, ou de aplicação
· Linguagens concorrentes, distribuídas e paralelas
· Linguagens de fluxo de dados
· Linguagens de projeto
· Linguagens estensíveis
· Linguagens de montagem e de macro
· Linguagens de microprogramação
· Linguagens não determinísticas
· Linguagens não procedurais
· Linguagens orientadas a objeto
· Linguagens de aplicação especializada
· Linguagens de muito alto nível
Quanto ao paradigma
Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe:
· Linguagem funcional
· Programação estruturada
· Linguagem orientada a objetos
· Linguagem natural
· Programação lógica
Quanto a estrutura de tipos
· Fracamente tipada, como Smalltalk
· Fortemente tipada, como Java
· Dinamicamente tipada, como Python
Quanto ao grau de abstração
· Linguagem de programação de baixo nível, próximas a máquina, como Assembly
· Linguagem de programação de alto nível, no nível da especificação de algoritmos, como Pascal e Fortran
· Linguagem de programação de muito alto nível, no nível da especificação declarativa, como SQL
Quanto à geração
· Primeira geração, as linguagens de baixo nível (Assembly)
· Segunda geração, as primeiras linguagens (Fortran, ALGOL,...)
· Terceira geração, as procedurais e estruturadas (Pascal, C).
· Quarta geração, linguagens que geram programas em outras linguagens, linguagens de consulta (SQL).
· Quinta geração, linguagens lógicas (Prolog).
Lista de linguagens de programação
Linguagens históricas
ALGOL - Assembly - B - BASIC - BCPL - Clipper - COBOL - CPL - Forth - Fortran - Icon - PL/I - Simula - Smalltalk - SNOBOL 4
Linguagens acadêmicas
Icon - Pascal - PORTUGOL - Prolog - Haskell - Lisp - Logo - OCaml
Linguagens proprietárias
ABAP - AWK - C# - Cω - COBOL - ColdFusion - Delphi - Eiffel - Logic Basic - SQL - Visual Basic
Linguagens não-proprietárias
Ada - C - C++ - Forth - Fortran - Lisp - Pascal - Smalltalk
Linguagens livres
Euphoria - Icon - Java - JavaScript - Lua - MUMPS - Perl - PHP - PORTUGOL - Python - R - Ruby - Shell script - Tcl - Unicon
Linguagens esotéricas
Befunge - brainfuck - FALSE - Gammaplex - INTERCAL - L00P - Malbolge - PATH - SNUSP - Unlambda - Whitespace