Você está na página 1de 13

ESTADO DO RIO DE JANEIRO

PREFEITURA MUNICIPAL DE MACA


FUNDAO EDUCACIONAL DE MACA FUNEMAC

Prof. Irineu de Azevedo Sistemas Operacionais I Apostila 1 Conceitos Bsicos em Sistemas Operacionais
1- Introduo O que Sistema Operacional (SO)?

Conjunto de rotinas executado pelo processador, de forma semelhante aos programas do usurio. Controla e gerencia recursos do computador, como processadores, memrias e dispositivos de entrada/sada (E/S). Caractersticas interface entre usurio e computador.

Obs.: Sem o SO, o usurio para interagir com o computador deve conhecer o hardware em detalhes a fim de manipul-lo, tornando seu trabalho lento e passvel de erros. Diferenas entre SO e Aplicaes convencionais: execuo funo do fator tempo: SO rotinas executadas concorrentemente, de forma assncrona. Aplicaes Convencionais executadas linearmente, com incio, meio e fim.

2- Funes Bsicas So inmeras, porm podem ser resumidas em duas (veja explicao na figura a seguir): - Facilidade de acesso aos recursos do sistema. - Compartilhamento de recursos de forma organizada e protegida.

3- Mquina de Camadas (ou Nveis)

Considerando a figura acima, em (a) as aplicaes do usurio devem interagir diretamente com o hardware (nvel 0), pois no h SO. J em (b), tem-se dois nveis: o SO(1) e o hardware(0). A diviso possibilita viso modular e abstrata, chamada mquina virtual. O usurio interage com o SO e este manipula o hardware. como se o hardware no existisse para o usurio. Quando usurio trabalha numa camada, no precisa saber da existncia das outras acima ou abaixo.

Aplicaes Utilitrios Sistema Operacional Linguagem de Mquina Microprogramao Circuitos Eletrnicos Tabela 1: Mquina de Camadas Na realidade, um computador possui tantos nveis quantos necessrios a fim de adequar o usurio s diversas aplicaes suas (conforme tabela 1).

4- Histrico Evoluo dos SOs Divididas em dcadas aps a 2 Guerra Mundial (1940) evento que levou ao desenvolvimento de mquinas que pudessem acelerar procedimentos manuais realizados para fins militares. Logo, temos eventos pontuais antes de 1940, e aps referenciados em dcadas.

4.1- Antes de 1940... 1642 Matemtico francs Blaise Pascal inventa mquina de somar. 1673 Matemtico e filsofo alemo Gottfried Leibniz criou mquina capaz de somar e multiplicar, utilizando acumulador. 1820 Francs Charles Colmar inventa mquina capaz de executar as quatro operaes. 1822 Matemtico ingls Charles Babbage cria mquina para clculos de equaes polinomiais. Em 1833 evoluiu a idia para construo de mquina analtica, capaz de executar qualquer operao. Considerado pai do computador, pois seu invento abordava os conceitos UCP, memria, unidade de controle, dispositivos E/S Preocupao com o hardware. Ada Byron, aluna de Charles Babbage, era responsvel pela sequncia de instrues executadas pela mquina (software) considerada a primeira programadora da histria. 1854 Matemtico ingls George Boole cria a lgica booleana, base para o modelo de computao digital utilizada at hoje; ou seja, baseada no conceito de lgica binria. No final do sc. XIX, Herman Hollerith cria mecanismo utilizando cartes perfurados para acelerar o processamento do censo de 1890 nos EUA. Ele funda em 1826 a Tubulanting Machine Company, que se tornaria em 1924 a IBM

(International Business Machine). A utilizao de cartes perfurados perduraria grande parte do sc. XX. Na dec. 1930 surgem as primeiras tentativas reais de criar uma calculadora eletrnica. Em 1937 o matemtico ingls Alan Turing desenvolve a idia de Mquina Universal ou Mquina de Turing, capaz de executar qualquer seqncia de instrues (algoritmo). Apesar de terico, a Mquina de Turing criou a idia de processamento de smbolos, base da Cincia da Computao moderna.

