SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Documentos relacionados
TELECOMUNICAÇÕES Prof. Ricardo Rodrigues Barcelar

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Programação de Sistemas em Tempo Real

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Aula 04. Capítulo 3 Gerência de Processos. 3.1 Conceito de Processo. 3.2 Escalonamento de Processos. 3.3 Opera ões sobre Processos

Introdução aos Sistemas Operacionais

Sistemas Operacionais

Sistemas de Computação. Processos e escalonamento

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Sistemas Operacionais

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Conceito de Processos

Estruturas de Sistemas Operacionais

Curso: Redes de Computadores

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO PROCESSOS PROFESSOR CARLOS MUNIZ

Montagem e Manutenção

Redes de Computadores. INF201 - Fundamentos de Sistemas Operacionais - 2º Período

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 13

Sistemas Operacionais. Visão Geral

Sistemas Operacionais

FUNDAMENTOS DE REDES DE COMPUTADORES TP1

FUNDAMENTOS DE REDES DE COMPUTADORES TP2

Infra-Estrutura de Software. Escalonamento

Sistemas Distribuídos Aula 2

14/05/2017. Conceitos de Processos. Conceitos de Processos. Conceito de processo

Sistemas Operacionais

Processos e Threads. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Barramento. Prof. Leonardo Barreto Campos 1

Arquitetura de Computadores Sistemas Operacionais II

Sistemas Operacionais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

Capítulo 3: Processos

SI06 DIMENSÃO TECNOLÓGICA I

SISTEMAS OPERACIONAIS

Prof. Samuel Henrique Bucke Brito

Sistemas Operacionais. Processos e Threads

Redes para Automação Industrial: Introdução às Redes de Computadores Luiz Affonso Guedes

Características de Sistemas Distribuídos

Introdução a Sistemas Operacionais. Adão de Melo Neto

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Uma Visão Geral de Redes de Computadores

Redes de Computadores.

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios. Aula 06.

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Sistemas Operacionais

Noções sobre Redes de Computadores. Aula 16/06 Secretariado Executivo

SSC0640 Sistemas Operacionais I

Prof. Kleber R. Rovai

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Características de Sistemas Distribuídos

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Comunicação de Dados II

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Redes de Computadores

Organização e Arquitetura de Computadores I

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 5: REDE DE ACESSO CAMADA ENLACE. Prof. LUIZ LEÃO

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Resumo: Sistemas Operacionais Abertos

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Preparação AV3 Fundamentos de Redes de Computadores

Parte I Multiprocessamento

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Computação Distribuída

Sistemas Operacionais. Sistema de entrada e Saída

SOP - TADS Processos. Revisão Ultima aula

Infra-Estrutura de Software

PROCESSOS. Sistemas Operacionais. Vinícius Pádua

Algoritmos e Lógica de Programação Sistemas Operacionais

Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Gerência de Entrada e Saída

Sistemas Operacionais. Escalonamento de processos

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

CURSO TÉCNICO EM INFORMÁTICA

Sistemas Operacionais Aula 3

Sistemas Operacionais. Aula 1

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Redes de Computadores I

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva

Transcrição:

- Aula 1 - REVISÃO DE REDES E SISTEMAS OPERACIONAIS 1. INTRODUÇÃO No atual cenário tecnológico, algumas práticas vêm se destacando bastante, dentre elas a utilização dos sistemas distribuídos. Baseado em conceitos apresentados nesta disciplina é que é possível a construção de sistemas complexos de renderização de imagens como o utilizado em filmes (p. ex. Titanic) ou do projeto Caverna Digital da USP, sem mencionar projetos de construção de sistemas operacionais destinados especificamente ao processamento distribuído. Dessa forma, cresce a importância em conhecer a estrutura e peculiaridades dos sistemas distribuídos. Neste sentido, conhecer e saber aplicar os conceitos e algoritmos dos sistemas distribuídos é um diferencial no mercado de trabalho e nas pesquisas científicas. 2. REVISÃO DE REDES DE COMPUTADORES Para a perfeita compreensão dos sistemas distribuídos é necessário relembrar e compreender conceitos fundamentais de redes de computadores. 2.1. Requisitos da comunicação Os complexos sistemas de comunicação de dados não usam um único protocolo para tratar de todas as tarefas de transmissão. Ao contrário, requerem uma pilha de protocolos cooperativos, algumas vezes chamados de família de protocolos ou mesmo pilha de protocolos. Para exemplificar toda essa idéia de comunicação em vários níveis, vamos lembrar a analogia dos dois filósofos, conforme figura 1. Cada protocolo envolvido no processo é totalmente independente dos demais, desde que as interfaces não sejam alteradas. 2.2. Aplicações para redes de computadores Para utilizar a infraestrutura física de uma rede é necessário que os computadores tenham aplicações que transmitem e recebem mensagens, onde uma mensagem é constituída por um grupo de bytes que tenham algum significado. 2.2.1. CLIENTE/SERVIDOR (CS) A filosofia de desenvolvimento de aplicações, na qual a aplicação é constituída de duas partes: o Cliente e o Servidor. O Cliente solicita algum serviço e o Servidor atende a solicitação. 1

