Baixe o app para aproveitar ainda mais
Prévia do material em texto
2013 SiStemaS e aplicaçõeS DiStribuíDaS Prof. Danton Cavalcanti Franco Junior Prof. Jan Charles Gross Copyright © UNIASSELVI 2013 Elaboração: Prof. Danton Cavalcanti Franco Junior Prof. Jan Charles Gross Revisão, Diagramação e Produção: Centro Universitário Leonardo da Vinci – UNIASSELVI Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri UNIASSELVI – Indaial. 004.36 F825s Franco Junior, Danton Cavalcanti Sistemas e aplicações distribuídas / Danton Cavalcanti Franco Junior; Jan Charles Gross. Indaial : Uniasselvi, 2013. 178 p. : il ISBN 978-85-7830- 698-4 1. Processamento distribuído – Redes. I. Centro Universitário Leonardo da Vinci. Impresso por: III apreSentação Prezado(a) Acadêmico(a)! Seja bem-vindo ao estudo da disciplina de Sistemas e Aplicações Distribuídas, que tem como principal objetivo demonstrar a importância e o funcionamento de um sistema operacional e dos sistemas distribuídos. Este Caderno de Estudos foi dividido em três unidades. A primeira é introdutória, conta o histórico do sistema operacional e traz conceitos elementares de sua estrutura além de fazer entender o gerenciamento da memória. Na segunda unidade falaremos de processos, incluindo suas variantes (threads e subprocesso) além de entender como funciona a gerência do processador através do escalonamento de processos, finalizando com a gerência de dispositivos. Na terceira unidade serão estudados os sistemas distribuídos, sua arquitetura em um ambiente distribuído. Durante o texto, você encontrará dicas de leitura e, ao final de cada unidade, um texto complementar que lhe auxiliará na busca de informações complementares. Bom estudo! Prof. Danton Cavalcanti Franco Junior Prof. Jan Charles Gross IV Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há novidades em nosso material. Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um formato mais prático, que cabe na bolsa e facilita a leitura. O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova diagramação no texto, aproveitando ao máximo o espaço da página, o que também contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo. Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente, apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilidade de estudá-lo com versatilidade nas telas do celular, tablet ou computador. Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assunto em questão. Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa continuar seus estudos com um material de qualidade. Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de Desempenho de Estudantes – ENADE. Bons estudos! UNI V VI VII UNIDADE 1 – INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS ........ 1 TÓPICO 1 – FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS ............................................................................................................. 3 1 INTRODUÇÃO .................................................................................................................................... 3 2 O QUE É UM SISTEMA OPERACIONAL? .................................................................................... 4 2.1 FUNÇÕES BÁSICAS DO SISTEMA OPERACIONAL .............................................................. 5 2.1.1 Facilidade de acesso aos recursos do sistema .................................................................... 6 2.1.2 Compartilhamento de recursos de forma organizada e protegida ................................ 7 2.1.3 Controle e gerenciamento dos recursos de rede ............................................................... 7 3 HISTÓRICO .......................................................................................................................................... 7 3.1 PRIMEIRA GERAÇÃO .................................................................................................................. 8 3.2 SEGUNDA GERAÇÃO .................................................................................................................. 11 3.3 TERCEIRA GERAÇÃO .................................................................................................................. 12 3.4 QUARTA GERAÇÃO ..................................................................................................................... 14 3.5 QUINTA GERAÇÃO ...................................................................................................................... 16 4 TIPOS DE SISTEMAS OPERACIONAIS ....................................................................................... 16 4.1 SISTEMAS OPERACIONAIS DE COMPUTADORES DE GRANDE PORTE ....................... 17 4.1.1 Sistemas operacionais de lote (batch) ................................................................................. 18 4.1.2 Sistemas operacionais de tempo compartilhado ............................................................... 18 4.1.3 Sistemas operacionais transacionais ................................................................................... 18 4.2 SISTEMAS OPERACIONAIS DE SERVIDORES ........................................................................ 18 4.3 SISTEMAS OPERACIONAIS DE MULTIPROCESSADORES ................................................. 19 4.4 SISTEMAS OPERACIONAIS DE COMPUTADORES PESSOAIS ........................................... 19 4.5 SISTEMAS OPERACIONAIS DE TEMPO REAL ....................................................................... 19 4.6 SISTEMAS OPERACIONAIS EMBARCADOS .......................................................................... 20 4.7 SISTEMAS OPERACIONAIS DE CARTÕES INTELIGENTES ................................................ 20 LEITURA COMPLEMENTAR .............................................................................................................. 21 RESUMO DO TÓPICO 1 ....................................................................................................................... 23 AUTOATIVIDADE ................................................................................................................................ 24 TÓPICO 2 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES ......................................................................................................................... 25 1 INTRODUÇÃO .................................................................................................................................... 25 2 SISTEMAS FORTEMENTE ACOPLADOS .................................................................................... 25 2.1 SISTEMAS ASSIMÉTRICOS .......................................................................................................... 26 2.2 SISTEMAS SIMÉTRICOS ............................................................................................................... 27 2.3 SISTEMAS COM MULTIPROCESSAMENTO ........................................................................... 28 2.3.1 Processamento vetorial ......................................................................................................... 28 2.3.2 Processamento paralelo ........................................................................................................29 2.4 QUANTO À ORGANIZAÇÃO FUNCIONAL ........................................................................... 29 3 SISTEMAS FRACAMENTE ACOPLADOS ................................................................................... 31 3.1. SISTEMAS OPERACIONAIS DE REDE ..................................................................................... 32 3.2 SISTEMAS OPERACIONAIS DISTRIBUÍDOS ........................................................................... 33 Sumário VIII 3.3 QUANTO À ORGANIZAÇÃO FUNCIONAL ........................................................................... 34 LEITURA COMPLEMENTAR .............................................................................................................. 35 RESUMO DO TÓPICO 2 ....................................................................................................................... 37 AUTOATIVIDADE ................................................................................................................................ 38 TÓPICO 3 – FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA .......................................... 39 1 INTRODUÇÃO .................................................................................................................................... 39 2 A MEMÓRIA DO COMPUTADOR ................................................................................................. 39 3 ALOCAÇÃO DE MEMÓRIA ............................................................................................................ 41 3.1 ALOCAÇÃO CONTÍGUA DE ÚNICO USUÁRIO (ALOCAÇÃO SIMPLES) ....................... 41 3.2 ALOCAÇÃO PARTICIONADA FIXA (ALOCAÇÃO ESTÁTICA) ......................................... 42 3.3 ALOCAÇÃO PARTICIONADA DINÂMICA ............................................................................ 44 4 TÉCNICAS COMPLEMENTARES ................................................................................................... 46 4.1 SWAPPING ...................................................................................................................................... 46 4.2 MEMÓRIA VIRTUAL .................................................................................................................... 46 4.2.1 Paginação ................................................................................................................................ 47 4.3 SEGMENTAÇÃO ............................................................................................................................ 47 LEITURA COMPLEMENTAR .............................................................................................................. 48 RESUMO DO TÓPICO 3 ....................................................................................................................... 50 AUTOATIVIDADE ................................................................................................................................ 51 UNIDADE 2 – GERÊNCIA DE PROCESSOS E DISPOSITIVOS ................................................ 53 TÓPICO 1 – ESTRUTURA E FUNCIONAMENTO DOS PROCESSOS ..................................... 55 1 INTRODUÇÃO .................................................................................................................................... 55 2 CONCEITO DE PROCESSO ............................................................................................................. 56 2.1 BLOCO DE CONTROLE DO PROCESSO (PCB) ....................................................................... 57 2.2 ESTADOS DO PROCESSO ............................................................................................................ 57 2.3 MUDANÇA DE ESTADOS DO PROCESSO .............................................................................. 59 3 SUBPROCESSO ................................................................................................................................... 60 4 THREAD ................................................................................................................................................ 61 5 INTERRUPÇÕES E EXCEÇÕES ....................................................................................................... 62 LEITURA COMPLEMENTAR .............................................................................................................. 64 RESUMO DO TÓPICO 1 ....................................................................................................................... 67 AUTOATIVIDADE ................................................................................................................................ 68 TÓPICO 2 – GERENCIAMENTO DO PROCESSADOR ................................................................ 69 1 INTRODUÇÃO .................................................................................................................................... 69 2 CONCEITOS BÁSICOS ..................................................................................................................... 69 2.1 CRITÉRIOS DE ESCALONAMENTO ......................................................................................... 70 2.2 OBJETIVOS DO ESCALONAMENTO ........................................................................................ 71 3 TIPOS DE ESCALONAMENTO ....................................................................................................... 71 3.1 TIPOS DE ESCALONAMENTO NÃO PREEMPTIVOS ........................................................... 72 3.1.1. First-in-first-out (FIFO) ........................................................................................................ 72 3.1.2 Escalonamento job mais curto primeiro ............................................................................. 73 3.1.3 Escalonamento cooperativo ................................................................................................. 73 3.2 ESCALONAMENTO PREEMPTIVO ........................................................................................... 74 3.2.1 Escalonamento circular ......................................................................................................... 75 3.2.2 Escalonamento por prioridades ........................................................................................... 75 3.2.2.1 Escalonamento circular com prioridades ........................................................................ 76 3.2.3 Múltiplas filas ......................................................................................................................... 76 3.2.3.1 Múltiplas filas com realimentação ................................................................................... 77 IX 4 ESCALONAMENTO DE SISTEMAS EM TEMPO REAL ........................................................... 78 4.1 TEMPO REAL CRÍTICO – RÍGIDOS ........................................................................................... 79 4.2 TEMPO REAL NÃO CRÍTICO – MODERADOS ....................................................................... 79 5 GERENCIAMENTO DE PROCESSOS EM SISTEMAS DISTRIBUÍDOS E DE REDE ........ 79 LEITURA COMPLEMENTAR .............................................................................................................. 81 RESUMO DO TÓPICO 2 ....................................................................................................................... 84 AUTOATIVIDADE ................................................................................................................................ 85 TÓPICO 3 – GERENCIAMENTO DE DISPOSITIVOS .................................................................. 87 1 INTRODUÇÃO .................................................................................................................................... 87 2 O SUBSISTEMA DE E/S – FUNCIONAMENTO ..........................................................................87 3 DEVICE DRIVER (DRIVER) ............................................................................................................. 89 4 CONTROLADORES ........................................................................................................................... 90 5 LÓGICO E FÍSICO .............................................................................................................................. 91 LEITURA COMPLEMENTAR .............................................................................................................. 92 RESUMO DO TÓPICO 3 ....................................................................................................................... 96 AUTOATIVIDADE ................................................................................................................................ 97 UNIDADE 3 – SISTEMAS DISTRIBUÍDOS .................................................................................... 99 TÓPICO 1 – SISTEMAS DISTRIBUÍDOS ........................................................................................ 101 1 INTRODUÇÃO .................................................................................................................................... 101 2 SISTEMAS DISTRIBUÍDOS ............................................................................................................. 101 3 CARACTERÍSTICAS FUNDAMENTAIS DOS SISTEMAS DISTRIBUÍDOS ....................... 104 3.1 COMPARTILHAMENTO DE RECURSOS ................................................................................. 104 3.2 CRESCIMENTO INCREMENTAL ............................................................................................... 105 3.3 CONCORRÊNCIA .......................................................................................................................... 106 3.4 ESCALABILIDADE ........................................................................................................................ 107 3.5 TOLERÂNCIA A FALHAS ............................................................................................................ 108 3.6 TRANSPARÊNCIA ......................................................................................................................... 110 3.7 HETEROGENEIDADE ................................................................................................................... 111 3.8 ABERTURA ...................................................................................................................................... 112 3.9 SEGURANÇA .................................................................................................................................. 114 RESUMO DO TÓPICO 1 ....................................................................................................................... 117 AUTOATIVIDADE ................................................................................................................................ 118 TÓPICO 2 – ARQUITETURA DE SISTEMAS DISTRIBUÍDOS .................................................. 119 1 INTRODUÇÃO .................................................................................................................................... 119 2 CAMADAS E MÓDULOS ................................................................................................................. 120 3 MODELOS DE ARQUITETURA ...................................................................................................... 122 3.1 MODELO CLIENT-SERVER ......................................................................................................... 123 3.2 SERVIÇOS ATENDIDOS POR MÚLTIPLOS SERVIDORES .................................................... 126 3.3 SERVIDOR PROXY E CACHE ...................................................................................................... 127 3.4 PROCESSOS PARES ....................................................................................................................... 129 4 VARIAÇÕES DO MODELO CLIENTE-SERVIDOR .................................................................... 131 4.1 CÓDIGO MÓVEL ........................................................................................................................... 131 4.2 AGENTES MÓVEIS ........................................................................................................................ 133 4.3 COMPUTADORES EM REDE ...................................................................................................... 134 4.4 CLIENTES FRACOS ....................................................................................................................... 136 4.5 DISPOSITIVOS MÓVEIS ............................................................................................................... 138 4.6 INTEROPERABILIDADE ESPONTÂNEA ................................................................................. 139 4.7 COMPUTAÇÃO UBÍQUA OU PERVASIVA .............................................................................. 139 X RESUMO DO TÓPICO 2 ....................................................................................................................... 142 AUTOATIVIDADE ................................................................................................................................ 143 TÓPICO 3 – COMUNICAÇÃO EM UM AMBIENTE DE COMPUTAÇÃO DISTRIBUÍDA .. 145 1 INTRODUÇÃO .................................................................................................................................... 145 2 PROTOCOLOS .................................................................................................................................... 145 2.1 CARACTERÍSTICAS DA COMUNICAÇÃO ENTRE PROCESSOS ....................................... 146 2.2 SOCKETS .......................................................................................................................................... 148 2.3 COMUNICAÇÃO UDP ................................................................................................................. 150 2.4 COMUNICAÇÃO TCP .................................................................................................................. 152 3 COMUNICAÇÃO CLIENTE-SERVIDOR ...................................................................................... 156 3.1 O PARADIGMA CLIENTE/SERVIDOR ...................................................................................... 156 3.2 SERVIDORES ................................................................................................................................... 157 3.3 ARQUITETURA DOS SISTEMAS C/S ......................................................................................... 158 3.4 SGBD DISTRIBUÍDO ...................................................................................................................... 159 4 OBJETOS DISTRIBUÍDOS E RPC ................................................................................................... 159 4.1 INTRODUÇÃO ............................................................................................................................... 160 4.2 OBJETOS DISTRIBUÍDOS ............................................................................................................. 160 4.3 CHAMADAS REMOTAS DE PROCEDIMENTOS .................................................................... 162 4.4 ARQUITETURA OSF RPC ............................................................................................................. 163 5 FALHAS DE COMUNICAÇÃO ........................................................................................................ 164 5.1 FALHAS POR OMISSÃO .............................................................................................................. 164 5.1.1Falhas por omissão de processo .......................................................................................... 165 5.1.2 Falhas por omissão na comunicação ................................................................................... 165 5.2 FALHAS ARBITRÁRIAS ............................................................................................................... 166 5.3 FALHAS DE SINCRONIZAÇÃO ................................................................................................. 167 5.4 MASCARAMENTO DE FALHAS ................................................................................................ 168 5.5 CONFIABILIDADE DA COMUNICAÇÃO 1 PARA 1 ............................................................. 168 LEITURA COMPLEMENTAR .............................................................................................................. 169 RESUMO DO TÓPICO 3 ....................................................................................................................... 173 AUTOATIVIDADE ................................................................................................................................ 174 REFERÊNCIAS ........................................................................................................................................ 175 1 UNIDADE 1 INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS OBJETIVOS DE APRENDIZAGEM PLANO DE ESTUDOS A partir do estudo desta unidade, o(a) acadêmico(a) estará apto(a) a: • conhecer os principais conceitos de sistemas operacionais; • entender os principais conceitos e fundamentos de sistemas operacionais; • entender o processo de gerência de memória; • conhecer o mecanismo dos processos; • entender o funcionamento dos processos e suas formas de atuação. Esta unidade está dividida em três tópicos, sendo que, ao final de cada um deles, você encontrará atividades que lhe auxiliarão na apropriação do conhecimento. TÓPICO 1 – FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS TÓPICO 2 – INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES TÓPICO 3 – FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA 2 3 TÓPICO 1 UNIDADE 1 FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 1 INTRODUÇÃO Vamos falar de sistemas operacionais, para isso é importante entender como é o seu funcionamento. Vale lembrar que é um programa como qualquer outro, exceto pelo fato de ser um programa que executa rotinas no núcleo do processador. Essas rotinas são, contudo, responsáveis pelo interfaceamento entre o hardware da máquina e as demais aplicações do usuário. Para muitos, quando se fala em sistema operacional, imagina-se algo intangível e muito complicado, entretanto, um sistema operacional não é nada disso. É graças ao sistema operacional que a interação do usuário com o computador é transparente, rápida e muito mais segura. Todo o gerenciamento dos recursos como processador, memória e dispositivos de entrada e saída fica a cargo do sistema operacional. Dispositivos também conhecidos por devices podem ser de entrada ou saída (I/O), e servem para a comunicação do mundo exterior com o computador. São exemplos de dispositivos: HD, DVD, monitor, teclado e mouse (figura a seguir). UNI UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 4 FIGURA 1 – EXEMPLOS DE DISPOSITIVOS CONECTADOS A UM COMPUTADOR FONTE: Disponível em: <http://2.bp.blogspot.com/-0U7BhViJd3c/ UQkV3fvjLtI/AAAAAAAAACw/yK0jXZWCF-k/s1600/perifericos.jpg>. Acesso em: 10 fev. 2013. Neste capítulo veremos os conceitos básicos do sistema operacional, bem como sua evolução histórica. Programas computacionais podem ser grosseiramente divididos em dois tipos: • programas do sistema, que manipulam a operação do computador. Podemos citar o desfragmentador de discos, o gerenciador de tarefas, entre outros; • programas aplicativos, que resolvem problemas para o usuário, como Excel, Word e Corel Draw. IMPORTANT E 2 O QUE É UM SISTEMA OPERACIONAL? Pode-se dividir a estrutura de um sistema computacional em quatro elementos: hardware, o sistema operacional, os programas e os usuários. • O hardware compreende toda a parte física, que engloba a UCP (Unidade Central de Processamento), em inglês conhecida por CPU (Central Process Unit), a memória e os dispositivos de entrada e saída (I/O devices). • Os programas, também conhecidos como aplicativos, que fornecem funcionalidades específicas como planilhas, editores de texto, editores gráficos e sistemas administrativos. TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 5 • Os usuários são as pessoas que interagem com esses programas, utilizando alguns recursos de hardware. Podemos ter os usuários finais e os usuários desenvolvedores de sistemas. • Finalmente, tem-se o sistema operacional, que é responsável por gerenciar todos os recursos de hardware, tornando o uso da máquina transparente aos usuários. A figura a seguir mostra esses elementos e a relação entre eles. FIGURA 2– ELEMENTOS QUE COMPÕEM UM SISTEMA COMPUTACIONAL E SUA RELAÇÃO FONTE: Os autores CPU é a unidade central de processamento, considerado o processador da máquina. É errado quando as pessoas se referem ao gabinete como CPU, pois o gabinete engloba uma série de dispositivos (placa-mãe, unidades de disco etc.). Portanto, fique atento e nunca chame seu gabinete de CPU, trate-o apenas como gabinete. Se estiver falando de recursos de desempenho de processamento, aí sim utilize o termo CPU. 2.1 FUNÇÕES BÁSICAS DO SISTEMA OPERACIONAL São várias as funções do sistema operacional, podemos citar: UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 6 • permitir que os programas armazenem e obtenham informação; • isolar os programas dos detalhes específicos de hardware; • controlar o fluxo de dados entre os componentes de um computador; • permitir que os programas sejam executados sem a interferência de outros programas; • permitir que os programas independentes cooperem periodicamente e compartilhem informações; • responder aos erros ou a solicitações dos usuários; • impor um escalonamento entre programas que solicitam recursos; • facilitar o acesso aos recursos do sistema. FONTE: Adaptado de: <http://www.paginadox.xpg.com.br/downloads/CEFET/so/Aula1.pdf >. Acesso em: 22 mar. 2013. Contudo, sintetizamos todas as funções em duas: facilidade de acesso aos recursos do sistema e compartilhamento de recursos de forma organizada e protegida, vistos a seguir. 2.1.1 Facilidade de acesso aos recursos do sistema A parte física da máquina (hardware) é composta por inúmeros componentes como discos rígidos, unidades de fita, impressoras, monitores de vídeo, teclados, mouses etc., todos interligados e funcionando de forma transparente. É justamente esse funcionar de “forma transparente”, o papel do sistema operacional, que deve garantir que todos esses dispositivos sejam acessados e controlados conforme as regras estabelecidas. Essa estrutura pode ser observada na figura a seguir. FIGURA 3 – ESTRUTURA DO SISTEMA OPERACIONAL FONTE: Os autores TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 7 A gravação de um dado no disco, por exemplo, envolve uma série de processos, são comandos necessários para a localização da trilha e do setor, transferência dos dados da memória para o local correto, a validação dos dados, o controle da integridade e por fim a conclusão da gravação. Para o usuário o arquivo foi salvo, mas internamente o ciclo ocorrido foi bem amplo. 2.1.2 Compartilhamento de recursos de forma organizada e protegida O compartilhamento de recursos, principalmente em sistemas multiusuários é um papel muito importante que o sistema operacional deve desempenhar. Entretanto, os sistemas monousuários também devem ter os recursos gerenciados, pois é só através disso que um usuário consegue utilizar todos os dispositivos disponíveis. Por exemplo,uma impressora não deve ser acessada por dois usuários ao mesmo tempo, enquanto um imprime outro deve aguardar, todavia, uma unidade de disco pode ser acessada simultaneamente por diversos usuários, e cabe ao sistema operacional gerenciar a leitura e escrita dos dados no disco. Isso pode parecer para o usuário uma tarefa simples, mas há uma série de processos e rotinas envolvidas para que esse procedimento ocorra com sucesso. 2.1.3 Controle e gerenciamento dos recursos de rede Os sistemas operacionais de rede devem permitir também o compartilhamento de recursos entre os usuários e o controle de acesso, permitindo que todos interajam de forma cooperativa. Todos os recursos devem ser monitorados, sendo alocados quando um usuário solicita e tem permissão por exemplo. 3 HISTÓRICO A evolução dos sistemas operacionais ocorreu de forma gradativa e está diretamente relacionada à evolução do hardware. A partir da Segunda Guerra Mundial, a evolução do hardware deu um salto com grandes avanços. Podemos dividir a história dos sistemas operacionais em gerações ou fases. Antes de 1940, as máquinas eram mecânicas, sendo sua programação feita através de engrenagens. Só a partir da Segunda Guerra Mundial que se desencadeou o processo de criação de máquinas digitais, sendo necessário elaborar formas de gerenciá-las. UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 8 Este item de nossa apostila mostra a evolução dos sistemas operacionais dentro do contexto histórico, da primeira à quinta fase. Alguns autores também trazem a fase zero, considerando-a como uma fase antes da era digital. Alguns autores consideram a geração anterior aos computadores digitais como geração zero. NOTA 3.1 PRIMEIRA GERAÇÃO Válvulas e Plugs É a fase compreendida entre os anos de 1940 até 1955. Com o início da Segunda Guerra Mundial, também se deu início a era dos computadores digitais, sendo o ENIAC (Electronic Numerial Integrator and Computer) o primeiro computador digital criado para realizar cálculos balísticos. O ENIAC pesava 30 toneladas, media 5,50 metros de altura e 25 metros de comprimento, ocupando uma área de 180m². Contava com 70 mil resistores e 17.468 válvulas a vácuo. Demorou três anos para ser construído. Realizava uma soma em 0.2 milissegundos, uma multiplicação de dois números de 10 dígitos em 2.8 milissegundos, e uma divisão em 24 milissegundos. A temperatura do local de trabalho chegava a 50ºC. Nunca funcionou por 24 horas ininterruptas (válvulas queimavam e precisavam ser trocadas), e normalmente executava- se duas vezes um mesmo problema para comprovar o correto funcionamento da máquina. Custou US$ 500.000,00 doados pelo exército americano. Na figura a seguir pode ser observada uma válvula usada nos primeiros computadores. NOTA TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 9 FIGURA 4 – VÁLVULA USADA NOS PRIMEIROS COMPUTADORES FONTE: Disponível em: <http://upload.wikimedia.org/wikipedia/ commons/8/89/VacuumTube1.jpg>. Acesso em: 12 fev. 2013. Outros computadores como o EDVAC (Electronical Discrete Variable Automatic Computer) e o IAS (Princeton Institute for Advanced Studies) também pertencem a essa geração. FONTE: Adaptado de: <http://www.angelfire.com/co/eltonsanders/socap4.html>. Acesso em: 22 mar. 2013. Contudo, máquinas como essas exigiam um alto conhecimento no hardware, pois sua programação era realizada através de fios em grandes painéis, tudo através da linguagem de máquina (a resposta era dada em painéis através de lâmpadas), a figura a seguir mostra o painel do ENIAC, mostrando esse processo de programação. UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 10 FIGURA 5 – PAINEL DE PROGRAMAÇÃO DO ENIAC FONTE: Disponível em: <http://obviousmag.org/archives/2012/03/os_saltos_altos_da_ computacao_1.html>. Acesso em: 20 mar. 2013. No início da década de 50, o processo de ligação através de fios nos painéis evoluiu para a programação através de cartões perfurados, tornando a programação mais fácil, e possível de ser repetida com a releitura dos cartões. Como cada computador era único tanto em termos de estrutura como função, não havia necessidade de um sistema operacional, pois a programação era específica de cada máquina. O advento dos cartões perfurados tornou a programação mais fácil e possível de ser repetida com a releitura dos cartões previamente perfurados. Como cada computador era único, tanto em termos de estrutura como de função, não havia necessidade de um sistema operacional, pois a programação era específica de cada máquina e era feita exclusivamente para cada computador. O filme Piratas do Vale do Silício (Pirates of Silicon Valley, 1999), com direção de Martyn Burke, conta a história da Microsoft e da Apple. É possível ver um pouco da origem do MS-DOS e do Windows, além de haver algumas cenas com uso dos cartões perfurados. DICAS TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 11 3.2 SEGUNDA GERAÇÃO Transistores e processamento em Batch Compreendida entre os anos de 1956 e 1965, essa geração é marcada pelo surgimento do transistor e das memórias magnéticas, permitindo o aumento da velocidade das máquinas, a diminuição do tamanho dos equipamentos e a confiabilidade no processamento, essa é a geração dos computadores de grande porte, ou mainframes. A figura a seguir mostra os diferentes tipos de transístores usados atualmente. FIGURA 6 – DIFERENTES TIPOS DE TRANSISTORES USADOS ATUALMENTE FONTE: Disponível em: <http://www.mikroe.com/old/books/keu/04/4-01.gif. Acesso em: 1 fev. 2013. Nessa geração também há o surgimento das primeiras linguagens de comunicação, como Assembly e Fortran, o que permitiu e facilitou a escrita de programas, evitando que fossem feitos diretamente no hardware. Dessa forma surgiu o conceito de Job, onde o programa era escrito em papel, posteriormente os cartões eram perfurados com a codificação do programa, lidos e processados, tendo o resultado em um relatório impresso. Os equipamentos possuíam um alto custo, desta forma, um processo Job tornava-se caro, a solução foi implementar o processamento em lote (batch), onde vários Jobs eram lidos a partir de cartões perfurados e gravados em uma fita magnética (utilizando um computador mais barato – 1401). Posteriormente, a fita era lida, processada e o resultado gravado em uma fita (utilizando um computador mais potente e caro – 7094). Finalmente a fita era lida e impressa novamente usando o computador mais barato (1401). A figura a seguir mostra esse processo. UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 12 A IBM fez o anúncio do IBM 1401 em 1959. Era um computador totalmente transistorizado, com capacidade de memória inicial de 4.096 bytes, podendo ser expandida até 16 Kb (raras eram as versões com 32 Kb de memória RAM). O IBM 7094 foi criado em 1962 e tinha Clock de 500 KHz e 32 Kb de memória operando a 36 bits. UNI FIGURA 7 – PROCESSO DE LEITURA E IMPRESSÃO FONTE: TANENBAUM, Andrew S. Sistemas operacionais modernos. São Paulo: Prentice Hall-Br, 2003. 3.3 TERCEIRA GERAÇÃO Circuitos integrados e multiprogramação A terceira geração ocorreu entre os anos de 1966 e 1980, e destaca-se pelo uso dos circuitos integrados e a capacidade de multiprogramação (rodar vários programas em fatias de tempo). Na figura a seguir podemos observar diversos tipos de circuitos integrados. No início da década de 60, havia duas linhas de máquinas totalmente incompatíveis, uma voltada para o mercado comercial (1401) com grande poder de processamento de caracteres, e outra com foco no meio científico (7094), com grande poder de processamento matemático. Portanto, escrever sistemas operacionais para esse tipo de estrutura era extremamente caro, pois para cada linha deveriam ser escritos sistemas operacionais específicos. TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 13 FIGURA 8 – TIPOS DE CIRCUITOS INTEGRADOS FONTE: Disponívelem: <http://img.alibaba.com/photo/331648991/IC_integrated_circuit_ SN74LVC1G38DCKR_TI.jpg>. Acesso em: 20 fev. 2013. Para unificar as funções do processamento, permitindo dessa forma que apenas um único tipo de sistema operacional fosse escrito, a IBM lançou a família 360, sendo suas sucessoras chamadas de 370, 4300, 3080 e 3090. A ideia de se ter famílias de máquinas sendo todas compatíveis, em teoria facilitaria o desenvolvimento de um sistema operacional, entretanto, isso não ocorreu, pois dada a complexidade de funções, vários bugs existiam, e a cada atualização, problemas eram corrigidos, mas ao mesmo tempo novos eram criados, tornando esse processo uma bola de neve. Com a evolução do hardware, foi possível executar um programa, enquanto outro aguarda uma requisição de entrada/saída (I/O), para isso foi necessário criar partições de memória onde poderiam estar alocados vários Jobs juntamente com o sistema operacional (a figura a seguir mostra essa divisão). Bug é um erro no funcionamento de um programa, também conhecido como falha e que pode causar erros no resultado final esperado pelo processamento. Esse termo originalmente foi criado por Thomas Edison, quando um inseto causou problemas de leitura em seu fonógrafo em 1878. Porém a invenção do termo frequentemente é atribuída erroneamente a Grace Hopper, que em 1945 reportou um mau funcionamento no computador Mark II, que era causado por um inseto preso nos contatos de um relê. UNI UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 14 FIGURA 9 – PARTICIONAMENTO DA MEMÓRIA FONTE: Os autores Outros grandes avanços dessa geração foram, a substituição das unidades de fita por discos, o que facilitou a submissão dos Jobs de forma aleatória, essa técnica foi chamada de spooling; terminais de vídeo e teclado foram inseridos criando a interação on-line com o usuário e finalmente os processos foram divididos em tempos, oferecendo tempos de resposta razoáveis, a essa técnica deu-se o nome de time-sharing. 3.4 QUARTA GERAÇÃO Computadores pessoais e estações de trabalho (redes) Ocorrida entre os anos de 1981 e 1990, é marcada pela Integração em Larga Escala (Large Scale Integration – LSI) e Integração em Muito Larga Escala (Very Large Scale Integration – VLSI), o que acarretou na miniaturização do hardware e consequentemente seu barateamento. Como exemplo temos os primeiros computadores pessoais de 16 bits. A figura a seguir mostra uma placa utilizando VLSI. TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 15 FIGURA 10 – MINIATURIZAÇÃO UTILIZANDO VLSI FONTE: Disponível em: <http://www.lambdaess.com/images/vlsi.jpg>. Acesso em: 15 fev. 2013. Nessa geração também surge o MS-DOS, destacando o uso dos computadores pessoais. O conceito de multitarefa (executar diversas tarefas simultaneamente) também é implementado. O multiprocessamento também permitiu a execução de mais de um programa simultaneamente dando origem a técnicas de processamento vetorial e paralelismo. As redes distribuídas começam a ser difundidas e vários protocolos de rede são criados, entre eles o TCP/IP, de domínio público. Surgem com isso as WANs, MANs e as LANs. Com o desenvolvimento da rede, é na quarta geração que surgem os sistemas operacionais de rede. IMPORTANT E LAN – Local Area Network (abrangência no espaço físico de um ou mais prédios). MAN – Metropolitan Area Network (abrangência no espaço físico de uma cidade). WAN – Wide Area Network (abrangência no espaço de vários municípios ou países). Rede remota. DICAS UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 16 3.5 QUINTA GERAÇÃO Processamento distribuído, interfaces gráficas, linguagem natural Marcada pela evolução da VLSI para a ULS (Ultra Large Scale Integration – Escala Ultra Larga de Integração), essa fase ocorre de 1991 até os dias atuais, permitiu uma grande evolução dos processadores, além de um ganho de velocidade muito grande. O avanço das telecomunicações, a evolução do protocolo TCP/IP e o forte desenvolvimento da internet servem de fomento ao desenvolvimento dos sistemas distribuídos, substituindo a arquitetura/cliente servidor. A mobilidade dos sistemas também merece destaque. Sistemas operacionais aptos a rodarem em aparelhos celulares, palmtops e handhelds agregam infinitas possibilidades a esses aparelhos. A quinta geração marca também o firmamento dos sistemas operacionais de interface gráfica, e os sistemas ditos open source (código aberto), dentre eles podemos destacar o FreeBSD, Linux e TROPIX. A próxima geração não tarda a chegar, caminhamos para sistemas baseados em linguagem natural dotados de inteligência artificial, e extremamente móveis, para a tecnologia não há fronteiras. Caro acadêmico! Para aprofundar seus conhecimentos sobre a história dos sistemas operacionais, leia o primeiro capítulo do livro: Introdução aos Sistemas Operacionais, de FLYNN, Ida M.; MCHOES, Ann Mclver. Trad.: Marcelo Alves Mendes. São Paulo: Pioneira Thomson Learning, 2002. DICAS 4 TIPOS DE SISTEMAS OPERACIONAIS A evolução dos sistemas operacionais discutida anteriormente permitiu a implementação de uma grande diversidade de sistemas operacionais, que serão abordados neste tópico (vamos seguir a divisão proposta por Tanenbaum (2003), Sistemas operacionais modernos). Dividimos basicamente nossa estrutura em dois tipos de sistema, os monotarefas e os multitarefas (a figura a seguir mostra o comparativo entre os sistemas). Contudo, essa visão pode ser ampliada, e vários subtipos de sistemas aparecem, é o que vamos estudar a seguir. TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 17 Os sistemas podem ser divididos conforme seu porte e sua função (observe a seguir essa divisão). DICAS FIGURA 11 – COMPARATIVO ENTRE SISTEMA MONOTAREFA (ESQUERDA) E MULTITAREFA FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 4° ed., São Paulo: Ed. LTC, 2007. 4.1 SISTEMAS OPERACIONAIS DE COMPUTADORES DE GRANDE PORTE Sistemas especiais projetados para computadores de grande porte, utilizados em grandes corporações, são especializados em processamento de vários processos simultaneamente, gerando uma grande necessidade de I/O. Podemos dividi-los em: lote, transacional e tempo compartilhado, explicados na sequência. UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 18 4.1.1 Sistemas operacionais de lote (batch) Integra o conjunto dos primeiros sistemas operacionais multiprogramáveis desenvolvidos. Seu funcionamento não necessita da interação do usuário, sendo geralmente carregadas a partir de uma memória secundária. Processamentos de grandes volumes de dados como relatórios, indexação de arquivos, backups, ou até mesmo um grande volume de cálculos utilizam sistemas batch. 4.1.2 Sistemas operacionais de tempo compartilhado Também conhecidos como tempo compartilhado (time-sharing), permite a execução dos programas em pequenas fatias de tempo denominadas time-slice, sendo que um programa pode ter diversas fatias, caso não seja possível executá-lo por inteiro, ele retorna ao processador mais tarde para continuar sua execução. Sistemas desse tipo permitem que se tenham vários usuários simultaneamente conectados através de terminais utilizando uma máquina com processador central, a maioria dos sistemas comerciais hoje em dia utilizam essa tecnologia. 4.1.3 Sistemas operacionais transacionais Sistemas desse tipo possibilitam várias requisições simultâneas de usuário, como consultas a passagens aéreas ou reservas de uma cadeia de hotéis. São requisições pequenas, mas que possuem um alto volume e precisam ser gerenciadas como um todo. 4.2 SISTEMAS OPERACIONAIS DE SERVIDORES Os servidores também são conhecidos como computadores pessoais de muito grande porte, sistemas desse tipo permitem que vários usuários compartilhem recursos de hardware e software. As grandes empresas utilizam sistemas de servidores para compartilhamento de impressoras,arquivos, banco de dados, aplicações, ou até mesmo serviços web. O Windows 2000 é um claro exemplo desse tipo de sistema operacional. TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 19 4.3 SISTEMAS OPERACIONAIS DE MULTIPROCESSADORES São sistemas especiais preparados para gerenciar hardware composto por diversas CPUs, tirando o máximo de proveito do poder de processamento equilibrando compartilhamento e gerência dos recursos. Em suma, são sistemas de servidores com variações para melhora de comunicação e conectividade. 4.4 SISTEMAS OPERACIONAIS DE COMPUTADORES PESSOAIS Funcionalidade, facilidade e interface amigável são os pressupostos dos sistemas operacionais para micros pessoais, todas as pessoas que usam um computador em casa, possuem esse tipo de sistema operacional instalado, como exemplo podemos citar: Windows 98, Windows XP, Linux, MacOS etc. 4.5 SISTEMAS OPERACIONAIS DE TEMPO REAL Também conhecidos como sistemas real-time, são usados em situações onde o tempo é fundamental para o funcionamento do sistema. São estabelecidos limites rígidos de tolerância para a resposta aos processamentos realizados. Nesse tipo de sistema, não existe o conceito de fatia de tempo, sendo que o programa utiliza o processador o tempo necessário para efetuar a tarefa, são exemplos de aplicação: refinarias de petróleo, controle do trafego aéreo, usinas nucleares, equipamentos médicos, linhas de produção etc. Dentro dessa categoria podemos ter ainda dois tipos de sistemas: • Tempo Real Crítico: O tempo é crucial. • Tempo Real Não Crítico: O descumprimento ocasional de um prazo é aceitável (áudio digital ou multimídia). O robô Curiosity enviado a Marte usa sistemas em tempo real (figura a seguir). UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 20 FIGURA 12 – ROBÔ EM MARTE, USA SISTEMAS EM TEMPO REAL FONTE: Wikipédia. Disponível em: <http://pt.wikipedia.org/wiki/2013>. Acesso em: 22 mar. 2013. 4.6 SISTEMAS OPERACIONAIS EMBARCADOS Este tipo de sistema é usado em computadores que geralmente controlam dispositivos (computadores que não são considerados como tal), como um aparelho de televisão, um forno de micro-ondas, telefones móveis etc. Um exemplo de sistema operacional embarcado, e que já traz novas tendências tecnológicas como toque na tela e controle de dispositivo móvel, é o iPhone OS, que controla o iPhone da Apple, além do PamlOS e Windows CE., para dispositivos móveis de propósito geral. UNI Na maioria das vezes, sistemas desse tipo apresentam restrições de memória, processamento, consumo de energia, contudo desempenhando de forma perfeita a função para a qual foram escritos. 4.7 SISTEMAS OPERACIONAIS DE CARTÕES INTELIGENTES São sistemas operacionais muito pequenos, que rodam em dispositivos do tamanho de cartões de crédito. A maioria roda poucas funções, sendo extremamente limitada. Entretanto, outros possuem múltiplas funções. Como exemplo podemos citar os cartões de banco com chips ou as novas tags RFId, que são etiquetas inteligentes com transmissão via ondas de rádio. TÓPICO 1 | FUNDAMENTOS E CONCEITOS BÁSICOS DE SISTEMAS OPERACIONAIS 21 Identificação por radiofrequência ou RFID (Radio-Frequency IDentification) método de identificação automática através de sinais de rádio, onde os dados podem ser recuperados e armazenados de forma remota através de dispositivos denominados etiquetas RFID. É uma tendência do mercado, em breve os produtos deixarão de ter códigos de barra, e passarão a ter etiquetas inteligentes para sua identificação. DICAS LEITURA COMPLEMENTAR A HISTÓRIA DO WINDOWS A Microsoft foi fundada em 1975 por Bill Gates e Paul Allen. Em 1980, Steve Ballmer se junta à companhia. O primeiro produto desenvolvido pela empresa foi uma versão do interpretador BASIC, para o computador Altair 8800 da MITS. Em 1977, foi lançado o Microsoft FORTRAN, para computadores baseados em CP/M. Em 1980, a IBM planeja lançar seu computador pessoal com o sistema CP/M, mas as negociações com a Digital Research falham e a IBM procura a Microsoft para desenvolver seu sistema operacional. Sem ter um sistema para entregar, a Microsoft acerta um contrato não exclusivo de licenciamento com a IBM e procura a Seattle Computers para comprar seu sistema Q-DOS. Em 1982 a Microsoft começa a desenvolver aplicações para o Macintosh da Apple, lança o Microsoft COBOL e a planilha eletrônica Multiplan para MS-DOS. No ano seguinte anuncia o Microsoft Word e o Microsoft Windows. Em 1985 a Microsoft e a IBM assinam acordo para desenvolvimento conjunto de um futuro sistema operacional, no mesmo ano lança o Microsoft Windows 1.0 por 100 dólares. Em 1987 a Microsoft compra o programa de apresentações PowerPoint e lança a planilha eletrônica Excel. Em 1988 a Apple acusa a Microsoft de plágio sobre o seu Macintosh OS (este já uma cópia, do Xerox Alto) com o Windows 2.0, no ano seguinte formam uma aliança para desenvolver o padrão de fontes TrueType. Em 1990 a Microsoft apresenta o Windows 3.0 para computadores pessoais e o OS/2 desenvolvido com a IBM para estações de trabalho. Nos anos seguintes anuncia em conjunto com outras empresas os padrões Multimidia PC, Advanced Power Management e o Plug and Play. Em 1992 a Microsoft e a IBM encerram o acordo de cooperação e dividem o sistema desenvolvido, a IBM passa a desenvolver o OS/2 4.0 e a Microsoft anuncia o Windows NT 3.0, no mesmo ano lança o Microsoft Access para Windows. UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 22 Em 1995 é lançado o Windows 95, um sistema operacional completo para computadores pessoais que elimina a necessidade do MS-DOS. No mesmo mês lança o Internet Explorer, parte do pacote Windows 95 Plus!, vendido separadamente. No ano seguinte lança o Windows NT 4.0, com o visual do Windows 95 e a segurança do Windows NT. Em 1997 a Microsoft compra a WebTV e investe 150 milhões de dólares na concorrente Apple. No ano seguinte lança o Windows 98 incorporado ao Internet Explorer, iniciando um processo de monopólio movido pelo governo dos Estados Unidos, esse processo terminou em 2001 com a condenação da empresa. Em 2001 lança o Windows XP juntando as linhas de sistemas operacionais Windows 95/98/Me para computadores pessoais, com o Windows NT/2000 para estações de trabalho, introduzindo uma nova interface gráfica. No mesmo ano lança o Xbox, seu primeiro console de videogames que irá competir como Sony Playstation e o Nintendo GameCube. Em 2007 a Microsoft lança o Windows Vista com uma interface gráfica aprimorada. PRINCIPAIS VERSÕES DO WINDOWS Windows 1.0, novembro de 1985. Windows 2.0, novembro de 1987. Windows 2.1/286 e Windows 2.1/386, maio de 1988. Windows 2.11, março de 1989. Windows 3.0, maio de 1990. Windows 3.1, abril de 1992. Windows for Workgroups 3.1, outubro de 1992. Windows for Workgroups 3.11, novembro de 1993. Windows 95, agosto de 1995. Possui várias atualizações: OSR 1, OSR 2, OSR 2.1 e OSR 2.5. Windows 98, junho de 1998. Em maio de 1999 é lançado o Windows 98 SE (second edition). Windows Me, setembro de 2000. Windows NT 3.1, julho de 1993. Windows NT 3.5, setembro de 1994. Windows NT 3.51, maio de 1995. Windows NT 4.0, julho de 1996. Incorporou a interface gráfica do Windows 95. Windows 2000, fevereiro de 2000. Internamente é a versão NT 4.0. Windows XP, outubro de 2001. Versão NT 5.1, recebeu as atualizações SP1 e SP2. Windows Server 2003, abril de 2003. Versão NT 5.2. Windows Vista, janeiro de 2007. Versão NT 6.0. FONTE: InfoEscola. História da Microsoft. Disponível em: <http://www.infoescola.com/ informatica/historia-da-microsoft/13>. Acesso em: 1 mar. 2013. 23 Caro(a) acadêmico(a)! Neste primeiro tópico, você estudou os seguintes aspectos: • O que é um sistema operacional e sua importância para o funcionamento de um sistema computacional. • A importância do sistema operacional na relação entre o hardware e os usuários. • As funções básicas do sistema operacional: facilidade de acesso aosrecursos do sistema, compartilhamento de recursos de forma organizada e protegida, e controle e gerenciamento da rede. • Um histórico da evolução dos sistemas operacionais. • A relação direta entre a evolução do hardware e a evolução do sistema operacional através das gerações. • Na quarta geração, surgiram os sistemas operacionais de rede, impulsionados principalmente pela evolução dos mecanismos de rede e a grande difusão das LANs, MANs e WANS. • Verificou que os sistemas operacionais podem ser monotarefa e multitarefa. • É possível dividir os sistemas operacionais segundo suas funções em tipos: sistemas operacionais de computadores de grande porte, sistemas operacionais de servidores, sistemas operacionais de multiprocessadores, sistemas operacionais de computadores pessoais, sistemas operacionais de tempo real, sistemas operacionais embarcados e sistemas operacionais de cartões inteligentes. • Viu uma breve história do Windows. RESUMO DO TÓPICO 1 24 Caro(a) acadêmico(a)! Resolva as questões a seguir para aprofundar seus conhecimentos e reforçar seu aprendizado. 1 Quais são os elementos que compõem a estrutura de um sistema computacional? 2 Quais são as funções básicas de um sistema operacional? 3 Quais gerações são apontadas na história e qual é o período que compreendem? 4 Em qual geração surgiram os sistemas operacionais de rede? Por quê? 5 Quais são os tipos de sistemas operacionais? 6 Em que ano surgiu a primeira versão do Windows? AUTOATIVIDADE 25 TÓPICO 2 INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES UNIDADE 1 1 INTRODUÇÃO Os sistemas operacionais podem ser classificados como fortemente acoplados e fracamente acoplados em função da quantidade de processadores e dispositivos de entrada e saída que controlam. A evolução do hardware criou os processadores de múltiplos núcleos (Core 2 Duo e Quad Core, i3, i5 e i7 são exemplos) ou máquinas com mais de um processador (máquinas multiprocessadas), que compartilham recursos como memória e dispositivos de I/O. Os sistemas que controlam essas máquinas são considerados fortemente acoplados, ao passo que sistemas independentes conectados por uma rede (um laboratório, por exemplo) são considerados fracamente acoplados. Este tópico aborda ambos os tipos de sistemas, explicando sua aplicação e uso. Atente para os sistemas fracamente acoplados, geralmente sistemas operacionais de rede. 2 SISTEMAS FORTEMENTE ACOPLADOS Sistemas operacionais tradicionais Os sistemas fortemente acoplados (tightly coupled) caracterizam-se pela existência de um único sistema operacional controlando vários processadores e compartilhando apenas uma memória. UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 26 Alguns sistemas fortemente acoplados permitem ampliar sua capacidade de processamento apenas adicionando novos processadores (desde que haja suporte na placa-mãe). Outra vantagem desse tipo de arquitetura é o custo de desenvolvimento, pois processadores com mais de um núcleo são mais baratos que processadores de núcleo único. IMPORTANT E São sistemas aplicados em processamento científico, como exploração de petróleo, controle do clima, desenvolvimento aeroespacial etc., pois qualquer aplicação que use intensivamente a capacidade de processamento pode beneficiar- se com a inclusão de novos processadores ao sistema. Na figura a seguir temos a representação de um sistema fortemente acoplado. FIGURA 13 – SISTEMAS FORTEMENTE ACOPLADOS FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002 A divisão dos sistemas fortemente acoplados pode ser feita conforme a simetria dos processadores, a seguir veremos em detalhes cada uma delas. 2.1 SISTEMAS ASSIMÉTRICOS Sistemas assimétricos, também conhecidos como mestre/escravo (master/ slave), baseiam-se na premissa de que apenas um processador pode executar os serviços do sistema operacional, ou seja, as chamadas de I/O, as SystemCalls, interrupções e demais processos críticos sempre são realizadas pelo processador principal, os demais processadores, quando necessitam realizar esse tipo de operação, devem solicitar ao mestre. TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES 27 Mais adiante você estudará os conceitos de interrupções e System Calls. ESTUDOS FU TUROS A figura a seguir mostra o esquema de um sistema assimétrico. FIGURA 14 – SISTEMAS ASSIMÉTRICOS FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. Essa organização tem algumas desvantagens, a mais crítica é que se o processador mestre falhar, o sistema todo para, outro problema é o grande overhead gerado na situação de vários processadores requisitarem I/O, isso geraria lentidão no sistema em função do grande número de vezes que o processador mestre seria interrompido. NOTA 2.2 SISTEMAS SIMÉTRICOS O processamento simétrico (Simmetric Multiprocessing – SMP) garante que todos os processadores realizem as mesmas funções, exceto o boot e outras pequenas funções que ficam a cargo do processador principal (pois geralmente dependem do início pelo endereçamento zero, proveniente da BIOS). UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 28 Essa forma de organização pode gerar conflitos de acesso à memória que devem ser cuidadosamente gerenciados, entretanto o poder de processamento é aumentado, principalmente com o paralelismo (rodar um mesmo programa ao mesmo tempo em processadores diferentes), e tolerável a falhas, pois se um processador falhar, o sistema continua operante. A figura 15 mostra essa organização. FIGURA 15 – SISTEMAS SIMÉTRICOS FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. 2.3 SISTEMAS COM MULTIPROCESSAMENTO O multiprocessamento divide o programa em fatias que podem ser executadas simultaneamente em diversos processadores. A seguir abordaremos os dois níveis de processamento existentes: vetorial e paralelo. 2.3.1 Processamento vetorial O processamento vetorial permite a manipulação de vetores inteiros, sendo as instruções executadas sobre os vários elementos de um ou mais vetores. As aplicações que rodam nesses computadores devem possuir código vetorizável. Como exemplo de aplicação que utiliza perfeitamente esta arquitetura, podemos citar os modelos numéricos de previsão de tempo e clima (utilizados na Meteorologia). Aplicações desse porte trabalham com matrizes numéricas de grande tamanho e complexidade; ao ser utilizado um processamento vetorial, se ganha muito em processamento. Com um processamento paralelo, reduz-se consideravelmente a quantidade de operações necessárias para simular os movimentos e sistemas meteorológicos. Máquinas vetoriais processam dados em altíssimas velocidades, processando, em segundos, informações que os computadores normais levariam horas. TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES 29 Um processador vetorial possui instruções que agilizam a manipulação de vetores. Como exemplo de uso podemos pegar a seguinte expressão: C[x] = A[x] + B[x], seria executada por apenas uma instrução vetorial, ganhando tempo ao passo que num processador escalar o processo envolveria a busca do valor no vetor A, posteriormente a busca no vetor B, somá-los e finalmente armazenar no vetor C. NOTA 2.3.2 Processamento paralelo No processamento paralelo, uma aplicação pode ser executada simultaneamente por mais de um processador. Contudo, para que isso ocorra, é necessário que se possa dividir a tarefa em partes independentes, sem que gere conflito ou dependência entre as outras partes. Um exemplo de uso de processamento paralelo é o uso em cálculos científicos, onde expressões complexas podem ser quebradas em instruções menores que por sua vez podem ser executadas em níveis vetoriais. Como exemplo de uso de processo paralelo, imaginemos a seguinte expressão:x = (a + b) + (c * b) + (d / a) + (b * i) poderia ser dividida em quatro partes sendo todas executadas simultaneamente: V[1] = (a + b) V[2] = (c * b) V[3] = (d / a) V[4] = (b * i) NOTA 2.4 QUANTO À ORGANIZAÇÃO FUNCIONAL Quanto à organização funcional interna, é necessário que a comunicação dos dispositivos de I/O e o processador ocorram de forma correta. Para isso temos três formas de organização, conforme Machado e Maia (2002): • Barramento comum (common bus ou time-shared bus) – a comunicação entre os processadores e demais controladores é feita através de um barramento comum. Entretanto, como desvantagem, citamos o fato de que apenas um processador pode utilizar o barramento por vez, o que pode causar problemas de performance. UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 30 Outro fator negativo é que, se houver comprometimento do barramento, o sistema falhará por falta de comunicação (figura 16a). • Barramento cruzado (crossbar-switch matrix): Essa estrutura permite a conexão simultânea das unidades funcionais, o único problema é gerenciar os conflitos de acesso à memória simultaneamente por dois processadores (figura 16b). • Memória multiport: Nesse esquema, os processadores podem acessar a memória ao mesmo instante, e os conflitos controlados pelos próprios módulos (figura 16c). FIGURA 16 – (A) BARRAMENTO COMUM, (B) BARRAMENTO CRUZADO E (C) MEMÓRIA MULTIPORT FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES 31 3 SISTEMAS FRACAMENTE ACOPLADOS Sistemas operacionais de rede A característica desses sistemas é possuir dois ou mais sistemas interligados, e cada sistema é controlado pelo seu próprio sistema operacional. É importante destacar que cada sistema possui e gerencia seus próprios recursos como processador memória e dispositivos de I/O. Com as redes de computadores evoluídas juntamente com o hardware, o conceito de sistema fracamente acoplado evoluiu para rede de computadores (hoje é comum termos esse tipo de sistema em nosso dia a dia) (MACHADO; MAIA, 2002). A figura a seguir mostra o mecanismo de sistemas fracamente acoplados. FIGURA 17 – SISTEMA FRACAMENTE ACOPLADO FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. Para melhor entendimento, imaginemos uma rede de computadores onde cada máquina possui seu próprio sistema operacional, mas interconectada pode compartilhar recursos. Na figura a seguir podemos observar os sistemas fracamente acoplados através da visão de uma rede de computadores. Usa-se o desenho de uma nuvem para representar uma rede de computadores. DICAS UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 32 FIGURA 18 – REDE DE COMPUTADORES (SISTEMAS FRACAMENTE ACOPLADO) FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. Neste tópico abordaremos as duas subdivisões dos sistemas fracamente acoplados: sistemas operacionais de rede e sistemas operacionais distribuídos. 3.1. SISTEMAS OPERACIONAIS DE REDE Os sistemas operacionais de rede também chamados de SOR possuem vários equipamentos cada um com seu próprio sistema operacional interconectados, o que possibilita o compartilhamento de recursos entre os usuários. As redes locais são exemplos dessa arquitetura, inclusive possuindo hardware e sistema operacionais diferentes, o sistema funciona perfeitamente, e mesmo na falha de algum equipamento o sistema continua operando, limitando-se apenas a ausência do recurso com problema (MACHADO; MAIA, 2002). A figura a seguir mostra o leiaute de uma rede de computadores. TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES 33 FIGURA 19 – REDE DE COMPUTADORES, DISPOSITIVOS INDEPENDENTES COMPARTILHANDO RECURSOS FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. 3.2 SISTEMAS OPERACIONAIS DISTRIBUÍDOS Essa arquitetura propõe que os sistemas estejam separados, mas com um forte relacionamento entre si, sendo que na maioria das vezes possuem o mesmo sistema operacional, e para os usuários a rede é apresentada de forma transparente. O balanceamento de carga é um forte ponto positivo dos sistemas distribuídos, pois possibilita que uma tarefa seja processada por um processador que esteja ocioso. O compartilhamento de recursos também é transparente, pois uma impressora em um ponto de rede pode ser vista como um dispositivo local (MACHADO; MAIA, 2002). Além do balanceamento de carga, esse sistema também oferece a vantagem de ser tolerante a falhas, pois na eventualidade de falha de um sistema, outro pode assumir o papel do sistema problemático impedindo que os processos parem. A figura a seguir mostra a visão de um sistema distribuído, note que os computadores estão espalhados dentro de uma rede, mas na visão do usuário existe apenas uma máquina. Os sistemas operacionais, nesse caso, devem estar relacionados e compatibilizados. UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 34 FIGURA 20 – SISTEMAS OPERACIONAIS DISTRIBUÍDOS FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. O projeto Seti (Search for Extra-Terrestrial Intelligence) é um exemplo de computação distribuída, no qual várias máquinas processam uma tarefa. Há necessidade, entretanto, da instalação de um software no sistema operacional que processe as informações. Além do projeto Seti, temos como exemplo o Climateprediction.net (que simula o clima na Terra), o PrimeGrid (que busca encontrar o maior número primo do mundo), além de tantos outros. Acesse o site: <http://boinc.berkeley.edu/> e veja a lista de projetos e, se interessar, participe, vale a pena! NOTA 3.3 QUANTO À ORGANIZAÇÃO FUNCIONAL Diferentemente dos sistemas fortemente acoplados, a organização funcional dos sistemas fracamente acoplados é definida pela topologia, ou seja, a posição dos computadores e como estão interligados. Temos dois tipos de topologias (MACHADO; MAIA, 2002): • Barramento: Nessa topologia os sistemas são conectados através de uma única linha, usado em redes locais, todos compartilham o mesmo meio. Como problema aponta-se a falha ao meio, que compromete todo o sistema (figura 21a). • Organização distribuída: Caracteriza-se por possuir várias linhas de comunicação entre os diversos equipamentos, desta forma, na falha de alguma delas, outra pode permitir a comunicação, muito utilizado em redes distribuídas (figura 21b). TÓPICO 2 | INTRODUÇÃO AOS SISTEMAS OPERACIONAIS TRADICIONAIS E DE REDES 35 FIGURA 21 – (A) BARRAMENTO E (B) ORGANIZAÇÃO DISTRIBUÍDA FONTE: MACHADO, F. M.; MAIA, L. P. Arquitetura de sistemas operacionais. 3° ed., São Paulo: Ed. LTC, 2002. LEITURA COMPLEMENTAR Supercomputador criado com mais de um milhão de núcleos bate recorde A Universidade de Stanford, nos EUA, ultrapassou a marca de 1 milhão de cores de processamento em um supercomputador. O IBM Blue Gene/Q Sequoia suporta exatos 1.572.864 núcleos de processadores, que funcionam em conjunto com 1.6 petabytes de memória. A supermáquina é usada para simulações complexas do comportamento dos fluídos e os dados são muito úteis para a indústria aeronáutica. Uma das principais aplicações do volume de informações colhidas a cada simulação do supercomputador é fornecer subsídios a engenheiros para que eles criem motores de aeronaves mais silenciosos. Como as turbinas de aviões atuais funcionam, basicamente, sugando e expulsando ar, que é um fluído, os dados extremamente precisos permitem que novos designs e aprimoramentos nas turbinas sejam testados dentro do computador. Assim, não há a necessidade de desenvolver protótipos. Além disso, vale lembrar que não é possível entrar em uma turbina para vê-la em funcionamento. Pesquisadores resolveram problemacausado por grande volume de dados Em termos de computação, há uma tendência a achar que mais é melhor. Mais memória, mais núcleos, mais processadores tenderiam a aumentar a capacidade de um sistema. Contudo, quando se fala na casa do milhão e meio de núcleos de processamentos, problemas começam a mostrar que, nem sempre, muito mais é melhor. UNIDADE 1 | INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 36 Supercomputadores funcionam quebrando porções matemáticas de problemas complexos. Cada pedaço dos cálculos pesados realizados pela máquina é endereçado a um grupo de processadores, que computa os dados e entrega os resultados no dispositivo de saída. Esse princípio faz com que soe natural que o supercomputador com 1,5 milhão de processadores seja melhor do que aquele com 500 mil. No entanto, até o IBM Blue Gene/Q Sequoia de Stanford ser desenvolvido, havia um problema: surgia um gargalo de dados quando o computador chegava a um valor próximo de 1 milhão de processadores. Tantos núcleos funcionando a altas velocidades geravam um volume de dados tão grande que o sistema chegava a um bloqueio. Isso acontecia porque os softwares que operavam máquinas com milhões de núcleos não eram refinados o suficiente para dar vazão a tanta informação. Em Stanford, esse problema foi resolvido com uma complexa reengenharia diretamente no código do software e no processamento dos dados. O resultado proposto foi o CharLES, um tipo de sistema operacional, digamos assim, capaz de aproveitar todo o poderio dos 1,5 milhões de cores do supercomputador. FONTE: TechTudo. Supercomputador criado com mais de um milhão de núcleos bate recorde. Disponível em: <http://www.techtudo.com.br/curiosidades/noticia/2013/01/supercomputador- criado-com-mais-de-um-milhao-de-nucleos-bate-recorde.html>. Acesso em: 10 fev. 2013. 37 RESUMO DO TÓPICO 2 Caro(a) acadêmico(a)! No Tópico 2, você estudou os seguintes conteúdos: • Os sistemas podem ser classificados como fortemente e fracamente acoplados. • A expansão de sistemas fortemente acoplados ocorre pela adição de novos processadores. • Um sistema assimétrico utiliza o mecanismo mestre/escravo. • Nos sistemas simétricos os processadores realizam as mesmas funções. • Sistemas com processamento vetorial utilizam apenas uma instrução para a manipulação dos vetores. • Sistemas paralelos permitem a quebra de uma tarefa em pequenas partes. • Os sistemas fracamente acoplados utilizam processamento separado, onde os equipamentos são interconectados através de redes ou barramentos. • Barramento e organização distribuída são as formas de organização funcional dos sistemas fracamente acoplados. 38 Caro(a) acadêmico(a)! Para seu melhor aprofundamento resolva as questões a seguir. 1 Baseado na leitura complementar, pesquise na internet outras formas de adaptação de equipamentos, e os sistemas operacionais utilizados para a comunicação entre eles. 2 Especifique como poderiam ser conectados três computadores, duas impressoras e um sistema de armazenamento de forma que todos compartilhassem recursos. AUTOATIVIDADE 39 TÓPICO 3 FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA UNIDADE 1 1 INTRODUÇÃO A memória é parte fundamental para o processamento dos dados em um computador, pois é nela que são armazenados antes de serem executados nos registradores da CPU. Seu correto funcionamento e gerenciamento são primordiais para que a integridade dos dados seja garantida e, consequentemente, a correta execução do programa. Para tanto, o sistema operacional deve oferecer mecanismos para que os dados e os processos em execução interajam entre si sem causar a perda de dados, tampouco a sua violação ou falha. Com a evolução do hardware, as formas de acesso e gerência da memória também evoluíram, e o sistema operacional ganhou com isso, fôlego para aprimorar o gerenciamento do hardware como um todo. Neste tópico estudaremos a evolução e a forma com que ocorre o gerenciamento da memória do computador, e o papel que o sistema operacional desempenha. 2 A MEMÓRIA DO COMPUTADOR Podemos considerar que todo dispositivo capaz de armazenar dados no computador é chamado de memória, podendo armazenar pequenas quantidades de bits (registradores) até grandes massas de dados (discos magnéticos e fitas magnéticas). Quanto a sua organização, podemos dividir as memórias em uma hierarquia conforme sua velocidade e custo. Podemos observar isso na figura a seguir (SILBERSCHATZ; GALVIN, 2000). O sistema operacional deve gerenciar e controlar o acesso aos dados que estão nas diversas camadas dessa hierarquia, principalmente das camadas iniciais, onde ocorre um grande fluxo de dados. UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 40 Antigamente os cartões perfurados também eram considerados unidades de memória, pois armazenavam os dados em papel. NOTA FIGURA 22 – HIERARQUIA DOS DISPOSITIVOS DE ARMAZENAMENTO FONTE: Silberschatz, Galvin e Gagne (2001) Toda essa divisão hierárquica só foi possível através da evolução do computador e dos sistemas operacionais, nos itens a seguir veremos como a gerência de memória evoluiu até a atualidade. Os dispositivos de armazenamento podem ser voláteis (perdem seu conteúdo quando é interrompida a energia – a memória RAM é um exemplo) e não voláteis (permanecem com os dados mesmo depois da falta de energia – podemos citar aqui os discos rígidos). NOTA TÓPICO 3 | FUNDAMENTAÇÃO DA GERÊNCIA DE MEMÓRIA 41 3 ALOCAÇÃO DE MEMÓRIA O gerenciamento de memória é um processo altamente crítico para o sistema operacional. Como apenas as instruções que estão na memória principal é que podem ser executadas, cabe ao sistema operacional manter na memória o maior número possível de processos, evitando desta forma a queda de desempenho no sistema como um todo. Vamos falar a seguir dos diferentes tipos de alocação de memória, iniciando pelo mais simples de todos, implementado nos primeiros sistemas operacionais: alocação simples. 3.1 ALOCAÇÃO CONTÍGUA DE ÚNICO USUÁRIO (ALOCAÇÃO SIMPLES) Este tipo de alocação consiste em dividir a memória em duas partes, uma para o sistema operacional e outra para o programa do usuário. Como nos primórdios da computação apenas um programa era executado por vez, bastava ao sistema operacional, carregá-lo na memória para sua execução, entretanto era importante que o tamanho do programa fosse menor que a memória disponível, pois o mesmo deveria ser alocado integralmente na memória. Como o programa deveria ser alocado inteiro na memória, se a área de memória disponível fosse menor que o tamanho do programa, este não poderia ser executado. Salienta- se que antigamente apesar do grande tamanho dos computadores, sua memória era limitada. NOTA A figura a seguir mostra a divisão da memória no esquema de alocação simples, detalhando inclusive o ponto de divisão das áreas do sistema operacional e do programa do usuário que se utilizava de um registrador com o endereço limite da memória. Toda vez que um programa era alocado na memória, os endereços eram comparados com o endereço limite do registrador, no caso de ser maior o processo era interrompido (gerado o erro de violação de acesso – access violation). UNIDADE 1 |INTRODUÇÃO E FUNDAMENTOS DE SISTEMAS OPERACIONAIS 42 FIGURA 23 – ESTRUTURA DA MEMÓRIA NO SISTEMA DE ALOCAÇÃO SIMPLES FONTE: Os autores Destaca-se que nesse sistema de alocação, se o programa não ocupar toda a área da memória, o espaço não utilizado fica vazio e não pode ser utilizado para outro processamento. Para resolver os problemas de incompatibilidade do tamanho dos programas com a memória livre disponível, foi criada a técnica de overlay, que consistia em dividir o programa em módulos que eram carregados na memória somente quando necessários, e substituíam os módulos já utilizados. Para essa divisão, alocava-se o espaço necessário para comportar o maior módulo do programa, obtendo um melhor aproveitamento da memória. Esses arquivos de overlay
Compartilhar