4.2- Dc. 1940 Perodo em que acontece a 2 Guerra Mundial. Desenvolvimento de mquinas para fins blicos. 1946 1955 Construo do ENIAC, considerado o primeiro computador eletrnico e digital. Usado para clculos balsticos e posteriormente utilizado no projeto bomba de hidrognio. Possua 17 mil vlvulas, 10 mil capacitores, 70 mil resistores e pesava 30 toneladas. Demandava alto conhecimento em hardware, pois sua programao era feita em painis por 6 mil conectores, utilizando linguagem de mquina (Demandava dias para programao; porm, o clculo realizado em 24h manualmente era resolvido em cerca de 30s). Nesta fase, os computadores no possuam dispositivos de interface com o usurio (teclado e mouse) e o conceito SO s surgiria na dcada seguinte. 4.3- Dc. 1950 Uso de transistores em substituio s vlvulas e da memria magntica. O advento dos transistores permitiu aumento da velocidade e confiabilidade no processamento. J a memria magntica permitiu o acesso mais rpido aos dados, maior capacidade de armazenamento e computadores menores. At ento era utilizado sistema de fitas magnticas. Advento do processamento batch evitava ociosidade do processador. Conjunto de programas era submetido ao computador. Surge o primeiro SO chamado Monitor por sua simplicidade, desenvolvido em 1953 para computador IBM 701 e reescrito posteriormente para IBM 704. Surgimento das primeiras linguagens de programao de alto nvel, como FORTRAN, ALGOL e COBOL. o Programas deixaram de ter relao direta com o hardware dos computadores, facilitando e agilizando o desenvolvimento e manuteno de programas. Incorporao de rotinas para controle de E/S. No final desta dcada, o desenvolvimento do SO Atlas pela Universidade de Manchester, na Inglaterra, introduziu o conceito de memria virtual, usado at os dias de hoje, que implementava o esquema de paginao por demanda para transferir informaes da memria secundria para a principal.

4.4- Dc. 1960 Surgimento dos circuitos integrados permitiu a reduo de custos, difuso de sistemas computacionais e uso pelas empresas. Tambm ocorreu grande aumento no poder de processamento e diminuio no tamanho dos equipamentos. Inovaes em SO alcanados: o Multiprogramao permitiu que vrios programas compartilhassem a memria ao mesmo tempo e, quando um programa realizava uma operao de leitura ou gravao, o processador executava um outro programa. o Aumento de poder do processamento batch (graas ao advento de discos rgidos em substituio s fitas) em conjunto com a multiprogramao tornou os Sos mais rpidos e eficientes, pois permitiu carga dos programas na memria mais rpida e alterao na ordem de execuo das tarefas (at ento era sequencial). Obs.: Da ento, surge o conceito time-sharing (tempo compartilhado) cada programa pode utilizar o processador por pequenos intervalos de tempo. Benefcios: Possibilitou respostas mais rpidas por parte dos programas e facilitou o desenvolvimento e depurao dos programas por parte dos programadores. Isso tambm devido ao advento de teclado e terminal de vdeo (dispositivos E/S). o Multiprocessamento o SO suporta mltiplos processadores.Possibilitou a execuo de mais de um programa simultaneamente ou o mesmo programa por mais de um processador. 1969 Ken Thompson utilizou um PDP-7 (computador de pequeno porte da DEC Digital Equipment Corp.) para fazer sua prpria verso de SO, a ser conhecido como Unix, que possuiria os conceitos abordados. 4.5- Dc. 1970 Projetos de miniaturizao e barateamento de equipamentos: LSI (Large Scale Integration) e VLSI (Very Large Scale Integration). 1971 A Intel produz seu primeiro microprocessador, o Intel 4004, e trs anos depois o Intel 8080. Desenvolvimento de equipamentos com mltiplos processadores, com a introduo de processadores vetoriais e tcnicas de paralelismo. Difuso de redes distribudas (Wide rea Network - WANs) permitiu o acesso a outros sistemas de computao, independente de distncia geogrfica. Ento: o Foram desenvolvidos inmeros protocolos de redes, como DECnet e SNA, proprietrios da Digital e IBM respectivamente, e outros de domnio pblico, como NCP (predecessor do TCP/IP) e o X.25. o Surgem as primeiras redes locais (Local Area Network - LANs) interligando computadores restritos a pequenas reas. Concluso: Os SOs evoluram no controle do multiprocessamento, paralelismo e integrao aos softwares de rede. Surge em 1971 a linguagem de programao Pascal, pelo professor Niklaus Winth, voltada para ensino de tcnicas de programao.