Figura 1 - Dois filósofos Cada parte pode estar sendo executada em um sistema diferente, isto é, o cliente pode estar no Windows XP e o Servidor pode estar executando em um servidor Linux Debian. São exemplos de aplicações cliente-servidor: - www - Telnet - FTP - SSH Figura 2 Cliente/Servidor Aplicações Cliente/Servidor utilizam funções que estão disponíveis em bibliotecas que acompanham o TCP/IP. As mais utilizadas são open, send, recv, close; As bibliotecas fornecem transparência de acesso a rede. Dessa forma, o programador não precisa conhecer como a rede está estruturada para desenvolver a aplicação. 2

2.3. Topologia de Rede A topologia de uma rede de comunicação refere-se à forma como os enlaces físicos (cabos) existentes e os nós de uma rede (computadores) estão organizados, determinando caminhos físicos existentes e utilizáveis entre quaisquer pares de estações conectadas a essa rede. As topologias de rede mais conhecidas são: - Estrela - Anel - Barramento - Mista 2.4. Transmissão da informação pelo meio físico A transmissão da informação pode dar-se, principalmente, de duas formas: - Difusão - Ponto-a-ponto O primeiro, Links de difusão têm apenas um canal de comunicação compartilhado por todas as máquinas da rede, onde são transferidos pacotes de um computador para outro ou de um computador para todos. Cada pacote deve ter um endereço que identificará para qual máquina é a mensagem dentro da rede na qual ela está inserida. Existe ainda a possibilidade de haver a difusão para todas as máquinas. Isto se dá com a utilização de um código especial o campo de endereço. Quando um pacote com esse código é transmitido, ele é recebido e processado por todas as máquinas da rede. Esse modo de operação é chamado de difusão ou broadcasting. Alguns sistemas também permitem a transmissão para um subconjunto das máquinas, o que se conhece como multidifusão ou multicasting. Em contraste, o segundo tipo, as redes ponto-a-ponto consistem em muitas conexões entre pares de máquinas individuais. Para ir da origem ao destino, um pacote muitas vezes tem que visitar várias máquinas intermediárias ou fazer várias rotas com tamanhos diferentes. Como regra geral (embora existam exceções), redes menores tendem a usar difusão, enquanto redes maiores em geral são redes ponto-a-ponto. Exemplo: A transmissão ponto a ponto com um transmissor e um receptor, chamada de unicasting. 2.5. Classificação da Comunicação segundo a direção da transmissão A forma de utilização do meio físico que conecta as estações da origem a seguinte classificação sobre a comunicação no enlace. - Simplex: A informação vai apenas para um sentido. Ex.: Rádio. - Half-Duplex: Transmite nos dois sentidos em tempos diferentes. Ex.: Rádio amador. - Full-Duplex: Transmite e recebe ao mesmo tempo. Ex.: Telefone 3

2.6. Modelo de referencia OSI Modelo surgido em 1983 é atualmente o modelo de referencia no estudo de Redes de Computadores. É um modelo abstrato de redes, não existem redes implementadas exatamente segundo modelo de sete camadas, uma vez que as redes não necessitam implementar todas as camadas. No RM OSI não há o detalhamento de serviços. Figura 3 Arquitetura baseada no Modelo de Referência OSI 2.6.1. CONCEITOS FUNDAMENTAIS DO RM OSI - É estruturado em camadas hierárquicas; - Cada camada presta serviços para camada superior. Dessa forma cada camada usa serviços da camada inferior; - As camadas de mesmo nível comunicam-se ; - Uma determinada camada apenas toma conhecimento da camada inferior; - Interação entre camadas feita através de serviços; - Existe certa divisão de tarefas entre as camadas; - É de fácil abstração. 4

