You are on page 1of 29
Aspectos Gerais sem software, um computador & basicamente um inti ul amontoado de metal. Com software, um computador pode armazenar, processar € recuperar informagbes, exibit documentos de multimidia, pesquisar na Internet e envol- yeese em muitas outras importantes atividades que justifi camseu valor. O software de computador pode ser dividido, gmsso modo, em duas espécies: programas de sistema, que gerenciam a operacio do computador em si, e programas aplicativas, que executam 0 trabalho que o usudrio real- mente deseja. O programa de sistema mais fundamental é sistema operacional, que controla todos os recursos do computador e fomece a base sobre a qual os programas aplicativos podem ser escritos. im modemo sistema de computador consiste em um ou mais processaores, alguma meméria principal (tam- bém conhecida como RAM — Random Access Memory, Meméria de Acesso Aleat6rio), discos, impressoras, intefa ‘ede rede e outros dispositivos de entrada/safda Emsuma, ‘um sistema complexo. Escrever os programas que contro= lam todos esses componentes € usd-los corretamente € um tabalho extremamente dificil. Se cada programador tives ‘sede preocupar-se com o modo como as unidades de disco funcionam e com todas as duiias de coisas que poderiam dar errado ao ler um bloco de disco, seria provavel que ‘Muitos programas sequer pudessem ser escritos. Ha mulas anos tomou-se bastante evden neces de encontrar uma maneira de isolar os programado” fesda complexidade do hardware, A maneira.cOM dU /SP . veu gradualmente foi colocar uma cama de por cima do hardware bésico para gerenciay (4 ‘Spares do sistema eoferecer ao usuario umnaimteiae ‘™équina virtual que é mais facil de entendere de POR", at. Essa camada de software & 0 sistema operacions tui o assunto deste livro. existe mostrada na Figura 1- ardware, que, em muitos casos, € COMP Na parte inferion posto de duuas ‘ou mais camadas, A camada baixa contém dspositivs fe sicos, consistindo em circuitos integrados, cabos, fonte ali rentadora, tubos de ras catédicos edispositivos fiscos melhantes. Como ts elementos sio construdos e como funcionam é assunto do engenheiro elétrico. Emiseguida (em algumas méquinas), vem umacama- dda de software primitivo que controla diretamente esses spositivose proporciona una interface limpa para ape6- xima cameda, Esse software, chamado microprograma, rormalmente esté localizado em meméria somente para Jeitura Eleé realmente um interpretador, buscando as ins- trugoes de linguagem de miquina como ADD, MOVE € JUNE, executando-as como uma série de pequens passos ‘Para executar uma instrucdo ADD, por exemplo, @ micro- programa deve determinar onde os niimeros a serem so~ rads esto localizados, busclos, aicionéclos e arma apa resultado em algum lugar. 0 conjunto de instru- Goes que o microprogranta interpreta define a Linguagem JE aniguina, que nfo realmente parte do hardware da tndquina, mass fabricantes de computador sempre ads crevem em seus pene Gas ane modo que as rsa que ela a “maquina rea ae wmutadores, chamados de miquinas RISC (aeuucedInsiraction Set Computers), Wo 0 om Reet croprograunagto, Nesta maquina oardware nivel de mer ente as instrugees da linguagem de md- execute nples,o ovorola 680N0 tem um nivel de guina, Gomo.evemples. 0 enon i vamaglo, Mas 0 TBM Power 2 : MiCTOPROE ry de Maquina tipieamente tem entre 50 € A Tinguagen a sa maior pat, server at O- ver dads peta cama, 0s dispsitives de entrada parar valores. NOS Cauregando valores em registralores salda sto control Mor exemp, um disco pode st especiais i ae i lores do encderego do ccomandado pars Ter carregando 0s val disco, 0 anderen de rmeméria pt ipa, a contagem & TANENBAUM & WOODHULL 18 ws je ea Navegador \ Programas aplicativos: assagom | “gaweb | f bancdrio ee interpretador Reopninaonee |("'esowe | Uierrand6)| |. pogamas de otra Sistema operacional Linguagem de méquina a Hardware Microprogramagao Dispostvos fsioos | Figura 1-1 Umsistema de computador consiste em hardware, em programas de sistema e em programas aplicatvos, bytes e a instrugao (READ ou WRITE) em seus registradores. Na prética, muitos parametros a mais so necessérios € 0 resultado retomado pela unidade depois de uma opera¢ao € altamente complexo. Além disso, para muitos dispositi- vvos de B/S, a temporizanacao desempenha um papel im- portante na programacao. Uma importante fungao do sistema operacional é es- conder toda essa complexidade e oferecer um conjunto mais conveniente de instrugdes para o programador trabalhar. Por exemplo, READ BLOCK FROM FILE € conceitualmente mais simples que ter de preocupar-se com os detalhes do movimento das cabecas de disco, esperar que elas abaixem e assim por diante. Por cima do sistema operacional est o resto do softwa- rede sistema. Aqui encontramos o interpretador de coman- dos (shell), sistemas de janelas, compiladores, editores e programas independentes de aplicagao semelhantes. £ importante saber que esses programas definitivamente nao sAo parte do sistema operacional, mesmo que eles tipica- ‘mente sejam fornecidos pelo fabricante do computador. Esse €um ponto crucial, massutil, 0 sistema operacional éaque- la porgao do software que executa no modo kernel ou no modo de supervisor. Ele ¢ protegido do usuario pelo har dware (ignorando por enquanto os microprocessadores mais antigos que nao tinham nenhuma protegao de hard- ware). Os compiladores e editores executam no modo de usuario. Se um usudtio ndo gosta de um compilador par- ticular, ele é livre para escrever seu proprio compilador se preferir; mas ele nZo ¢ livre para escrever seu préprio ma- nipulador de interrupgdes de disco, que é parte do sistema operacional e normalmente é protegido por hardware con- tra tentativas dos usudrios de modificd-lo, Por fim, acima dos programas de sistema vém os pro- Soe ae Programs io compracs ou sio Pee ps a ver seus problemas parti- dis riGoaitiess ae ‘ores de texto, planilhas eletréni- lo de engenbraria ou jogos, 1.1 © QUE £ UM SISTEMA OPERACIONAL? ‘A maioria dos usuérios de computador teve algume experiéneia com um sistema operacional, embora sjai- ficil precisar exatamente 0 que é um sistema operacional Parte do problema é que os sistemas operacionais execu. tam basicamente duas fungbes nfio-relacionadas e depen- dendo de quem esté falando, vocé ouve mais uma coisa ou outra. Vamos examinar as duas agora. 1.1.1 O Sistema Operacional como uma Maquina Estendida Como mencionado anteriormente, a arquitetura (con- junto de instrugées, organizacao da memoria, E/S e estu- tura de barramento) da maior parte dos computadores no nivel da linguagem de maquina ¢ primitiva e desajeitata para programar, especialmente para entrada/saida. Para tomar essa idéia mais palp4vel, veja como a E/S de disque- te ¢ feita usando o chip controlador NEC PD765 (ou equi- valente), utilizado na maioria dos computadores pessoais 0 PD765 tem 16 comandos, cada um especificado cat regando-se entre 1 e 9 bytes em um registrador de dispost tivo, Esses comandos so para ler e para gravar dados, pare mover o brago de disco e para formatar trilhas, assim como para inicializar, avaliar, ressetar e recalibrar a controlado- tae as unidades. Os comandos mais basicos so READ e WRITE, cada Ul Geles requerendo 13 parametros, compactados em 9 bytes Tals parametros especificam itens como o endereco do blo- Co de disco a ser lido, © ntimero de setores por trilha, 9 modo de gravacdo utilizado no meio fisico, o tamanho 4? intervalo entre setores e o que fazer com uma marca & enderego de dados exclufdos, Se vocé nao entende este P* lavrério, nao se preocupe; é essa exatamente a questi0— € tudo muito esotérico. Quando a operagdo é completad’, uma jadi. pnal, fpen- bow sill — ochip controlador retorna 23 campos ge acai em 7 bytes, Como se isso tals ero com. programador dodisquetetambm deveeyon suet, te ciente sobre se 0 motor esd ligado ou goa eemet motor estiverdesigado, ele deve ser ligada (322: St 0 mora longa de inicializaglo) antes de os ve uma de. se lidos 04 gravados. Mas 0 motor nao pode Poueem ligado por muito tempo, seniio o squat Peemanecer ( programaor assim €forgado a negociat ene eats na initalizagao e 0 desgaste dos disquetes ch ademora dados neles) @ perda dos Sem entrar nos detalhes reais, programador médio provavelmente intimamente envolvido com a proge (nem discos rigidos, que sao igualment sardebem diferentes). Em vertiso aquest ee quer €uma abstracio de ordem superior mas craig lidat.No cas0 dos discos, uma abstracotipica seria que o disco contém uma colecdo de nomes de arquivos, Cada ar- guivo pode ser aberto para leitura ou gravacdo, entZo ido ou gravado efinalmentefechaci, Detalhes como se a gra vagao deve ou nao usar modulagao de frequéncia modifi- cada e qual & estado atual do motor nfo dever aparecee naabstracio apresentada ao usuatio 0 programa que esconde do programador a verdade sobre o hardware e apresenta uma bela e simples visio de nomes de arquivos que posiem ser ldos egravados 6 natu. ralmente, o sistema operacional. Assim como o sistema operacional esconde do programador o handware de disco eapresenta uma interface orientada para arquivo mais sim- ples, ele também oculta muitas coisas desagracves rela ‘cionadas com interrupc0es, temporizadores, gerenciamento ‘dememeériae outros recursos de baixo nivel. Em cada caso, aabstrago ofeecia pelo sistema operacional é mais sim- plese mais fil de utilizar que o hardware subjacent, Deste ponto de vista, a furgao do sistema operacional é apresentar ao usuario o equivalente de uma maquina ¢S- tendida ou maquina virtual que é mais él de pears tar que o hardvaresubjacente. 0 modo come est ‘operacional alcanga esse objetivo é uma longa historia, estudaremos em detalhe a0 longo de todo este vo. eve star claro que o no quer ficar muito ramagao de disquetes a Operacional como um de Recursos Scion comoprincipalmente weniente SISTEMAS OPERACIONAIS 19) er uma alocag loca onde ae Controlada dos processad KeMSrias € dos disposi Sento m spostivos de B/S entre os vd Drogas quecompetem por eles eumae eine o que acontecria sete eunstaaie a se trs programas que tae algum computador tentaem tins laneamente na mesma spo ada e imprsor spine thee ee pata par Thinnest ae en do ppana ops segues te progana en ipa de muagohancn 0 algumas do progra- tado seria 0 caos 0 sistema operacional e ma ess Caos potencal armazenando toda astida destinads para aimpressora no disco. Quando um Drograma tiver terminado, o sistema operacional pode, nto, copiar sua saida a partir do arquivo de disco onde eta fol armazenada para aimpresora,enquanto, 20 mes ‘Mo tempo, o outro programa pode continuar a gerar mais Sala, ignorando ofato de que asada realmente nao est ‘indo para a impressora (ainda). Quando um computador (ou uma rede) tem miltiplos Ustdros, a neoesidade de gerenciare de proteger a me- mora, os dspestives de B/S outros recursos ainda maior, ‘uma wez que os usuros tle interfiram um com outro Além disso, os usudros freqientemente necessitam nao s6 comparilhar hardware, mas também as informaghes (ar quivos, bases de dados et.) Em rsumo, ess visto do sis- tema operacional sustenta que sta tate priméria € mo- nitorar quem est utilizando quel recurso, atender requi- sigbes de recurso, medi utlizago dos recursos e medic as requisigoes conflitantes de diferentes programas usué- ios. pode trazer orden 1.2 A HISTORIA DOS SISTEMAS OPERACIONAIS Ossistemas operacionas yém desevolvendo-se ao on- poco anos. Nas primes sie, vremes resumiéamen- teesse desenvolvimento, Um vez que os sistemas operac ‘onais historicamente estiveram ‘intimamente associados & srquterura dos computador nos quai ees roam, ext triaremos as suoesivas geragbes de computadores para ‘ver como eram seus sistemas operacionais, Tal relaciona- eps egies desserts peraconl om 1 8 Fos de eomputadors € gros, mas ofeece uma base tera. ae tao dg veal pret elo pratemética inglés Charles Babbage apes) por Babbage ena gato a maior pate de sua vide Eat consus ocr ana anal funciona adequadanente por a oo ite mecfinica ea tecnologia do seu que 1 as neces oes engi po pdt pour asnees me ar reco de quel precise. deseo ilftico nfo tinha um sister pet ue rico, Babbage sabia que reir at Iher, chamada Ada Lovelace, 20 TANENBAUM & WOODHULL — i filha do famoso poeta britinico Lord Byron, com ear programa do mundo. O nome da ingugem Ge programagio Ada@® foi criado em sua homenagem 1.2.1. APrimeira Geragao (1945-55): Valvulas e Painéis de Gonectores Depois dos esforgos malsucedidos de Babbage, pouco progresso foi alcangado na construgao de computadores digitais até a II Guerra Mundial, Em meados da década de 40, Howard Aiken, de Harvard, John von Neumann, do Ins- tituto de Estudos Avangados de Princeton, J. Presper Eckert e William Mauchley, da Universidade da Pensilvania, € Konrad Zuse, na Alemanha, entre outros, tiveram sucesso nna construgio de méquinas de célculo utilizando valvu- las. Essas mAquinas eram enormes, ocupando salas intei- ras com dezenas de milhares de valvulas, e eram muito ‘ais lentas que as mais simples calculadoras de hoje. Naqueles tempos, um tinico grupo de pessoas projetava, consirufa, programava, operava e mantinha cada méqui- nna. Toda a programacao era feita em linguagem de méqui- nna pura, freqientemente ligando com fios painéis de co- nectores para controlar as fungdes basicas da maquina. As linguagens de programagao eram desconhecidas (nem mesmo a linguagem assembly) e ninguém nunca tinha couvido falar de sistemas operacionais. 0 modo normal de ‘operago era 0 programador reservar um periodo de tempo na folha de reserva na parede, depois descer até o lugar da méquina, inserir suas conexdes no computador e gastar aalgumas horas esperando que nenhuma das aproximada- ‘mente 20,000 vAlvulas queimasse durante a execucao, Pra- ticamente todos os problemas eram simples cdlculos nu- méricos, tais como gerar tabelas de senas e de co-senos. No inicio da década de 50, a rotina havia melhorado ‘um pouco com a introduc dos cartdes perfurados. Agora era possivel gravar programas em cartdes e lé-los, em vez de usar cabos e conectores; fora isso, o procedimento era 0 mesmo. 1.2.2 A Segunda Geraco (1955-65): ReeeeiGicce iio: ‘A introdugao do transistor, em meados da década de 50, mudou 0 quadro radicalmente. Os computadores torna- contfidveis o bastante para serem fabricados e ven- para clientes com a expectativa de que continuariam onar por tempo suficiente para realizar algum tra- Pela primeira vez, havia uma separacao clara , construtores, operadores, programadores ‘manutengao, ‘eram guardadas em salas espectais com ado € equiipes de operadores profissionais para jonando. Somente as grandes corporagées 1s do governo ou universidades podi- car com seu prego, na casa dos mi- tar umn fob (i, €., um prograe meio escrevia o programa em papel (em FORTRAN ou ay sembly), e entio 0 transformava em cartoes perfuradys Ele entao levava 0 conjunto de cartoes para a sala de en, trada e entregava-os a um dos operadores, Quando 0 computador acabava 0 fob que estava execy tando, um operador ia até a impressora, removia a saida ¢ a levava para a sala de safda, para que 0 programador py. desse recolhé-la mais tarde. Entdo, 0 operador pegaria um dos conjuntos de cartoes que haviam sido trazidos da sala de entrada e os inseria na maquina para leitura. Se ocom- pilador FORTRAN fosse necess4rio, 0 operador teria que pegé-lo em um gabinete de arquivos e inseri-lo para leitu- fa. Muito tempo de maquina era desperdicado enquanto 0s operadores andavam em volta do computador. Dado o alto custo do equipamento, nao é de surpreen- der que as pessoas rapidamente comegassem 2 procurar maneiras de reduzir 0 tempo desperdicado. A solugao ge- ralmente adotada era o sistema de processamento em lotes (ou batch systema). A idéia subjacente a essa solugéo era colecionar uma bandeja completa de jobs na sala de entrada e entao lé-los sobre uma fita magnética utilizando ‘um computador pequeno (relativamente) € barato comoo IBM 1401, que era muito bom para ler cartes, para copiar fitas e para imprimir a safda, mas péssimo em céleulos numéricos. Outras maquinas muito mais caras, como o IBM 7094, eram utilizadas para a computagio de fato. Essa situagdo é mostrada na Figura 1-2 Depois de cerca de uma hora de coleta de um lote de jobs, a fita era rebobinada e levada & sala de maquina, onde era montada em uma unidade de fita. O operador ento, carregava um programa especial (0 antepassado do sistema operacional de hoje), que lia o primeiro job da fita e execulava. A safda era gravada em uma segunda fita em ver de ser impressa. Depois que cada job acabava, 0 sist ma operacional automaticamente lia o préximo job da fita ecomecava a executd-lo. Quando o lote inteiro estava com pleto, o operador removia as fitas de entrada e saida, subs- titu‘a a fita de entrada pelo proximo lote e levava a fit de saida para um 1401 imprimir offline (i. e., ndo-conectaddo 0 computador principal). Acstrutura de um tipico job de entrada € mostrada 02 Figura 1-3. Ela comecava com um cartao $JOB, especifi- cando 0 tempo maximo de execuco em minutos, o n= ‘mero de conta a ser carregado e o nome do programador Entio, vinha um cartdo $FORTRAN, instruindo o sistema operacional a carregar o compilador FORTRAN da fita de sistema, o qual era seguido pelo programa a ser compilado €ento um cartdo SLOAD, orientando o sistema operacio~ nal a carregar o programa objeto recém-compilado. (Pro- gramas compilados freqitentemente eram escritos em fitas Virgens e tinham de ser carregados explicitamente.) Em seguida, vinha 0 cart&o SRUN, instruindo o sistema oper clonal @ executar 0 programa com os dados que o segui- am. Finalmente, 0 cartdo SEND mareava o fim dood: BS- Ses cartdes primitivos de controle foram os precussores das linguagens modernas de controle de jods e interpretadores de comando. Unidade de fita Leitora de cartoos nnn ) © Figura 1-2 Umsistema de loteprimitivo, (a) P O operador leva afi 1401 imprime a sada. rogramadores ta de entrada para 0 7094, (d) 0 7094 realiz: Grandes computadores de segunda geraco eram utili- zados principalmente para célculos cientiticos de engenha- ria, tal como resolver equagées diferenciais parciais, Eles em grande parte eram programados em FORTRAN e lin- guagem assembler. Sistemas operacionais tipicos eram 0 ENS (0 Fortran Monitor System) e 0 IBSYS, sistema ope- racional da IBM para 0 7094. 1.2.3 ATerceira Geracao (1965- 1980): CIs e Multiprogramacao No inicio da década de 60, a maioria dos fabricantes de computadores tinha duas linhas de produto distintas e to- talmente incompativeis. De um lado, havia os computado- tescientificos de grande escala, baseados em palavras, como i SISTEMAS OPERACIONAI, 2 Fita do Sistema 7094 @ ) 0 izem 0s cartbes parao 1401, (b) 0 1401 le 0 fobs ern lote nafita. (c) computagao, (e) 0 operador | fita de safta para o 1401. (f) 0 0 7094, que eram utilizados para c4lculos numéricos em Giéncia eem Engenharia. Por outro lado, havia os compu- tadores comerciais, baseados em caracteres, como 0 1401 que eram amplamente utilizados para classificar € para imprimir fitas para bancos e para companhias de seguro, Desenvolver e manter duas linhas completamente dife- rentes de produtos era uma proposta cara para os fabrican- tes. Além disso, muitos novos clientes necessitavam, inici- almente, de uma maquina pequena. Mais tarde cresciame queriam uma maquina maior que executasse todos os seus antigos programas, s6 que mais rapidamente. ATBM tentou resolver ambos esses problemas em uma tinica tacada introduzindo 0 System/360. 0 360 era uma sétie de maquinas compativeis 20 nivel de software que va- riavam desde a capacicade de um 1401 até um muito mais $LOAD Programa Fortran Figura 1-3 Aestrutura cde um tipico fob do FMS. 22 TANENBAUM & WOODHULL poderoso que 0 7094, As maquinas diferiam s6 no prego e no desempenho (memoria maxima, velocidade de proces: sador, ntimero de dispositivos de E/S permitidos, etc.), Como todas as maquinas tinham a mesma arquitetura e conjun to de instrugdes, programas escritos para uma maquina podiam executarem todas as outras, pelo menos na teoria, Além disso, 0 360 foi projetado para manipular céleulos tanto cientificos como comerciais, Assim, uma tinica fa: miflia de maquinas podia satisfazer as necessidades de to- dos clientes. Nos anos seguintes, a IBM Jangou sucessores compativeis com a linha 360, usando tecnologia mais modema, conhecidos como as séries 370, 4300, 3080 e 3090. 0 360 era a primeira linha importante de computado- res usando Circuitos Integrados (Cls) — de pequena esca- la —, proporcionando assim uma vantagem importante de prego/desempenlo sobre as maquinas de segunda gera- io, que eram baseadas em transistores como componen- tes, Ele foi um éxito imediato e a idéia de uma familia de computadores compativeis logo foi adotada por todos os outros fabricantes importantes. Os descendentes dessas mdquinas ainda esto em uso hoje em centros de compu- taco espalhados por af, mas seu uso est declinando rapi- damente, Amaior forga da idéia de “uma familia” era ao mesmo tempo sua maior fraqueza. A inteneo era que todo softwa- re, incluindo o sistema operacional, tinha de trabalhar em todos os modelos. Ele tinha de executar em sistemas pe- quenos, que freqiientemente apenas substitufam os 1401 para copiar cartes em fita, e em sistemas muito grandes, que freaiientemente substitufam os 7094 para fazer previ- so do tempo e outros cAlculos pesados. Ele tinha de ser bom em sistemas com poucos periféricos e em sistemas com muitos periféricos. Ele tinha de funcionar em ambientes comerciais e em ambientes cientificos. Acima de tudo, ele tinha de ser eficiente para todos esses diferentes usos. Nao havia como a IBM (ou qualquer outra pessoa) con- seguir escrever um software para atender a todos esses re- ‘quisitos contradit6rios. O resultado era um sistema opera- cional extraordinariamente complexo e grande, provavel- mente duas a trés ordens de magnitude maior que o FMS. Ele consistia em milhdes de linhas de linguagem assem- bler escritas por milhares de programadores com milhares ‘emilhares de bugs”, que necessitavam de um continuo flu- xo de novas versoes na tentativa de corrigi-los. Cada nova. verso corrigia alguns bugs e introduzia novos, ent2o 0 niimero de bugs provavelmente permanecia constante com ‘o tempo. Um dos projetistas do 0/360, Fred Brooks, posteriormen- te escreveu um livro incisivo e perspicaz (Brooks, 1975) descrevendo suas experiéncias com 0 0$/360, Embora seja impossivel resumir o livro aqui, basta dizer que a capa de T Birg: um erro na codificagdo ou na Iogica que faz com que programa no uncon comeamene ou que prod auton mostra uma hora de bestas pré-hist6ricas atotag de petrdleo, A capa do liveo de Silberseh, (1994) faz. uma comparagao semelhante Apesar do seu enorme tamanho e de seus problem, (03360 « 08 sistemas operacionais semelhantes de yr? geragio produzidos por outros fabricantes de compe’? realmente satisfizeram a maioria de seus clientes qu” velmente bem. Fles também popularizaram varias at cas-chave ausentes em sistemas operacionais de sepia, geragio, Provavelmente a mais importante destag en’ multiprogramagio. No 7094, quando 0 job atual fn, uuma pausa para esperar uma fita ou outra operacie a E/S completarse, a CPU simplesmente ficava desocupats até o término da operagao. Com céleulos cientifces que exigem intensamente a CPU, as operagies de E/S sao poy. co freqtientes, de modo que esse tempo desperdicado nip significative. Com processamento comercial de dados, tempo de espera de B/S freqiientemente pode ser 80 ou gore do tempo total. Entdo, algo devia ser feito para evitar tera CPU desocupada durante tanto tempo. ‘Asolugdo desenvolvida foi dividir a meméria em vésas partigoes, com um job diferente em cada particZo, como mostrado na Figura 1-4, Enquanto um job estava esperan- do uma operagiio de E/S completar-se, outro,job podia usar a CPU. Se um ntimero suficiente de jobs pudesse ser man- tido na meméria principal de uma vez, a CPU poderiaficar ocupada quase 100% do tempo. Ter miiltiplos jobs em me moria de uma vez requer hardware especial para evitarque um job prejudique outro, mas 0 360 e outros sistemas de terceira geracao estavam equipados com esse hardware Outro importante recurso apresentado nos sistemas operacionais de terceira geracdo era a capacidade de ler ‘jobs de cartdes para o disco logo que eles eram trazides para a sala de computador. Ent&o, sempre que um job em execugo acabava, o sistema operacional podia carregar uum novo ob do disco na partigao agora vazia eexecut-la Essa téenica & chamada spooling (de Simultaneous pheral Operation On Line — Operagao Periférica Simul- tanea On Line) e era também utilizada para saida. Como spooling, os 1401 nfo eram mais necessétios e acabava grande parte do trabalho de carregamento de fitas Embora os sistemas operacionais de terceira geragi? servissem bem para grandes cdlculos cientificas e para apli- cagdes comerciais com grande volume de processament® de dados, eles eram ainda basicamente sistemas de lot Muitos programadores sentiam falta das méquinas ep meira geragao quando tinham a maquina toda para algumas horas e, assim, podiam depurar seus progrsi™® Tapidamente. Com os sistemas de tereeira geragto, 0 po entre submeter um job e receber a safda era freqilen® mente de varias horas, entao uma tinica virgula malcele cada podia causar uma falha na compilacao e 0 pres" mador perdia metade de um dia Bsa necessidiade de tempo de resposta rapido pr © caminho para o compartilhamento de tempo variante da multiprogramagao na qual cada usu nha um terminal on-/ine, Em um sistema de tempo” 76 ( t ar um 0 ti gunda era a Lfazia g0 de upada 0S que 0 pou- no € dos, 0 190% artera varias como speran- liausar man iaficar em me- itar que. mas de ware. istemas e de ler trazidos job em carregar cutd-lo. us Peri- Simul Sistema peracional Figura 1-4 Um sisemade moti partthado, se 20 uswtioseetuavam logon” e 17 dle tavam pensando, conversando ou bebendo cal, a CPU tiaestar alocada para os sobs que requriam process, mento, Como as pessoas que depuram programas notmal- ‘mente utlizam comandos curtos (p. ex. compilar um pro ‘cedimento de cinco paginas) emvez de longos (p.ex, clas- sfiear um arquivo de um milhdo de regstos),o compu- tador pode oferecer servigo rapido e interativo para alguns usuarios e talvez também trabalhar com grandes taba- thosem lote em segundo plano quando CPU estédesocu- pada. Emborao primeira sistema de tempo compart séri (CTSS) tenhasido desenvolvido no M17 em ur 7054 especialmente modificado (Corbato et al, 196 parihamento de tempo nao se popilarizou realm (queanecessiria protegio de handwarese tonnassecomum Gurante a teroeira geraco. Depois do éxito do sistema CTSS, o MIT, a Bell Labs ea General Electric (na época, um importante febricante de computadores) decidiram dedicarse 20 desenvolvimento eum “computer tity’, umamiquina quesuporaria tentenas de usudrios de tempo comparilhaco simultine 65, Seu modelo era o sistema de dstibuigio de eletiida de — quando vocé precisa de energia elérica, basta im- plesmenteintroduzir um plugue na tomaca da parede dentro do possvel, oda a energia de que voeé precisa esta th isponivel, Os projetistas dese sistema, conhecido como Mocs (MULTiplexed information and Computing Ser tite — Servgo de Computagio e Informasao Multiplex: ds), vislumbraram uma mé4quina para oferecer enosme poder de eflculoa todos em Boston. Aidéia de que méay™ fnaSmuito mais poderosas do que seu GE-645 sesam T dias como computadores pessoais por alguns rnilhares de ‘d6laes 5630 anos mais tarde era pura fics cientilica na Warrenton sesso Ao espe egenememinocomee nav ce ay, ive cornuda de log (conde de nfo 4 Met Pes, ejay o eR Uy nese easo em ose de um evn 201° um eis empatacional aplamente dsp" SISTEMAS OPERACIONNS 23 Pu + 7) wii ogra ayo com is fobs em memvria Para encurar essa longa histria, 0 MULTICS introdu- 2u muita dias seminais na literatura sobre computado- res, mas consrutlo foi algo muito mais dificil do que o esperado, A Bell Labs retirou-edo projetoe General Eee ‘ric desistia completamente do negfcio de computadores Por fim, o NULTICS rodou suficientemente bem para ser tutlizado er um ambiente de produgdo no MIT e dais de outros lugares, mas oconceito de um computer utility virou tm flasco& medida que os pregos dos computadores despencaram. Ainda assim, o MULTICSteve uma influéneia enorme em sistenassubseqients. Ele édeserito em Cor bato. colaboradores, 1972, Corbato.e Vssoisiy, 1965, Da- leyeDennis, 1968, Organic, 1972, e Salzer, 1974 Outro importante desenvolvimento durante a terceira geragao foo crescimento fenomenal dos minicomputado- "es, comegando com 0 PDP-I da DEC em 1961. 0 PDP-1 tinha s6 4K de palaveas de 18 bits, mas a USS 120.000 por _miuina (menos que 5% do prego de um 7094) venderam como paozinho quente de padaria. Para ceria espécies de trabalhos nfo-numéticos, era quase tio ripido quanto os 7004 e deu origem a toda uma nova indstria, tendo sido rapidamente seguid por uma sie de outros PDP (mas, ‘a contrdrio da familia IBM, eram todos incompatives), culminando no PDP-1L Tim dos centstas de computaglo da Bell Labs que t nha trabalhado no projeto do NULTIS, Ken Thompson, obseqntementedesobriu um pequeno micracomp dorPDP-7 que ningueém estava usa ecomeyou a escre- ‘eruma versio simplificada monoususria doNULnCs. Ese Trabatho mais tarde desenvolveu-se no sistema operaio- nal UNI, que se tornou popular no mundo académico, entre rg do govemo e entre mut empresas iv hisria do UNEX foi bem contada em outros texts (. ex, Salus, 199). Basta dizer que como 0 cigo-fonte tae amnpament disponve, virasogani2agbesdesenvol- vata sis propias verses (incompatives), que levaram vers, Para tomas posiel escreer programas que Pal a empeuta em qualquer stra UN 0 IEEE deseo aura padtopara oUNTX charado POSIX, que mae ve us verses do UND agora suport. O Posi fing Um fi ace minima de chamadas de stem qs SNS ‘pavels com o UNIX dee suport alguns ou- con eas operacionalsagors tab suport In terface POSI 2% #£‘TANENBAUM 6 WOOD 1.2.4 A Quarta Geragio (1980-hoje): Computadores Pessoais © desenvolvimento dos circuitos LSI Large Scale Inte- ‘gration —integracaoem larga escala) chips contendo mi Thares de transistores por centimetro quadrado de silicio, foi o alvorecer da era do computador pessoal. Em termos, de arquitetura, tais computadores nao eram tao diferentes dos minicomputadores da classe PDP-11, mas, em termos de prego, certamente eram diferentes. Assim como 0 mini computador possibilitou que um departamento em uma empresa ou em uma universidade tivesse seu proprio com- putador, o microprocessador tomnou posstvel que uma pes Soa tivesse seu préprio computador pessoal. Os computa- ores pessoais mais poderosos utilizados em negécios, em universidades e em 6rga0s do governo normalmente sao chamadios de estagdes de trabalho, mas na realidade sto apenas computadores pessoais de maior porte, normalmen- te conectados por uma rede. A ampla disponibilidade do poder de computagio, es- pecialmente a computacio altamente interativa, normal- mente com excelentes graficos, levou 20 crescimento de uma importante industria de producio de software para computadores pessoais. Grande parte desse software tinha uma interface amigavel, ou seja, projetada para usuarios {quenaos6 ignoravam tudo sobre computadores como tam- bém no tinham nenhuma intencao de aprender. Essa era Certamente uma mudanca importante do 05/360, cuja lin- ‘Buagem de controle, JCL (ob Control Language —lingua- ‘Bem de controle de trabalhos), era tao complexa que livros “inteiros foram escritos sobre ela (p. ex., Cadow, 1970). ~__ Dois sistemas operacionais inicialmente dominaram a "cena do computador pessoal e da estacao de trabalho: 0 “MS-DOS da Microsoft ¢ UNIX. 0 MS-DOS era amplamente a lufram recursos mais avangados, in- lusive muitos tomados do UNIX. 0 sucessor da Microsoft ‘para 0 MS-DOS, 0 WINDOWS, originalmente rodava por cima do MS-DOS (i. e,, era mais como um shel! do que um siste- ‘ma operacional verdadeiro), mas, em 1995, foi lancada uma yersdo"'independente” do WINDOWS, o WINDOWS 95°, equipadas com um sistema operacional originalm jetado para minicomputadores, 0 Utx. Um desenvolvimento interess COU duran meados da década de 80 € 0 crescimento de redes de sy putadores pessoas executando sistemas operacionais yg rede ¢ sistemas operacionais distribuidos (Tazo, baum, 1995). Em um sistema operacional de rede, os ys, drios esta cientes da existéncia de miiltiplos computady res e podem conectar-se a mAquinas remotas e copiar a¢ guivos de uma maquina para outra. Cada maquina exe. cuta localmente o sistema operacional e tem seu préprig usuario local (ou usuarios) Os sistemas operacionais de rede nao so fundamen. talmente diferentes dos sistemas operacionais monoproces sador. Eles obviamente necessitam de uma interface de rede e de algum software de baixo nivel para controlé-la, assim como programas para permitir conexdes remotas e acessp a arquivos remotos. Entretanto, tais adigées no mudam essencialmente a estrutura do sistema operacional. Um sistema operacional distribufdo, ao contrétio, é aquele que aparece para seus ust4rios como um sistema monoprocessado tradicional, mesmo que realmente seja composto de miiltiplos processadores. Os usuarios nao sa bem onde seus programas esto sendo executados nem onde seus arquivos esto localizados; tudo isso deve ser manipu- lado de forma automatica e eficiente pelo sistema operaci- onal. Verdadeiros sistemas operacionais distribufdos reque- rem mais do que apenas adicionar uma pequena porgao de c6digo a um sistema operacional monoprocessado, por- que os sistemas centralizados e distribufdos diferem signi- ficativamente. Os sistemas distribuidos, por exemplo, com frequiéncia permitem que os aplicativos executem em véri- 0s processadores ao mesmo tempo; assim eles requerem um algoritmo de agendamento de processador mais com- plexo a fim de otimizar a quantidade de paralelismo. A demora de comunicagao dentro de uma rede segui- damente significa que esses (e outros) algoritmos devem executar com informagbes desatualizadas, incompletas ou até incorretas, Essa situagao é radicalmente diferente de ‘um sistema monoprocessado em que o sistema operacio- nal tem informagées completas sobre o estado do sistema nente pro, 1.2.5 AHistéria do MINIX Quando o UNIX era jovem (Versdo 6), 0 cédigo-fonte estava amplamente dispontvel, sob licenga da AT&T, ¢e"@ muito estudado. John Lions, da Universidade New South Wales, na Austrdlia, escreveu uma pequena brochura av descrevia sua operacdo, linha por linha (Lions, 1996). Fs publicacZo era utilizada (com permissao de AT&T) com? referéncia em muitos cursos universitdrios sobre sistem" operacionais. Quando a AT&T langou a Versdo 7, comegou-se a ceber que 0 UNIX era um produto comercial valioso,€ sim ela langou essa verso com uma licenga proibindo a¥° o cigo-fonte fosse estucado em cursos, py enc estas wes gredo de negécio, Mult ades tiveram de conformar-se em simplesina te Sime esto deUNNe ensinar so arr EN Acar Infelizmente, ensinars6 teoria deixa alu visto equivocada do que realmente um ssn ee anal Os temas tericos que normalmente so sient detalladamente em cursos eem livtossobresiennn racionais, como algoritmos de agendamento, naoaacnn, almente to importantes na prética. Os assuntosreaion terelevantes, como E/S ¢ sistemas de arquivos, geralmens so negligenciados, pois hd pouca teoria sobre eles, Para corrigir essa situaco, um dos autores deste livro (Tanenbaum) decidiu escrever um novo sistema operacio, naa partir dozero, que seria compativel com UNIX do ponto devista do usuario, mas completamente diferente intero mente, Por ndo usar sequer uma linha do cédigo da AT&T, esse sistema evita as restrigdes de licenciamento, assim ele pode ser utilizado para estudo individual ou em classe, Desta maneira, os leitores podem dissecar um sistema operacio- nal real para ver o que hd por dentro, assim como estudan. tes de Biologia dissecam ras em laboratério, O nome MINX significa mini-UNIX pois ele é 120 pequeno que mesmo um. no-especialista pode entender seu funcionamento, Além da vantagem de eliminar os problemas lega MINIX tem outra vantagem sobre o UNIX. Foi escrito uma década depois do UNIX e estruturado de maneira mais mo- dular. 0 sistema de arquivos do Mints, por exemplo, nao é absolutamente parte do sistema operacional, mas roda como um programa de usudrio. Qutra diferenca: enquan- 10 OUNIX foi projetado para ser eficiente, o MINIX o foi para serlegivel (se é que alguém pode falar de qualquer progra- ma.com centenas de paginas como sendo legivel). 0 codi- godo MINIX, por exemplo, tem milhares de comentarios. 0 MINIX originalmente foi projetado para ter compati- bilidade com a Versio 7 (V7) do UNIX, a qual era utilizada ‘como modelo por causa de sua simplicidade e elegncia As vezes, diz-se que a Verso 7 nao era s6 uma melhora em relagio a todos os seus antecessores, como também sobre todos seus sucessores, Com o advento do POSIX, 0 MINIXco- megou a desenvolver-se em dirego 40 novo padrao, mas ainda mantendo retrocompatibilidade com programas exis- lentes. Essa espécie de evolugdo é comum na indistria dos computadores, na medida em que nenhum fabricante ria Querer langar um sistema que nenhum de seus clientes pudesse utilizar sem passar por grandes adaptagoes, A a do do minix, descrita neste livro, ¢ baseada no padrao do Postx (diferente da versdo descrita na primeira edigdo, que ra baseada na V7), Como 0 UNIX, 0 MINIX fol escrito ma linguagem de Be sramacao Ce projetado para ser facilmente portado pa iq omputadores, A implementagao inical era pire 9 1BM PC, pois esse computador é mais amplamente U has Posteriormente, ele foi portado para computadores a , ‘Amiga, Macintosh e SPARC. Para manter-s fiel 4 filosofla A evitar por as Univers SISTEMAS OPERACIONAIS 25 “quanto menor, melhor eae tim disco riido, trazend0 preendente gee Tullos alunos (por mals que parega sur NbNtcnesele ue 'm meados da década de 80 quando 0 dad) hes 80s faldos ainda eram uma cara now tamer tt ue o Misi crscia em funcionalidade e sinanho, acabou chegando um momentoem que um dis Co rigido era necessario, mas fiel &filosofia do MINIX, uma Partigto de 30 megabytes ¢ suficiente, Em contraste, a Buns sistemas comerciais UNIX agora recomendam, pelo menos, uma parti¢fo de disco de 200MB como o minimo, Para o ususrio médio que utiliza um IBM PC, rodar 0 MINIK € semelhante a rodar 0 UNIX. Muitos dos programas bésicos, como cat, grep, Is, make, eo shell estio presentes executam as mesmas fungGes que seus correspondentes No UNIX. Como o sistema operacional em si, todos esses programas utilitétios foram reescritos completamente a partir do zero pelo autor e por seus alunos entre outras pessoas dedicadas, Ao longo deste livro, o stivtx serd utilizado como um’ exemplo. Mas a matoria dos comentarios sobre o MINIX, exceto aqueles sobre 0 eédigo em si, também aplica-se a0, UNIX, Multos deles também aplicam-se a outros sistemas ssa observago deve ser mantida em mente durante a lei- turado texto Como um paréntese, algumas palavras sobre o LINUX € seu relacionamento com 0 MINIX podem ser de interesse para alguns leitores, Logo depois que o MINIX fol langad um grupo de discussao da USENET fol eriado para discu lo, Bm algumas semanas 0 grupo tinha 40,000 assinantes, grande parte dos quais queria adicionar um grande ntime- 10 de novos recursos 0 MINIX para tornd-lo maior e me- Ihor (bem, pelo menos maior). Todos os dias, varias cente- nas deles ofereciam sugestées, idéias e pequenos trechos de c6digo. 0 autor do MINKE resistiu com exito a esse assalto por varios anos para manter 0 NINIx suficientemente pe- queno e limpo para os alunos entenderem-no, Gradual- mente, comegou a tomar-se evidente que ele realmente significava, Nesse ponto, um estudante finkandés, Linus Tor valds, decidiu escrever um clone do MINIX projetado para ser um sistema de produgto carregado de recursos, em vez de uma ferramenta educactonal. Assim nascia 0 LINUX, 0 MINIX of mente nao exi assim para alcance 1.3. CONCEITOS DE SISTEMA OPERACIONAL ‘A interface entre o sistema operacional e os progi de usudrio é definida pelo conjunto de “instrugdes estendi- das" que o sistema operacional proporciona, Essas instru- goes estendidas tradicionalmente foram conhecidas como ‘chamadas de sistema (sys/er calls), embora possam ser jmplementadas de varias maneiras hoje, Para realmente ‘entender o que os sistemas operacionais fazem, devemos ‘examinar essa interface bem de perto. As chamadas dispo- 26 TANENBAUM & WOODHULL niveis na interface variam de sistema operacional para sis tema operacional (embora os conceitos subjacentes ten dam a ser semelhantes). Assim, somos forgados a fazer uma escolha entre (1) generalidades vagas (sistemas operacionais tém chama das de sistema para ler arquivos”) e (2) algum sistema if ("0 MINIX tem uma chamada de sistema READ com tres pariimetros: um para especificar o arquivo, um para dizer onde os dados devem ser colocados ¢ um para indicar quantos bytes sero lidos") Bscolhemos a altima abordagem. Ela é mais tr ‘Sa, mas oferece uma visio melhor sobre o que os sistema ‘operacionais realmente fazem, Na Sega 1.4, veremos mais de perto as chamadas de sistema presentes tanto no UNIX ‘como no MINIX. Para simplificar, iremos referit-nos s6 a0 MINIX, mas as chamadas de sistema correspondentes do UNIX fo baseadas no POSIX na maioria dos casos. Antes de ex minarmos as chamadas de sistema reais, porém, vale a pena dar uma répida olhada no MINIX, para obter uma visto geral do queé um sistema operacional como um todo, Essa visio geral aplica-se igualmente bem ao UNIX. ‘As chamadas de sistema do miNtx dividem-se grosseira~ mente em duas categorias amplas: aquelas que lidam com processos e aquelas que lidam com o sistema de arquivos. Examinaremos agora cada uma delas separadamente. 1.3.1 Processos Um coneeito-chave no MINIX € em todos sistemas ope- racionais é 0 processo. Um processo € basicamente um programa em execucao, Associado com cada processo est seu espago de enderecamento, uma lista de locais da ‘mem hss demas psoas, Cadacampoten um bitpara acevo de eitura (read), um bitpara acesso de gravago (wrt) ¢ ‘cesso de execugio, Esses 3 bits sto cones: exemplo, 0 cédigo de protegio de arquivos umbit pa se dos como bits rwx. Por 28 TANENBAUM & WOODHULL Dirotérlo-ralz Alunos: oO csio1 csi05 Figura 1-6 ruxr-x-x significa que o proprietario pode ler, gravar ou ‘executar 0 arquivo, outros membros de grupo podem ler (ou executar (mas nao grava:) o arquivo e todas as demais ‘pessoas podem executar (mas nao ler ou gravar) o arqui- ¥o. Para um diretorio, x indica permiss4o de pesquisa. Um {ago significa que a permissao correspondente esté ausen- te. Antes de um arquivo poder ser lido ou gravado, ele deve ser aberto, momento em que as permissbes s20 verficadas Se 0 acesso for permitido, o sistema retorna um ntimero inteiro pequeno chamado descritor de arquivo para usar em operagbes subseqlientes. Se 0 acesso for proibido, um digo de erro é retornado. _ Outro conceito importante no MINIX é 0 sistema de ar- ae montados. Quase todos os computadores pessoais ém uma ou mais unidades de disquete onde os disquetes et inseridos e removidos, Para fornecer uma ma. nea limpa de lidar com essas m{dias removiveis (e tam. bém CD-ROMs, que sao também removiveis), 0 wvix per mite que o sistema de arquivos em um disquete seja unido 4 arvore principal. Considere a situagao da Figura 1-7(a) Bae ane oo. disco de RAM (disco simulado membria principal) contém o sistema . raizouprimario,eaunidade Qcontenan gone ontém um disquete que, Por Sua ver, contém outro sistema de arquivos, ee Prot, Brown, — ‘Arquivos: Faculdade Prof. Green. Prof. White 00 sosP cost11 Um sistema de arquivos para um departamento de uma universidade Entretanto, o sistema de arquivos na unidade 0 ndopode ser utilizado porque ndo ha como especificar nomes de caminho nele. 0 MINIX no permite que os nomes de cani nho tenham como prefixo um nome de unidade ou um niimero; isso seria precisamente o tipo de dependéncia de dispositivo que os sistemas operacionais deveriam elimi- nar. Em vez disso, a chamada de sistema MOUNT permite que 0 sistema de arquivos na unidade 0 seja anexado a9 sistema de arquivos raiz onde quer que o programa queirt que ele esteja. Na Figura 1-7(b), o sistema de arquivosn unidade 0 foi montado no diret6rio b, permitindo, assim, ‘acesso ans arquivos /b/x e/b/y. Seo diret6rio b contivese qualquer arquivo, esse nao seria acessivel enquanto a ul: dade 0 estivesse montada, uma vez que /b iria referitse® diret6rio-raiz da unidade 0, (Ser incapaz de acessat eS Arquivos no € tao sério quanto a principio pode pare 6s sistemas de arquivos quase sempre sao montados & diret6rios vazios.) Outro conceito importante no MINIX é 0 de argu especial, fornecido para fazer dispositivos de E/S Piet em arquivos. Assim, eles podem ser lids e gravados do as mesmas chamadas de sistema utilizadas pa" ara gtavar arquivos, Ha dois tipos de arquivos SP 1 Arquivos especiais de bloco ¢ arquivos esPet caractere. Os arquivos especiais de bloco s40

You might also like