1975 Dennis Ritchie desenvolve a linguagem C e, juntamente com Ken Thompson, porta o SO Unix para um computador PDP-11, antes concebido em Assembly. 4.6- Dc. 1980 1981 IBM entra no mercado de microcomputadores com o IBM PC (Personal Computer), criando a filosofia dos computadores pessoais. O primeiro PC usava o processador Intel 8088 de 16 bits e SO DOS (Disk Operation System) da Microsoft. Na rea dos mini e superminicomputadores ganham destaque os sistemas multiusurio, principalmente os compatveis com Unix, como por exemplo, o BSDBerkeley Software Distribution, desenvolvido na Universidade de Berkeley na Califrnia, que introduziu inmeros melhoramentos, merecendo destaque a criao do protocolo de rede TCP/IP (Transmission Control Protocol/Internet Protocol). Surgem as Workstations (Estaes de Trabalho) apesar de serem sistemas monousurio, so multitarefas (permitem a execuo de diversas tarefas concorrentemente). Destaque para Sun Microsystems (fundada em 1982), que lana as primeiras estaes RISC com o SO Sun OS e posteriormente Sun Solaris. Surgem os primeiros SOs comerciais que oferecem interface grfica, como o Microsoft Windows e o OS/2. O software de rede passa a estar fortemente relacionado ao SO, e surgem os SOs de rede, com destaque para a Novell Netware e o Microsoft LAN Manager. Entre 1982 1986, foi desenvolvido pelo NCE/UFRJ o SO PLURIX para computador PEGASUS, tambm construdo no NCE. Na dcada seguinte, o PLURIX transportado para linha de processadores Intel, originando o TROPIX, SO multiusurio e multitarefa, de filosofia Unix, de distribuio gratuita. 4.7- Dc. 1990 Dcada de grandes avanos em hardware, software e telecomunicaes, conseqncia da evoluo das aplicaes baseadas em sistemas especialistas, sistemas multimdia, Banco de Dados distribudos, Inteligncia Artificial e Redes Neurais, alm da grande necessidade de processamento e armazenamento de dados. Evoluo da microeletrnica: ULSI (Ultra Large Scale Integration) proporciona barateamento, reduo e aumento de velocidade e desempenho. Surgimento e evoluo da Internet: O protocolo TCP/IP passou a ser um padro no mercado. Logo, os fabricantes de SOs deveriam oferecer suporte. Obs.: Surgem tambm problemas de gerncia, segurana e desempenho. Incorporao de arquiteturas Cliente/Servidor em ambiente de redes locais e Internet sistemas dedicados: servidores Web, de correio, de arquivos e de banco de dados. Consolidao da interface grficaem SOs. 1991 Finlands Linus Torvalds comeou o desenvolvimento do Linux, com a colaborao de vrios programadores no desenvolvimento do Kernel, utilitrios e aplicativos. 1993 Lanado o Windows NT para servidores corporativos e computadores pessoais.

Obs.: Durante esta dcada, o MS-Windows NT e o Unix (HP-UX, IBM-AIX e Sun Solaris) consolidam-se como sistemas para ambientes corporativos. Amadurecimento e popularizao do software aberto. Com a evoluo da Internet, inmeros produtos foram disponibilizados/desenvolvidos para uso gratuito, como SOs (Linux), Banco de Dados (MySQL), servidores web (Apache), servidores de correio (Sendmail), etc. 4.8- Dc. 2000 Mudana radical na filosofia de projeto de computadores, a fim de aumentar a eficincia no atendimento da demanda cada vez maior de processamento: o SOs cada vez mais intuitivos e simples de serem utilizados. Novas interfaces usurio-mquina, como linguagens naturais, sons e imagens. o Melhor uso de arquiteturas paralelas, uso de sistemas em cluster (sistemas onde os computadores so agrupados de forma a oferecer servios como se fosse um nico sistema centralizado), permitem aumentar o desempenho e a escalabilidade das aplicaes. SOs proativos, ou seja, incorporam mecanismos automticos, como deteco e recuperao de erros. Processamento distribudo explorado nos SOs de forma que suas funes estejam espalhadas por vrios processadores atravs de redes locais e distribudas. Isso s possvel graas reduo de custos e aumento na taxa de transmisso de dados em redes de computadores. SOs passam a integrar diversos dispositivos como telefones celulares, handhelds e palmtops graas evoluo e consolidao de redes sem fio (wireless). Arquiteturas de processadores 64 bits: proporcionou aumento do espao de endereamento que permite melhor desempenho das aplicaes que manipulam grandes volumes de dados. SOs como MS Windows, Linux e outras verses Unix passam a oferecer suporte. Evoluo MS Windows a fim de unificar e incluir recursos, tanto para servidores quanto computadores pessoais: Win 2000, Win XP, Win 2003 e Win Vista. Linux torna-se SO padro de baixo custo, com inmeras distribuies no mercado. Comunidade software livre passa a utilizar o Linux e a desenvolver, como base, novas aplicaes gratuitas. 5- Tipos de SOs Como j visto, os tipos de SOs e sua evoluo esto relacionados diretamente coma a evoluo do hardware e das aplicaes por ele suportadas. A seguir sero abordados os diversos tipos de SOs e suas caractersticas, conforme o organograma a seguir.