Figura 4 - Estrutura Funcional No RM OSI, assim como nos modelos derivados deste, a informação ao passar por cada camada sobre um processo de empacotamento conforme ilustrado na figura abaixo: Figura 5 - Processo de empacotamento 2.7. Modelo de Referência TCP/IP Diferente do RM OSI, este é formado por quatro camadas. 5

Figura 6 - Comparativo do RM OSI com o RM TCP Observe que a camada Internet do RM TCP/IP está em um nível menor que do correspondente no RM OSI. Isto implica que a camada de Internet realiza funções extras, como a entrega local de mensagens dentro da mesma rede. Neste caso o IP só trata da entrega e a decisão de roteamento quando a origem e o destino da mensagem estão situados em redes distintas. De modo semelhante o RM TCP/IP combina os aspectos das camadas de apresentação e de sessão dentro da sua camada de aplicação. Os protocolos do RM TCP/IP são os padrões em torno dos quais a Internet se desenvolveu, portanto este modelo de referência ganha credibilidade apenas por causa dos seus protocolos. Ao contrário, geralmente as redes não são desenvolvidas de acordo com o RM OSI, embora este seja usado como um guia. 3. REVISÃO DE SISTEMAS OPERACIONAIS Inicialmente é preciso relembrar como estão organizados os sistemas operacionais. Figura 7 - Organização do SO 6

O Sistema Operacional é um programa de controle, pois controla os dispositivos de entrada e saída (I/O devices) e os programas que resolvem os problemas dos usuários. Ele previne erros e o uso impróprio do computador (por exemplo, um usuário não pode destruir os arquivos de outros usuários). O Sistema Operacional cria um sistema computacional usável. As aplicações possuem necessidades em comum que são atendidas pelo sistema operacional. Estas necessidades correspondem exatamente à alocação e controle dos recursos. O objetivo do Sistema Operacional é permitir o uso do computador de forma fácil e eficiente. Pode-se dizer que o Sistema Operacional de um computador é a parte de software que estende os recursos de hardware da máquina, tornando a utilização do equipamento mais fácil, mais eficiente e mais confiável. Recursos gerenciados pelo Sistema Operacional: - Tempo de CPU - Espaço de memória - Espaço em disco - Periféricos (impressora, etc.) Os primeiros Sistemas Operacionais não otimizavam o uso da CPU, o que era inaceitável. Algumas técnicas foram utilizadas para minimizar este problema. Entre elas estão a operação offline, a bufferização e o spooling. 3.1. Multiprogramação A operação off-line, bufferização e spooling, mesmo utilizadas em conjunto, não garantem uma utilização eficiente do computador. Um único programa não consegue manter a CPU o tempo todo ocupada. Por isso surgiu a multiprogramação, que é a execução simultânea de vários programas (vários programas na memória). A multiprogramação aumenta a utilização da CPU, fazendo com que ela tenha sempre algo para executar. Os primeiros sistemas multiprogramados foram implementados através de uma extensão da técnica de spooling. Para obter maior eficiência, o SO procura manter na memória uma mistura de jobs CPUbound e I/O-bound. A multiprogramação aumenta a complexidade do sistema, mas aumenta muito a sua eficiência. 3.2. Tipos de Sistemas Operacionais Sem considerar os sistemas para redes de computadores, os sistemas distribuídos e os sistemas paralelos, pode-se dizer que existem três tipos básicos de Sistemas Operacionais. 3.2.1. SISTEMAS OPERACIONAIS BATCH Os primeiros sistemas operacionais eram chamados de sistemas batch devido ao fato 7

