Você está na página 1de 21
VisAo GERAL ‘LI Introducao Um sistema operacional, por mais complexo que possa parecer, é apenas um conjunto de rotinas executado pelo processador, de forma semelhante aos programas dos usu- ros. Sua principal fungo é controlar o funcionamento de um computador, gerenciando € utilizacdo © 0 compartilhamento dos seus diversos recursos, como processadores, ‘memérias e dispositivos de entrada e safda. Sem o sistema operacional, um usuério para interagir com o computador deveria co- nhecer profundamente diversos detalhes sobre hardware do equipamento, o que torna- ria seu trabalho lento e com grandes possibilidades de erros. O sistema operacional tem como objetivo funcionar como uma interface entre o usuério e o computador, tornan- do sua utilizago mais simples, répida e segura. A grande diferenga entre um sistema operacional e aplicagdes convencionais é a ma- neira como suas rotinas sao executadas em fungao do tempo. Um sistema operacional nao é executado de forma linear como na maioria das aplicagbes, com inicio, meio e fim, Suas rotinas sao executadas concorrentemente em fungao de eventos assincronos, ‘ou seja, eventos que podem ocorrer a qualquer momento. ‘O nome sistema operacional, apesar de ser o mais empregado atualmente, nio é 0 tni- co para designar esse conjunto de rotinas. Denominagdes como monitor, executivo, supervisor ou controlador possuem, normalmente, o mesmo significado. Neste capftulo serdo apresentadas as fung%es bdsicas de um sistema operacional, 0 con- ceito de méquina de camadas. um hist6rico da evolucdo dos sistemas operacionais € seus diferentes tipos e classificagdes, ‘12 Funcées Basicas ‘Um sistema operacional possui inimeras fungdes, mas antes de comegar 0 estudo dos cconceitos ¢ dos seus principais componentes ¢ importante saber primeiramente quais, 4// Arquitetura de Sistemas Operacionais so suas fungdes bésicas. Nesta introdugdo, as fungBes de um sistema operacional sie resumidas em duas, descritas a seguir: * Facilidade de acesso aos recursos do sistema Um computador ou sistema computacional possui diversos dispositivos. comm monitores de video, impressoras, unidades de CD/DVD, discos ¢ fitas maenEicas Quando utitizamos um desses dispositivos, nio nos preocupamos com ¢ mame como € realizada esta comunicagio € os intimeros detalhes envolvidos nas ope g6es de leitura e gravacao, Para a maioria dos usuérios, uma operagfio como a leitura de um arquivo em sae pode parecer simples. Na realidade, existe um conjunto de rotinas especifices ome troladas pelo sistema operacional, responsével pelo acionamento do mecanismoge leitura e gravacio da unidade de disco, posicionamento na trlha ¢ setor comets. transferéncia dos dados para a meméria c, finalmente, informar ao programa a.com clustio da operacao. Cabe, entdo, 20 sistema operacional servir de interface entre os usuarios e os recursos disponiveis no sistema computacional, tomando esta come- nicagdo transparente, além de permitir um trabalho mais eficiente € com menores chances de erros. Este conceito de ambiente simulado, criado pelo sistema operacional, € denominado maquina virtual esta presente na maioria dos sistemas modernos (Fig. 1.1). impressoros Fig. 1.1 Visio do sistema operacional mo as. ira ra BERR RES Visio Geral / 5 E comum pensar-se que compiladores, linkers, bibliotecas, depuradores e outras fer- ramentas fazem parte do sistema operacional, mac, na realidade, estes recursos so apenas utilitérios, destinados a facilitar a interagao do usudrio com o computador. ‘+ Compartiihamento de recursos de forma organizada e protegida Em sistemas onde diversos usuérios compartilham recursos do sistema computaci- ‘onal, Enecesséiiv Lontiular v usu coucuLiente Uesses tecuLsus. Se iat US Ulta impressora sendo compartilhada, deveré existir algum tipo de controle para que a impressio de um usuério no interfira nas dos demais. Novamente é o sistema operacional que tem a responsabilidade de permitir 0 acesso concorrente a esse e a outros recursos de forma organizada e protegida. O compartilhamento de recursos permite, também, a diminuigdo de custos, na me- dida em que mais de um usuério pode utilizar as mesmas facilidades concorrente- mente, como discos, impresoras, linhas de comunicacao ete. Nao € apenas em sistemas multiusuério que o sistema operacional é importante. Se ensarmos que um computador pessoal nos permite executar diversas tarefas a0 mesmo tempo, como imprimir um documento, copiar um arquivo pela Internet ou pprocessar uma planilha, 0 sistema operacional deve ser eapa7 de controlar a execn- ‘edo concorremte de todas essas atividades. 13 Maquina de Camadas Um sistema computacional visto somente sob a ética do hardware, ou seja, como um conjunto de circuits eletrénicos, placas, cabos e fontes de alimentagao, tem pouca utilidade. E através do software que servigos so oferecidos aos usuarios, como arma- Zenamento de dados em discos, impressio de relat6rios, geraylo de graficos, acesso & Tnternet, entre outras fungdes. ‘Uma operagio efetuada pelo software pode ser implementada em hardware, enquanto ‘uma instrugio executada pelo hardware pode ser simulada via software. Esta decisio fica a cargo do projetista do sistema computacional em func3o de aspectos como cus- 10, confiabilidade e desempenho. Tanto o hardware quanto o software si logicamen- te equivalentes, interagindo de uma forma tnica para o usuério (Tanenbaum, 1992). ‘Nos primeiros computadores, a programagao era realizada em linguagem de maquina, em painéis através de fios, exigindo, consequentemente, um grande conhecimento da arquitetura do hardware. Isso era uma grande dificuldade para os programadores da €poca (Fig. 1.2a). O surgimento do sistema operacional minimizou esse problema, tor- nando a interagio entre usuério e computador mais simples, confidvel e eficiente. A partir desse momento, nao existia mais a necessidade de o programador se envolver com a complexidade do hardware para poder trabalhar; ou seja, a parte fisica do compu- lador tomou-se transparente para 0 usudtio (Fig. 1.2). © computador pode ser compreendido como uma maquina de camadas ou méquina de niveis, onde inicialmente existem dois niveis: hardware (nivel 0) e sistema operacional (nfvel 1). Desta forma, a aplicacao do ususrio interage diretamente como sistema operacional, ou seja, como ce o hardware nto existisse, Esta visio modular e abstrata € chamada de mdquina virtual Narealidade, um computador nao possui apenas dois niveis, ¢ sim tantos niveis quantos forem necessérios para adequar 0 usuario as suas diversas aplicagdes, Quando 0 usué- 6 / Arquitetura de Sistemas Operacionals Ana v vation t pecasis Arlcsies | simmeopwecon Hardware i a la ob Fig. 1.2 Visho do computador pelo ususrio, | tio esti trabalhando em um desses nfveis ndo necessita saber da existéncia das outras ‘camadas, acima ou abaixo de sua maquina virtual. ‘Atualmente, a maioria dos computadores possui a estrutura basica apresentada na Fig. 1.3, podendo conter um niimero maior ou menor de camadas. A linguagem utilizada em cada um desses nfveis 4 diferente, variando da mais elementar (baixo nivel) & mais sofisticada (alto nivel). 1.4 Histérico A evolugiio dos sistemas operacionais est, em grande parte, relacionada ao desenvol- ‘vimento dos computadores. Neste hist6rico dividimos essa evolugio em décadas, nas Linguagem de Méquina Cireuitos Eletrénico Fig. 1.3 Méquinas de camadas. ras Visdo Geral / 7 4quais destacamos em cada uma suas principais caracteristicas de hardware, software, interagdo com o sistema e aspectos de conectividade. Antes da década de 1940, intimeros esforgos foram feitos para criar uma méquina que pudesse realizar célculus de forma mais sipida © precisa. Ent 1642, v auatenti= co francés Blaise Pascal inventou uma maquina de somar para auxiliar seu pai no proceso de arrecadagao de impostos. Em 1673, 0 matemiético e fil6sofo alemao Gottfried Leibniz foi além ¢ criou uma maquina capaz de somar e multiplicar, utili- zando 0 conceito de acumulador. Mais tarde, em 1820, o francés Charles Colmar inventaria finalmente uma maquina capaz de executar at quatro operagSer. Em 1822 0 matemético inglés Charles Babbage criou uma méquina para calculos de equacdes polinomiais, Mais tarde, em 1833, Babbage evoluinia esta ideia para uma ‘maquina capaz de executar qualquer tipo de operasio, conhecida como Maquina Ana- litica (Analytical Engine). Seu invento & 0 que mais se aproxima de um computador atval, possuindo os conceitos de unidade central de processamento, meméria, unidade de controle e dispositivos de entrada/safda. Enquanto Babbage se preocupava com as ccaracteristicas mecfinicas do seu invento (hardware), sua disefpula Augusta Ada Byron cra responsével pela seqiiéncia de instrugdes executadas pela méquina (software). Pelo trabalho realizado na época, Ada Byron é considerada a primeira programadora da his- tria, Devido as limitagdes técnicas da época, a Méquina Analitica nunca funcionou de forma adequada, mesmo assim Babbage é considerado o “pai do computador”. Em 1854, o também matemiético inglés George Boole criaria a légica booleana, base para 0 modelo de computacao digital utilizado até hoje. O conceito de légica bindria setia utilizady uy desenvolvimento de dispusitives com 1elés e vélvulas, implemen tados nos primeiros computadores da década de 1940, No final do século XIX, Herman Hollerith criou um mecanismo utilizando cartoes perfurados para acelerar 0 processamento do censo de 1890 nos BUA. Hollerith fun- daria em 1896 a Tabulating Machine Company, que se tomaria a International Business Machine (IBM) em 1924. A utilizagdo de cartes perfurados na computagao perdura- ria por grande parte do século XX, 0 nome Hollerith tornar-se-ia sindnimo de cartio perfurado, ‘Na década de 1930 surgem as primeiras tentativas reais de criar-se uma calculadora ele- trénica. Na Alemanha, Konrad Zuse desenvolveu o Z-1, baseado em relés e que utiliza- va l6gica bindria. Nos EUA, John Vincent Atanasoff e Clifford Berry desenvolveram ‘uma miquina para o eéleulo de cquagées lincares. Para muitos, o ABC (Atanasoff-Berry Comiputer) € considerado o primeiro computador eletrdnico da historia. em 1937, 0 matemético inglés Alan Turing desenvolveu aidéia de Maquina Universal (ou Maquina de Turing, capaz de executar qualquer seqtiéncia de instrugdes (algoritmo). Apesar de ser um movielo tedrica, a Méqnina Universal crion a idéia de “processamen to de simbolos”, base da ciéncia da computagio moderna. ‘BAI Décapa ve 1940 ‘A Segunda Guerra Mundial desencadeou 0 desenvolvimento de méquinas que pu- dessem acelerar 0s procedimentos manuais realizados para fins militares. Neste pe~ iodo surgiram os primeiros computadores eletromecénicos (calculadoras), forma- dos por milharcs de vélvulas, que ocupavam ércas enormes, sendo de funcionamen- to lento ¢ duvidoso, 8 / Arquitetura de Sistemas Operacionais Em 1943, na Inglaterra, Alan Turing estava envolvido no desenvolvimento de uma ‘maquina chamada Colossus para decifrar 0 c6digo das mensagens alemiis, conhecido ‘como Enigma. Este computador foi desenvolvido e utilizado na quebra de diversos c6- digos nazistas, como o do “Dia D”,e significou uma grande vantagem para os aliados nna Segunda Guerra Nos EUA, em 1944, foi construido o primeiro computador eletromectnico, batizado de “Mark I. Desenvolvido pelo professor Howard Aiken, da Universidade de Harvard, ecom ‘apoio da IBM, foi uilizado para célculos matematicos pela Marinha. O Mark I utilizava ‘0s mesmos princfpios da Maquina Analitica, criada por Babbage cem anos antes. OENIAC (Flectronic Numerical Integrator And Calculator) é considerado o primeiro computador digital e eletrénico. Desenvolvido pelos engenheiros J. Presper Eckert e Jobn W. Mauchly na Universidade da Pensilvania, foi criado para a realizagio de cél- culos balfsticos e, posteriormente, utilizado no projeto da bomba de hidrogénio, fican- ddo em operagdo no perfodo de 1946 a 1955. Sua estrutura possufa 17 mil vilvulas, 10 mil capacitores, 70 mil resistores e pesava 30 toneladas. Quando em operago, consu- ‘mia cerca de 140 quilowatts e era capaz de realizar 5 mil adigSes por segundo. Para trabalhar com o ENIAC era necessério conhecer profundamente 0 funcionamen- to do hardware, pois a programactio era feita em painéis, através de 6 mil conectores, utilizando linguagem de méquina. Esta tarefa poderia facilmente levar alguns dias. Corretamente programado, um céleulo que levasse vinte e quatro horas manualmente cera resolvido em menos de trinta segundos. A diferenca entre a velocidade de proces- samento e 0 tempo necessério para codificar um programa passou a ser um grande problema a ser resolvido, professor John von Neumann, consultor no projeto do ENIAC, imaginou uma méqui- nna de propésito geral na qual tanto instrugdes quanto dados fossem armazenados em uma ‘mesma meméria, tomando o processo de programagio muito mais répidoe flexivel. Este conceito, aparentemente simples, conhecido como “programa armazenado”, 6 a base da arquitetura de computagiio atual, batizada de “Arquitetura von Neumann”. Finalmente, ‘as mesmas idéias de Babbage (Maquina Analitica) e Turing (Maquina Universal) pude- ram ser colocadas em prética em um mesmo sistema computacional. © primeiro computador a implementar 0 conceito de “programa armazenado” foi o EDSAC Electronic Delay Storage Automatic Calculator), desenvolyido pelo professor ‘Maurice Wilkes, na Universidade de Cambridge, ua Inglaterra, em 1949. Outros com- putadores foram construidos nessa mesma época com base no mesmo prinefpio, como © EDVAC (Electronic Discrete Variable Automatic Computer) na Universidade da Pensilvania, LAS (Institute for Advanced Studies) em Princeton pelo proprio von ‘Neumann, Manchester Mark I, ORDVAC e ELLIAC na Universidade de Illinois, JOHNIAC pela Rand Corp., MANIAC em Los Alamos ¢ WEIZAC em Israel. A mai- foria destas méquinas foi utilizada apenas em universidades ¢ érgaos militares para calculos mateméticos. Nessa fase, os computadores nao possufam ainda dispositivos com fungi de interface com 0s usuérios, como teclados e monitores, ¢ 0 conceito de sistema operacional sur- sgiria apenas na década seguinte. 1.4.2 DEécapa Dé 1950 Oso do transistor da meméria magnética contribuiu para 0 enorme avango dos com- ‘putadores da época. O transistor permitiu o aumento da velocidade e da confiabilidade uma cido 6 ode com ava me cal pan 10 nsu- ente ur ade Visio Geral / 9 no processamento, ¢ as memérias magnéticas permitiram o acesso mais répido aos da- dos, maior capacidade de armazenamento e computadores menores. Apesar de 0 set. invento datar do final da década de 1940, os primeiros computadores transistorizados foram lancados comercialmente apenas no final da década de 1950, Com o desenvolvimento da indiistria de computadores, muitas empresas foram cria- das ow investiram no setor, como Raytheon, RCA, Burroughs ¢ IBM, 0 que levou & criagdo dos primeiros computadores para utilizagdo em aplicagdes comerciais. Em 1946, Eckert © Mauchly deixaram a Universidade da Pensilvania para formar a primeira empresa de computadores, a Eckert-Mauchly Computer Corp. (EMCC), com. a intengao de construir 0 UNIVAC (Universal Automatic Computer). Devido a pro- blemas financeiros, a MCC foi adquirida pela Kemington Kand Corp., possibilitando ‘aconclusio do projeto a tempo de ser utilizado no censo dos EUA em 1951. UNIVAC 1 foi o primeiro computador bem-sucedido fabricado para fins comerciais. Em 1951, o Massachusetts Institute of Technology (MIT) colocou em operacdo 0 que 6 con- siderado 0 primeiro computador voltado para o processamento em tempo real, o Whirlwind 1 Entre diversas inovagées, o Whirlwind introduziu a tecnologia de meméria magnética, (0s programas ou jobs passaram a ser perfurados em cartdes, que, submetidos a uma lei- tora, eram gravados em uma fita de entrada (Fig. 14a). A fita, entdo, era lida pelo com- putrdor, que executava um programa de cada ve7, gravanda a resultnda de pronessamente ‘em uma fita de safda (Fig. 1.4b). Ao término de todos os programas, a fita de safda era lida e impressa (Fig. 14c). A esse tipo de processamento, em que um conjunto de pro- grunay cra submetido ao computador, deu-se v nome de processumento buch. Pode ndo parecer um avango, mas anteriormente os programas eram submetidos pelo ‘operador, um a um, fazendo com que 0 processador ficasse ocioso entre a execugtio de um job ¢ outro. Com o processamento batch, um conjunto de programas era submetido dde uma s6 vez, 0 que diminufa o tempo de espera entre a execugio dos programas, per- mitindo, assim, melhor aproveitamento do processador. O primeiro sistema operacional, chamado monitor por sua simplicidade, foi desenvol- vido em 1953 pelos usuérios do computador IBM 701 do Centro de Pesquisas da Ge~ neral Motors, jstamente para tentar aitamatizar as tarefas mannais até entio utiliza das. Posteriormente, este sistema seria reescrito para um computador IBM 704 pelo ‘grupo de usuérios da IBM (Weizer, 1981). Com o surgimento das primeiras linguagens de programagio de alto nivel, como FORTRAN, ALGOL e COBOL, os programas deixaram de ter relacao direta com o hardware dos computadores, 0 que facilitou e agilizou enormemente o desenvolvimento a manutengio de programas. ‘Da mesma maneira que as linguagens de programacao, os sistemas operacionais evo- lufram no sentido de facilitar 0 trabalho de codificacdo, submissao, execucao e depu- ragio de programas. Para isso, 0s sistemas operacionais incorporaram seu proprio con- jumto de otinas para operacdes de entrada/safda (Input/Output Control System —IOCS). ‘OIOCS eliminou a necessidade de os programadores desenvolverem suas préprias r0- tinas de leitura/gravagio especificas para cada dispositivo. Essa facilidade de comuni- cago criou 0 conceito de independéncia de dispositivos, inttoduzido pelos sistemas operacionais SOS (SIIARE Operating System), IMS (FORTRAN Monitor System) IBSYS, todos para méquinas IBM. 10 / Arquitetura de Sistemas Operacionais rrcesemte | amy ‘ta de entrode Processamento 2. Dt | reessemente | -_ ame fe da side rots Fig. 1.4 Processamento batch. No final da década de 1950, a Universidade de Manchester, na Inglaterra, desenvolveu. sistema uperacional Atlas, que introduziu a idéia de meméria hicrarquizada, base do conceito de memdria virtual, presente hoje na maioria dos sistemas operacionais atu- ais. O Atlas implementava o esquema de paginagao por demanda para transferir infor- ‘mages da meméria secundéria para a principal 1.4.3 DEcADA DE 1960 ‘A partir do surgimento dos circuitos integrados, foi poss{vel viabilizar e difundir 0 uso de sistemas computacionais nas empresas, devido & redugdo de seus custos de aquisi- io. Além disso, houve grande aumento do poder de processamento ¢ diminuicdo no tamanho dos equipamentas. A década ce 1960 foi palca de imimeras inovagdes na Srea de sistemas operacionais, tendo sido implementadas varias técnicas presentes até hoje, como multiprogramagio, multiprocessamento, time-sharing e mem6ria virtual. ‘Uma das caracteristicas mais importantes surgidas nesta época foi a introdugio do conceito de multiprogramacdo. Antes deste conceito, sempre que um programa reali- zava uma operagao de entrada/saida 0 processador ficava ocioso, aguardando o térmi- ‘no da operagio. A multiprogramacao permitiu que varios programas compartilhassem ‘a meméria ao mesmo tempo e, enquanto um programa esperava por uma opera¢o de leitura/gravagao, o processador executava um outro programa, Com a substituigdo das fitas por discos no processo de submissio dos programas, © 7 processamento batch, juntamente com a multiprogramagio, tomou os rpidos e eficientes, pois permitia a carga mais répida dos programas na meméria e a alteragio na ordem de execucHo das tarefas, até entao puramente seqiiencial Visd0 Geral / 11 Em 1963, a Burroughs lanca 0 computador B-5000 com o sistema operacional Master Control Program (MCP), que oferecia multiprogramago, meméria virtual com seg- mentago e multiprocessamento assimétrico, além de ser o primeiro sistema a ser de- senvolvido em uma linguagem de alto nfvel. No mesmo ano, a Control Data Corporation anuncia © langamento do primeiro supercomputador, o CDC 6600, projetado por Seymour Cray” ‘A TBM Langa em 1964 0 Systen/360, que causaria uma revoluedo na indistria de in- formitica, pois introduzia um conceito de méquinas de portes diferentes, porém com ‘uma mesma arquitetura, permitindo a total compatibilidade entre os diferentes mode~ los. Desta forma, uma empresa poderia adquirit um modelo mais simples e barato e, conforme suas necessidades, migrar para modelos com mais recursos, sem compro- meter suas aplicagGes ja existentes. Para essa série, foi desenvolvido o sistema operacional OS/360. s sistemas batch implementando multiprogramagiio, como o OS/360, foram um grande avango para os programadores, porém 0 trabalho de desenvolvimento e depuragao das, aplicagdes ainda era lento e tedioso. Caso 0 programador cometesse apenas um erro de digitacdo, o tempo de resposta do sistema poderia levar horas. A evolugdo foi oferecer 40S usudrios tempos de respostas menores e uma interface que permitisse interagir ra- pidamente com o sistema, Para tal, cada programa poderia utilizar 0 processador por pequenos intervalos de tempo. A esse sistema de divisdo de tempo chamou-se fempo compartithado (time-sharing). Para que a interface entre o computador e usudrios fos- se possivel, foram introduzidos novos dispositivos de entrada/saida, como o terminal de video e 0 eclado, possibilitando a interagio do usuério com a aplicago no decorrer da sua execugao (sistema on-line). ‘Umdos primeites sistemas operacionais de tempo compartilhado foi o CTSS (Compatible ‘Time-Sharing System). Desenvolvido pelo MIT em 1962 para um computador IBM 7094, suportava no maximo 32 usuérios interativos, e através de comandos em um terminal permitia compilar e executar seus programas. O CTSS foi a base para outros sistemas operacionais de tempo compartilhado, como 0 MULTICS (Corbat6, 1962). Em 1965, 0 MIT, a Bell Labs ¢ a General Electric estavam envolvidos no projeto do sistema operacional MULTICS (Multiplexed Information and Computing Service) para um computador GE 645. Este sistema deveria oferecer vérios servigos de forma conti- ‘nua ¢ confidvel, similar aos servigos de luz e telefonia. O MULTICS implementava ‘meméria virtual com segmentacdo e paginagao, multiprogramagio e deveria suportar iiltiplos processadores ¢ usuarios. A maior parte do sistema seria desenvolvida em PLIL, uma linguagem de alto nivel, para torné-lo portavel, ou seja, independente da plataforma de hardware (Corbat6, 1965). Apesar de o MULTICS nio ter alcancado seus objetivos, suas idéias influenciariam intimeros sistemas posteriormente, A Digital Equipment Corp. (DEC) langou o PDP-8 em 1965, também revolucionsio, pois representava a primeira linha de computadores de pequeno porte ¢ baixo custo, comparativamente aos mainframes até entéio comercializados, criando o mercado de minicomputadores. Em 1969, Ken Thompson, que trabalhara no projeto do MULTICS, utilizou um PDP-7 para fazer sua prdpria versio de um sistema operacional que viria ‘ser conhecido como Unix. 1.4.4 DECADA DE 1970 AA integragio em larga escala (Large Scale Integration — LSI) a integragao em muito larga escala (Very Large Scale Integration — VLSI) levaram adiante 0 projeto de ura de Sistemas Operacionais minjaturizagio ¢ barateamento dos equipamentos. Seguindo esta tendéncia, a Digital Janga uma nova linha de minicomputadores, o PDP-11 em 1970 e, posteriormente, 0 sistema VAX/VMS (Virtual Memory System) de 32 bits. Em 1971, a Intel Corp. produz seu primeiro microprocessador, 0 Intel 4004 e, trés anos depois, o Intel 8080, utilizado no primeiro microcomputador, o Altair, Posteriormen- te, a Zilog langaria um processador concorrente ao da Intel, 0 80. Com a evolugio dos microprocessadores, os microcomputadores ganham rapidamente 0 mercado por

Você também pode gostar