5.1- Sistemas Monoprogramveis/Monotarefa Caracterizava os primeiros SOs por permitir que o processador, a memria e os perifricos permaneam exclusivamente dedicados execuo de um nico programa. Todos os recursos do sistema ficam dedicados a uma nica tarefa. Neste tipo de sistema, enquanto um programa aguarda por um evento, como a digitao de um dado, o processador permanece ocioso, sem realizar qualquer tipo de processamento. A memria subutilizada caso o programa no preencha totalmente, e os perifricos, como discos e impressoras, esto dedicados a um nico usurio, nem sempre utilizados de forma integral (veja a figura a seguir).

Comparado a outros sistemas, os sistemas monoprogramveis ou monotarefa so de simples implementao, no existindo muita preocupao com o problema decorrente do compartilhamento de recursos, como memria, processador e dispositivos de E/S. Os sistemas monoprogramveis apenas permitem uso de um usurio, ou seja, monousurio.

5.2- Sistemas Multiprogramveis/Multitarefa Os sistemas multiprogramveis ou multitarefa so uma evoluo dos sistemas monoprogramveis. Os recursos computacionais so compartilhados entre os diversos usurios e aplicaes. J os monoprogramveis, como j abordado, existe apenas um programa utilizando os recursos disponveis, nos multiprogramveis vrias aplicaes compartilham tais recursos disponveis. Nesse sistema, quando um programa espera por uma operao de leitura ou gravao em disco, outros programas podem estar sendo processados neste mesmo instante de tempo. Assim, observa-se o compartilhamento do processador e da memria. O SO se preocupa em gerenciar o acesso concorrente aos seus diversos recursos, como memria, processador e perifricos, de forma ordenada e protegida, entre os diversos programas (veja a figura a seguir).

Os sistemas multiprogramveis so mais complexos de serem implementados e mais eficientes que os monoprogramveis, pois permitem reduo de custos em funo da

possibilidade do compartilhamento dos diversos recursos entre as diferentes aplicaes e possibilitam na mdia a reduo de tempo na execuo das aplicaes. Em relao ao nmero de usurios que interagem com o SO simultaneamente, os sistemas multiprogramveis podem ser multiusurio ou monousurio. Geralmente, sistemas multiprogramveis monousurio so encontrados em computadores pessoais e estaes de trabalho, onde h apenas um nico usurio interagindo com o sistema. Neste caso, existe a possibilidade de execuo de diversas tarefas ao mesmo tempo, como edio de um texto, uma impresso e o acesso Internet. Sistemas multiprogramveis multiusurio so ambientes interativos que possibilitam diversos usurios conectarem-se ao sistema simultaneamente (Tabela 2).
Um usurio Dois ou mais usurios

Monoprogramao/Monotarefa Multiprogramao/Multitarefa

Monousurio Monousurio

N/A Multiusurio

Tabela 2: Sistemas x Usurios Os sistemas multiprogramveis ou multitarefa podem ser classificados pela forma com que suas aplicaes so gerenciadas, podendo ser divididas de acordo com o organograma a seguir. Alm disso, um SO pode suportar um ou mais desses tipos de processamento, dependendo de sua implementao.

5.2.1- Sistemas batch O processamento batch caracteriza-se por no exigir a interao do usurio com a aplicao. Todas as entradas e sadas de dados da aplicao so implementadas por algum tipo de memria secundria, geralmente arquivos em disco. 5.2.2- Sistemas de tempo compartilhado (time-sharing) Permitem que diversos programas sejam executados a partir da diviso do tempo do processador em pequenos intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo no seja suficiente para a concluso do programa, ele interrompido pelo sistema