dos jobs semelhantes estarem agrupados em lotes. Isto simplificava a operação do computador quando todo o I/O era feito através de fitas magnéticas ou cartões perfurados, dispositivos essencialmente seqüenciais. 3.2.2. SISTEMAS OPERACIONAIS TIME-SHARING Os sistemas operacionais do tipo time-sharing permitem interação de uma forma eficiente. Eles são implementados da seguinte forma: - O sistema operacional dispõe de multiprogramação; - Cada usuário possui um job ativo vinculado a um terminal; - A comunicação via terminal é lenta, sobra CPU para os outros; - Os usuários, ao longo do tempo, compartilham a CPU (time-sharing); A idéia de um sistema time-sharing foi demonstrada no início dos anos 60 e tornou-se comum no início da década seguinte. Alguns sistemas operacionais suportavam os dois ambientes (batch e time-sharing). 3.2.3. SISTEMAS OPERACIONAIS REAL-TIME Em um sistema de tempo real, o computador está ligado a processos externos (processos industriais, equipamentos cirúrgicos, etc.) que dependem fundamentalmente dos tempos de resposta do computador. Sinais dos processos externos acionam o computador através do sistema de interrupção; se estes sinais não são respondidos prontamente (em microsegundos ou milisegundos, dependendo da aplicação), os processos externos podem prosseguir de forma errada ou degradada. Nas aplicações de tempo real, o computador é apenas uma das peças do sistema (não a mais importante, em geral) e os usuários são os processos externos controlados pelo computador. 3.3. Serviços do Sistema Operacional Pode-se dizer que o principal objetivo de um sistema operacional é criar um ambiente para execução de programas. Seu objetivo é fornecer a infraestrutura e os mecanismos necessários para levar programas para a memória e supervisionar as execuções dos mesmos. A infraestrutura resultante fornece diversos tipos de serviços aos aplicativos e aos programadores. 3.3.1. TIPOS DE SERVIÇOS Serviços para facilitar o uso (aumentar a conveniência de uso do sistema): - Execução de programas; - Operações de I/O; 8

- Sistema de arquivos; - Detecção de erros. 3.3.2. SERVIÇOS PARA AUMENTAR A EFICIÊNCIA - Alocação de recursos; - Contabilizações; - Proteção 3.3.3. A VISÃO DO USUÁRIO O sistema operacional pode ser visto de diferentes ângulos. A visão do usuário é formada pelas chamadas de sistema disponíveis e pelos programas de sistema (também denominados utilitários). Com a utilização de interfaces gráficas, o usuário se comunica com o Sistema Operacional através de ícones e menus (via mouse e teclado). Com isso, deixou de haver a visão mais detalhada que havia quando a comunicação era textual (via linhas de comandos). Contudo, mesmo que isto fique escondido, o usuário se comunica com o Sistema Operacional sempre através de chamadas de sistema. 3.3.4. A VISÃO DO PROGRAMADOR DE SISTEMA A visão do programador de sistema é diferente. Ele percebe o sistema operacional como um servidor de interrupções cujo objetivo é administrar os recursos físicos de maneira a criar facilidades de uso para os usuários. O sistema operacional é um programa conduzido por eventos. Se não existem programas para executar ou E/S para fazer, o sistema operacional não faz nada. Neste contexto, um evento é a ocorrência de uma interrupção (de hardware ou de software). O sistema operacional é, portanto, dirigido por interrupções. Quando uma interrupção ou um trap ocorre, o sistema operacional é ativado. O evento sinalizado pode ser uma chamada de sistema, ou a indicação do término de uma determinada operação de dispositivo, ou ainda um erro na execução de um programa. 3.3.5. CHAMADAS DE SISTEMA Os programas utilizam as chamadas de sistema para solicitar serviços ao sistema operacional. Existem diversos tipos de chamadas de sistema. Chamadas de sistema para controle de processo ou job: - Término ou cancelamento de programa; - Carregar e executar programas; - Criar e terminar processos; 9

- Obter e alterar atributos de processos; - Esperar a passagem de certo tempo; - Esperar ou sinalizar a ocorrência de eventos. Chamadas ligadas à manipulação de arquivos: - Criar e remover arquivos; - Abrir, fechar, ler e escrever em arquivos; - Obter e alterar atributos de arquivos. Chamadas ligadas à manipulação de dispositivos: - Requisitar ou liberar dispositivo; - Ler e escrever em dispositivo; - Obter e alterar atributos de dispositivos. Chamadas ligadas à manutenção de informações: - Obter e alterar hora e data; - Obter e alterar dados do sistema; As interrupções por chamada de sistema podem ou não ser atendidas na hora. Por exemplo, uma chamada de sistema para ler a data pode ser atendida imediatamente. Entretanto, uma chamada de sistema para ler um setor de disco não poderá ser atendida imediatamente. O pedido feito será inserido na fila do driver. Enquanto o processo solicitante aguarda a realização da E/S, o sistema operacional entrega a CPU para outro programa. Dessa forma surgem diversos tipos de interrupções: - Interrupção de dispositivo de E/S (I/O devices); - Interrupção por erro em programa; 3.4. Processos Como sabemos um Sistema Operacional executa uma série de programas. Em muitas literaturas job e processos são quase sinônimos. Processo nada mais é que um programa em execução. Um processo inclui: - Contador de programa (PC) - Pilha - Segmento (área) de dados Ao executar, o processo muda de estados : - New: processo está sendo criado - Running: instruções do processo estão executando 10