operacional e substitudo por um outro, enquanto fica aguardando por uma nova fatia de tempo, at o seu trmino. 5.2.3- Sistemas de tempo real (real-time) So implementados de forma semelhante aos sistemas de tempo compartilhado, porm a diferena entre eles o tempo exigido no processamento das aplicaes. Nos sistemas de tempo real no existe a idia de fatia de tempo, implementada nos sistemas de tempo compartilhado. Um programa utiliza o processador o tempo que for necessrio ou at que aparea outro mais prioritrio. A importncia ou prioridade de execuo de um programa definida pela prpria aplicao e no pelo SO. 5.3- Sistemas com Mltiplos Processadores Caracterizam-se por possuir duas ou mais UCPs interligadas e trabalhando em conjunto, com a vantagem de permitir que vrios programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes e executadas simultaneamente por mais de um processador. Os sistemas com mltiplos processadores incorporam os mesmos princpios bsicos da multiprogramao, alm de outras vantagens e caractersticas especficas como: Escalabilidade capacidade de ampliar poder computacional do sistema apenas adicionando novos processadores. Em ambientes com um nico processador, caso haja problemas de desempenho, seria necessrio substituir todo o sistema por uma outra configurao com maior poder de processamento. Com a possibilidade de mltiplos processadores, basta acrescentar novos processadores configurao. Disponibilidade capacidade de manter o sistema em operao mesmo em casos de falhas. Se um dos processadores falhar, os outros podem assumir suas funes de maneira transparente aos usurios e suas aplicaes, embora com menor capacidade de computao.

Balanceamento de carga possibilidade em distribuir o processamento entre os diversos processadores a partir da carga de trabalho de cada processador, melhorando o desempenho do sistema como um todo.

Para o desenvolvimento de Sos com mltiplos processadores a forma de comunicao entre UCPs e o grau de compartilhamento da memria e dispositivos E/S. Logo, podem ser classificados como fortemente acoplados ou fracamente acoplados (conforme organograma a seguir).

A maior diferena entre os dois tipos de sistemas que nos sistemas fortemente acoplados, existe apenas uma memria principal sendo compartilhado por todos os outros processadores, e nos fracamente acoplados cada sistema tem sua prpria memria individual. Alm disso, a taxa de transferncia entre os processadores e memria em sistemas fortemente acoplados muito maior que nos fracamente acoplados. 5.3.1- Sistemas fortemente acoplados (tightly coupled). Existem vrios processadores compartilhando uma nica memria fsica e dispositivos E/S, sendo gerenciados por parte do SO. Em funo disso, tambm so conhecidos como multiprocessadores.

5.3.2- Sistemas fracamente acoplados (loosely coupled) Caracterizam-se por possuir dois ou mais sistemas computacionais conectados atravs de linhas de comunicao. Cada sistema funciona de forma independente, possuindo seu prprio SO e gerenciando seus prprios recursos, como UCP, memria e dispositivos E/S. Em funo disso, tambm so conhecidos como multicomputadores.

Com base no grau de integrao dos hosts da rede, pode-se dividir os SOs fracamente acoplados em SOs de rede (SOR) e sistemas distribudos. Os SORs permitem que o host compartilhe seus recursos, como impressora ou diretrio, com os demais hosts da rede. Exemplo disso so as redes locais. Enquanto os SORs os usurios tm conhecimento dos hosts e seus servios na forma individual, nos sistemas distribudos o SO esconde detalhes dos hosts individuais e passa a trat-los como um conjunto nico, como se fosse um sistema fortemente acoplado; permitem, por exemplo, que uma aplicao seja dividida em partes e distribuda pelos hosts na rede, mas para o usurio como se fosse um sistema centralizado e no existisse a rede. Tem-se como exemplo para sistemas distribudos os clusters.

Exerccios:
1- Como seria utilizar um computador sem SO? Quais so suas principais funes? 2- Explique o conceito de mquina virtual. Qual a grande vantagem em se utilizar este conceito? 3- Defina o conceito de mquina de camadas. 4- Quais os tipos de Sos existentes? Diferencie e explique cada um deles. 5- Quais as diferenas entre sistemas monoprogramveis e sistemas multiprogramveis? Qual mais vantajoso e por qu? 6- Um sistema monousurio pode ser um sistema multiprogramvel? D um exemplo. 7- Cite e explique os sistemas multiprogramveis. 8- O que so sistemas com mltiplos processadores e quais as vantagens em utilizlos? 9- Considerando os sistemas com mltiplos processadores, explique e diferencie sistemas fortemente acoplados e sistemas fracamente acoplados. 10- Considerando os sistemas fracamente acoplados, explique e diferencie SOs de rede e SOs distribudos.

Você também pode gostar