- Waiting: processo está esperando ocorrência de algum evento - Terminated: processo terminou a execução Figura 8 - Processos Os processos para serem executados entram em uma fila e são submetidas a um escalonamento: - Fila de jobs : conjunto de todos os processos no sistema; - Fila de prontos (ready queue): conjunto de todos os processos que residem na memória principal, prontos para executar, mas não estão em execução; - Filas de dispositivos: conjunto de processos esperando por um dispositivo de I/O Os processos migram entre as diversas filas do sistema. Os escalonadores analisam o tipo de processo antes de processá-lo. Como visto os processos são classificados em: - I/O-bound processes delimitados pelo tempo de I/O, gasta mais tempo fazendo I/O do que computações, muitas pequenas rajadas (bursts) de CPU; - CPU-bound processes delimitados pelo tempo de CPU, gastam a maior parte do tempo fazendo computações; Poucas RAJADAS LONGAS de CPU. 3.5. Processos Cooperantes Processos Independentes não podem afetar ou serem afetados pela execução de outros processos. Processos Cooperantes podem afetar a execução de outros processos cooperantes (ou ter execução afetada) Vantagens da cooperação entre processos: - Compartilhamento de informações - Aumento da velocidade de computação (speed up) 11

- Modularidade - Conveniência 3.6. Thread Uma thread (ou lightweight process) é uma unidade básica de utilização de CPU. Uma thread consiste de: - Apontador de instruções (PC) - Conjunto de registradores - Espaço de pilha A Thread é um processo de peso leve ou, também, linha de execução de um processo. A thread compartilha com outras threads pares (peers): - A seção de código - A seção de dados - Os recursos do SO Coletivamente tudo isso é conhecido como tarefa (task). Um processo tradicional (ou heavyweight process) é igual a uma tarefa com uma thread. Threads provêm um mecanismo que possibilita a um processo seqüencial fazer uma chamada bloqueante ao Sistema Operacional e ao mesmo tempo obter paralelismo no processo. 3.7. Comunicação entre processos (IPC) Para a comunicação entre processo são necessários mecanismos de comunicação e sincronização de suas ações. No sistema de mensagens os processos comunicam-se uns com os outros sem uso de variáveis compartilhadas. O Mecanismo de IPC por troca de mensagens provê duas operações: - Send (message): mensagens de tamanho fixo ou variável - Receive(message) Se P e Q querem comunicar, eles precisam: - Estabelecer um canal de comunicação entre si - Trocar mensagens via send/receive Para a comunicação é preciso um link de comunicação, seja ele físico (memória compartilhada, barramento de hardware) ou lógico (propriedades lógicas). 12

3.8. Resumo Histórico a. Computadores iniciais: Caros e Grandes. b. Anos 50: Com o spooling e a multiprogramação o objetivo era otimizar a utilização da CPU. c. Início dos anos 60: Sistemas de tempo compartilhado. Foi o primeiro passo na direção dos Sistemas Distribuídos, incorporando dois conceitos fundamentais: Compartilhamento de recursos Acesso remoto Os Terminais passam a ter maior capacidade de processamento passando a executar tarefas principais/comuns em um computador principal. A redução do tamanho, do preço e o aumento da velocidade no hardware, bem como maiores distâncias e confiabilidade na comunicação foram evoluções significativas. d. Final dos anos 60 e início dos anos 70: Surgimento das redes: Ethernet: LAN ARPANet: WAN Surgimento do Sistema Operacional UNIX. e. Final dos anos 70: Protoloco TCP/IP f. Início dos anos 80: Estações de trabalho 13