Sunteți pe pagina 1din 39

SISTEMAS OPERACIONAIS

Sumrio: 1.Conceitos Bsicos .......................................................................................................... 4 1.1 Introduo ............................................................................................................... 4 1.1.1 Facilidade de acesso aos recursos do sistema .................................................. 4 1.1.2 Compartilhamento de recursos de forma organizada e protegida .................... 5 1.2Mquinas de Nveis ................................................................................................. 6 1.3 Histrico.................................................................................................................. 7 1.3.1 Primeira Fase (1945-1955) ............................................................................... 7 1.3.2 Segunda Fase (1956-1965) ............................................................................... 8 1.3.3 Terceira Fase (1966-1980) ............................................................................. 10 1.3.4 Quarta Fase (1981-1990)................................................................................ 11 1.3.5Quinta Fase (1991-2000 )................................................................................ 12 2.Conceitos de Hardware e Software ............................................................................. 15 2.1 Hardware ............................................................................................................... 15 2.1.1 Unidade Central de Processalmento ............................................................... 15 2.1.2 Clock .............................................................................................................. 16 2.1.3 Registradores .................................................................................................. 16 2.1.4Memria Principal ........................................................................................... 17 2.1.5 Memria Cache .............................................................................................. 18 2.1.6 Memria Secundria ...................................................................................... 19 2.1.7 Dispositivos de Entrada e Sada ..................................................................... 20 2.1.8 Barramento ..................................................................................................... 21 2.1.9 Pipelining ....................................................................................................... 22 2.1.10 Ativao e desativao do Sistema .............................................................. 22 2.1.11 Arquiteturas RISC e CISC ........................................................................... 23 2.2 Software ................................................................................................................ 24 2.2.1 Tradutor .......................................................................................................... 24 2.2.2 Compilador ..................................................................................................... 25 2.2.3 Interpretador ................................................................................................... 25 2.2.4Linker .............................................................................................................. 25 2.2.5 Loader............................................................................................................. 25 2.2.6 Depurador ....................................................................................................... 26
1

2.2.7 Linguagem de Controle .................................................................................. 26 2.2.8 Interpretador de Comandos (Shell) ................................................................ 26 2.2.9 Linguagem de Mquina.................................................................................. 26 2.2.10 Microprogramao ....................................................................................... 26 2.2.11 Processos ...................................................................................................... 27 2.2.12 Chamadas de Sistema ................................................................................... 27 2.2.13 Arquivos ....................................................................................................... 27 3.Tipos de Sistemas Operacionais .................................................................................. 28 3.1Introduo .............................................................................................................. 28 3.2 Sistemas Monoprogramveis/Monotarefa ............................................................ 28 3.3 Sistemas Multiprogramveis/Multitarefa ............................................................. 29 3.3.1Sistemas Batch ................................................................................................ 30 3.3.2Sistemas de Tempo Compartilhado................................................................. 30 3.3.3Sistemas de Tempo Real ................................................................................. 31 3.4Sistemas com Mltiplos Processadores ................................................................. 31 3.5Sistemas Fortemente Acoplados ............................................................................ 32 3.5.1Sistemas Assimtricos ..................................................................................... 33 3.5.2Sistemas Simtricos......................................................................................... 34 3.5.3Multiprocessamento ........................................................................................ 35 3.5.4Organizao Funcional .................................................................................... 35 3.6Sistemas Fracamente Acoplados ........................................................................... 35 3.6.1Sistemas Operacionais de Rede....................................................................... 36 3.6.2Sistemas Operacionais distribudos................................................................. 37 3.6.3Organizao Funcional .................................................................................... 38 4.Sistemas Multiprogramveis ....................................................................................... 40 4.1Interrupo e Exceo ............................................................................................ 42 4.2Operaes de Entrada/Sada .................................................................................. 44 4.3Buffering ................................................................................................................ 46 4.4Spooling ................................................................................................................. 47 4.5Reentrncia ............................................................................................................ 48 4.6Proteo do Sistema ............................................................................................... 48 5.Estrutura dos Sistemas Operacionais ........................................................................... 49 5.1System Calls .......................................................................................................... 50

5.2Modos de Acesso ................................................................................................... 51 5.3Tipos de Estrutura de Sistemas Operacionais ........................................................ 52 5.3.1Sistemas Monolticos ...................................................................................... 52 5.3.2Sistemas em Camadas ..................................................................................... 53 5.3.3Mquinas Virtuais ........................................................................................... 54 5.3.4Modelo Cliente Servidor ................................................................................. 55 6.Bibliografia .................................................................................................................. 67

1.Conceitos Bsicos
1.1 Introduo Antes de comearmos a estudar os conceitos e os principais componentes de um sistema operacional, devemos saber primeiramente quais so suas funes bsicas. Por mais complexo que possa parecer, um sistema operacional e apenas um conjunto de rotinas executado pelo processador, da mesma forma que qualquer outro programa.. Sua principal funo e controlar o funcionamento do computador, como um gerente dos diversos recursos disponveis no sistema. O nome sistema operacional no e nico para designar esse conjunto de programas. Nomes como monitor, executivo, supervisor ou controlador possuem, normalmente, o mesmo significado. Um sistema operacional possui inmeras funes e resumimos essas funes, basicamente, em duas, descritas a seguir: 1.1.1 Facilidade de acesso aos recursos do sistema Um sistema de computaco, ao possui, normalmente, diversos componentes, como terminais, impressoras, discos e fitas. Quando utilizamos um desses dispositivos, no nos preocupamos com a maneira como e realizada esta comunicao e os inmeros detalhes envolvidos. Para a maioria de ns uma operao cotidiana, como, por exemplo, a leitura de um arquivo em disquete, pode parecer simples. Na realidade, existe um conjunto de rotinas especficas, controladas pelo sistema operacional, responsvel por acionar a cabea, a de leitura e gravao da unidade de disco, posicionar na trilha e setor onde esto os dados, transferir os dados do disco para a memria e, finalmente, informar ao programa a chegada dos dados. O sistema operacional, ento, serve de interface entre o usurios e os recursos diponveis no sistema, tornando esta comunicao transparente e permitindo ao usurio um trabalho mais eficiente e com menores chances de erros (Figura 1). Este conceito de ambiente simulado, criado pelo sistema operacional, e denominado mquina virtual (virtual machine) e est presente, de alguma forma, na maioria dos sistemas atuais. comum pensar-se que compiladores, linkers, bibliotecas, depuradores e outras ferramentas fazem parte do sistema operacional, mas, na realidade, estas facilidades so apenas utilitrios, destinados a ajudar a interao do usurio com o computador.
4

1.1.2 Compartilhamento de recursos de forma organizada e protegida Quando pensamos em sistemas multiusurio, onde vrios usurios podem estar compartilhando os mesmos recursos, como, por exemplo, memria e discos, necessrio que todos tenham oportunidade de ter acesso a esses recursos, de forma que um usurio no interfira no trabalho do outro. Se imaginarmos, por exemplo, que uma impressora possa ser utilizada por vrios usurios do sistema, dever existir algum controle para impedir que a impresso de um usurio interrompa a impresso de outro. Novamente, o sistema operacional responsvel por permitir o acesso concorrente a esse e a outros recursos, de forma organizada e protegida, dando ao usurio a impresso de ser o nico a utiliz-los. O compartilhamento de recursos permite, tambm, a diminuio de custos, na medida em que mais de um usurio possa utilizar as mesmas facilidades concorrentemente, como discos, impressoras, linhas de comunicao etc. No apenas em sistemas multiusurio que o sistema operacional imporntate. Se pensarmos que um computador pessoal nos permite executar vrias tarefas, como imprimir um documento, copiar um arquivo pela internet ou processar uma planilha, o sistema operacional deve ser capaz de controlar a execuo concorrentes de todas essas tarefas.

Figura 1 - Viso do sistema operacional como interface entre os usurios e os recursos do sistema. 1.2 Mquinas de Nveis Um computador, visto somente como um gabinete composto de circuitos eletrnicos, cabos e fontes de alimentao (hardware), no tem nenhuma utilidade. atravs de programas (software) que o computador consegue armazenar dados em discos, imprimir relatrios, gerar grficos, realizar clculos, entre outras funes. O hardware o responsvel pela execuo das instrues de um programa, com a finalidade de se realizar alguma tarefa. Uma operao efetuada pelo software pode ser implementada em hardware, enquanto uma instruo executada pelo hardware pode ser simulada via software. Esta deciso fica a cargo do projetista do computador em funo de aspectos como custo, confiabilidade e desempenho. Tanto o hardware como o software so logicamente equivalentes, interagindo de uma forma nica para o usurio. Nos primeiros computadores, a programao era realizada em painis, atravs de fios, exigindo um grande conhecimento do hardware e de sua linguagem de mquina. Isso era uma grande dificuldade para os programadores da poca. A soluo para esse problema foi o surgimento do sistema operacional, que tornou a interao entre usurio e computador mais simples, confivel e eficiente. A partir desse acontecimento, no existia mais a necessidade de o programador se envolver com a complexidade do hardware para poder trabalhar; ou seja, a parte fsica do computador tornou-se transparente para o usurio.

Figura 2 - Viso modular do computador pelo usurio. Partindo desse princpio, podemos considerar o computador como uma mquina de nveis ou camadas, onde inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel 1 (sistema operacional). Desta forma, o usurio pode enxergar a mquina como sendo apenas o sistema operacional, ou seja, como se o hardware no existisse. Esta viso modular e abstrata chamada mquina virtual.
6

Na realidade, um computador no possui apenas dois nveis, e sim tantos nveis quanto forem necessrios para adequar o usurio s suas diversas aplicaes. Quando o usurio est trabalhando em um desse nveis, no necessita da existncia das outras camadas, acima ou abaixo de sua mquina virtual. Atualmente, a maioria dos computadores possui a estrutura mostrada na Figura, podendo conter mais ou menos camadas. A linguagem utilizada em cada um desses nveis diferente, variando da mais elementar (baixo nvel) mais sofisticada (alto nvel).

Figura 3 - Mquina de nveis. 1.3 Histrico A evoluo dos sistemas operacionais est, em grande parte, relacionada ao desenvolvimento de equipamentos cada vez mais velozes, compactos e de custos baixos, e necessidade de aproveitamento e controle desses recursos. Neste histrico dividimos essa evoluo em fases, once destacamos, em cada uma, sues principals caractersticas de hardware, software, interao com o sistema e aspectos de conectividade. 1.3.1 Primeira Fase (1945-1955) No incio da Segunda Guerra Mundial, surgiram os primeiros computadores digitais, formados por milhares de vlvulas, que ocupavam areas enormes, sendo de funcionamento lento e duvidoso.

O ENIAC (Electronic Numerical Integrator and Computer) foi o primeiro computador digital de propsito geral. Criado pare a realizao de clculos balsticos, sue estrutura possua 18 mil vlvulas, 10 mil capacitores, 70 mil resistores e pesava 30 toneladas. Quando em operao, consumia cerca de 140 quilowatts e era capaz de realizar 5 mil adies por segundo. Para trabalhar nessas mquinas, era necessrio conhecer profundamente o funcionamento do hardware, pods a programao era feita em painis, atravs de fios, utilizando linguagem de mquina. Nessa fase, ainda no existia o conceito de sistema operacional. Outros computadores foram construdos nessa mesma poca, como o EDVAC (Electronic Discrete Variable Automatic Computer) e o IAS (Princeton Institute for Advanced Studies), mas eram utilizados, praticamente, apenas nas universidades e nos rgos militares. Com o desenvolvimento da indstria de computadores, muitas empresas foram fundadas ou investiram no setor, como a Sperry e a IBM, o que levou a criao dos primeiros computadores pare aplicaes comerciais. A primeira mquina fabricada com esse propsito e bem-sucedida foi o UNIVAC I (Universal Automatic Computer), criado especialmente pare o censo americano de 1950. 1.3.2 Segunda Fase (1956-1965) A criao do transistor e das memrias magnticas contribui pare o enorme avano dos computadores da poca. O transistor permitiu o aumento da velocidade e da confiabilidade do processamento, e as memrias magnticas permitiram o acesso mais rpido aos dados, major capacidade de armazenamento e computadores menores. Com o surgimento das primeiras linguagens de programao, como Assembly e Fortran, os programas deixaram de ser feitos diretamente no hardware, o que facilitou enormemente o processo de desenvolvimento de programas. J no era mais possvel conviver com tantos procedimentos manuais como os anteriores, que no permitiam o uso eficiente do computador e de seus recursos. Os primeiros sistemas operacionais surgiram, justamente, pare tentar automatizar as tarefas manuais

Figura 4 - Processamento batch Inicialmente, os programas passaram a ser perfurados em cartes, que, submetidos a uma leitora, eram gravados em uma fita de entrada (Figura 4a). A fita, ento, era lida pelo computador, que executava um programa de cada vez, gravando o resultado do processamento em uma fita de sada (Figura 4b). Ao terminar de todos os programas, a fita de sada era lida e impressa (Figura 4c). A esse tipo de processamento, onde um lote (batch) de programas era submetido ao computador, deu-se o nome de processamento batch. Pode no parecer um avano, mas anteriormente os programas eram submetidos pelo operador, um a um, fazendo com que o processador ficasse ocioso entre a execuo, ao de um programa e outro. Com o processamento batch, um grupo de programas era submetido de uma s vez, o que diminua o tempo existente entre a execuo dos programas, permitindo, assim, melhor uso do processador. Os sistemas operacionais passaram a ter seu prprio conjunto de rotinas pare operaes de entrada/sada (Input/Output Control SystemIOCS), que veio facilitar bastante o processo de programao. O IOCS eliminou a necessidade de os programadores desenvolverem sues prprias rotinas de leitura/gravao especficas para cada dispositivo perifrico. Essa facilidade de comunicao criou o conceito de independncia de dispositivos. Importantes avanos, em nvel de hardware, foram implementados no final dessa fase, principalmente na linha 7094 da IBM. Entre eles, destacamos o conceito de canal, que
9

veio permitir a transferncia de dados entre dispositivos de entrada/sada e memria principal de forma independente da UCP. Ainda nessa fase, destacamos os sistemas FMS (Fortran Monitor System) e IBSYS. 1.3.3 Terceira Fase (1966-1980) Atravs dos circuitos integrados (CIs) e, posteriormente, dos microprocessadores, foi possvel viabilizar e difundir o uso de sistemas computacionais por empresas, devido a diminuio de seus custos de aquisio. Alm disso, houve grande aumento do poder de processamento e diminuio no tamanho dos equipamentos. Com base nessa nova tecnologia, a IBM lanou em 1964 a Srie 360. Esse lanamento causou uma revoluo na indstria de informtica, pois introduzia uma linha (famlia) de computadores pequena, poderosa e, principalmente, compatvel. Isso permitiu que uma empresa adquirisse um modelo mais simples e barato e, conforme sues necessidades, mudasse pare modelos com mais recursos, sem comprometer sues aplicaes j existentes. Para essa srie, foi desenvolvido o sistema operacional OS/360, que tentava atender todos os tipos de aplicaes e perifricos. Apesar de todos os problemas desse equipamento e de seu tamanho fsico, a Srie 360 introduziu novas tcnicas, utilizadas ate hoje. Na mesma poca, a DEC lanou a linha PDP-8, tambm revolucionria, pois apresentava uma linha de computadores de porte pequeno e baixo custo, se comparada aos mainframes ate ento comercializados, criando um novo mercado, o de minicomputadores. A evoluo dos processadores de entrada/sada permitiu que, enquanto um programa esperasse por uma operao de leitura/gravao, o processador executasse um outro programa. Para tal, a memria foi dividida em parties, onde cada programa esperava sue vez pare ser processado. A essa tcnica de compartilhamento da memria principal e processador deu-se o nome de multiprogramao. Com a substituio das fitas por discos no processo de submisso dos programas, o processamento batch tornou-se mais eficiente, pois permitia a alterao na ordem de execuo das tarefas, ate ento puramente seqencial. A essa tcnica de submisso de programas chamou-se spooling, que, mais tarde, tambm viria a ser utilizada no processo de impresso. Os sistemas operacionais, mesmo implementando o processamento batch e a multiprogramao, ao, ainda estavam limitados a processamentos que no exigiam comunicao com o usurio. Para permitir a interao rpida entre o usurio e o computador, foram adicionados terminais de vdeo e teclado (interao on-line). A multiprogramao evoluiu preocupada em oferecer aos usurios tempos de respostas razoveis e uma interface cada vez mais amigvel. Para tal, cada programa na memria
10

utilizaria o processador em pequenos intervalos de tempo. A esse sistema de diviso de tempo do processador chamou-se time-sharing (tempo compartilhado). Outro fato importante nessa fase foi o surgimento do sistema operacional Unix (1969). Concebido inicialmente em um minicomputador PDP-7, baseado no sistema MULTICS (Multiplexed Information and Computing Service), o Unix foi depois rescrito em uma linguagem de alto nvel (linguagem C), tornando-se conhecido por sue portabilidade. No final dessa fase, com a evoluo dos microprocessadores, surgiram os primeiros microcomputadores, muito mais baratos que qualquer um dos computadores ate ento comercializados. Entre eles, destacamos os micros de 8 bits da Apple e o sistema operacional CP/M (Control Program Monitor).

1.3.4 Quarta Fase (1981-1990) A integrao em large escala (Large Scale Integration-LSI) e a integrao em muito large escala (Very Large Scale Integration-VLSI) levaram adiante o projeto de miniaturizao e barateamento dos equipamentos. Os mini e superminicomputadores se firmaram no mercado e os microcomputadores ganharam um grande impulso. Nesse quadro surgiram os microcomputadores PC (Personal Computer) de 16 bits da IBM e o sistema operacional DOS (Disk Operation System), criando a filosofia dos computadores pessoais. Na rea dos minis e superminicomputadores ganharam impulso os sistemas multiusurio, com destaque pare os sistemas compatveis com o Unix (Unix-like) e o VMS (Virtual Memory System) da DEC. Surgem as estaes de trabalho (workstations) que, apesar de monousurias, permitem que se executem diversas tarefas concorrentemente, criando o conceito de multitarefa. No final dos anos 80, os computadores tiveram um grande avano, decorrente de aplicaes que exigiam um enorme volume de clculos. Para acelerar o processamento, foram adicionados outros processadores, exigindo dos sistemas operacionais novos mecanismos de controle e sincronismo. Com o multiprocessamento, foi possvel a execuo de mais de um programa simultaneamente, ou ate de um mesmo programa por mais de um processador. Alm de equipamentos com mltiplos processadores, foram introduzidos processadores vetoriais e tcnicas de paralelismo em diferentes nveis, fazendo com que os computadores se tornassem ainda mais poderosos. As redes distribudas (Wide Area Network- WANs) se difundiram por todo o mundo, permitindo o acesso a outros sistemas de computao, independentemente de estado, pas e, ate mesmo, fabricante. Nesse contexto so desenvolvidos inmeros protocolos de rede, alguns proprietrios, como o DECnet da DEC e o SNA (System Network Architecture) da IBM, e outros de domnio pblico, como o TCP/IP e o CCITT X.25. Surgem as primeiras redes locals (Local Area NetworkLANs) interligando pequenas
11

reas. Os softwares de rede passaram a estar intimamente relacionados ao sistema operacional e surgem os sistemas operacionais de rede . 1.3.5 Quinta Fase (1991-2000) Grandes avanos em termos de hardware, software e telecomunicaes podem ser esperados ate o final deste sculo. Essas mudanas so conseqncia da evoluo das aplicaes, que necessitam cada vez mais de capacidade de processamento e armazenamento de dados. Sistemas especialistas, sistemas multimdia, banco de dados distribudos, inteligncia artificial e redes neurais so apenas alguns exemplos da necessidade cada vez major. A evoluo da microeletrnica permitir o desenvolvimento de processadores e memrias cada vez mais velozes e baratos, Alm de dispositivos menores, mais rpidos e com major capacidade de armazenamento. Os componentes baseados em tecnologia VLSI (Very Large Scale Integration) evoluem rapidamente pare o ULSI (Ultra Large Scale Integration). Os computadores da prxima gerao tm de ser muito mais eficientes que os atuais, pare atender o volume cada vez major de processamento. Para isso, est ocorrendo uma mudana radical na filosofia de projeto de computadores. Arquiteturas paralelas, baseadas em organizaes de multiprocessadores no convencionais, j se encontram em desenvolvimento em varies universidades e centros de pesquisa do mundo. A evoluo do hardware encadear modificaes profundas nas disciplines de programao pare fazer melhor uso das arquiteturas paralelas. Assim, novas linguagens e metodologias de programao concorrentes esto sendo desenvolvidas, em particular, fazendo uso extensivo de inteligncia artificial e CAD (Computer-Aided Design). O conceito de processamento distribudo ser explorado nos sistemas operacionais, de forma que sues funes estejam espalhadas por vrios processadores atravs de redes de computadores. Isso s ser possvel devido a reduo, ao dos custos de comunicao e ao aumento na taxa de transmisso de dados. A arquitetura cliente-servidor aplicada basicamente a redes locais passe a ser oferecida em redes distribudas, permitindo que qualquer pessoa tenha acesso a todo tipo de informao, independentemente de once esteja armazenada. Problemas de segurana, gerncia e desempenho tornam-se fatores importantes relacionados ao sistema operacional e a rede. A dcada de 90 foi definitiva pare a consolidao dos sistemas operacionais baseados em interfaces grficas. Apesar da evoluo da interface, a forma de interao com os
12

computadores sofrer, talvez, uma das modificaes mais visveis. Novas interfaces homem-mquina sero utilizadas, como linguagens naturais, sons e imagens, fazendo essa comunicao mais inteligente, simples e eficiente. Os conceitos e implementaes s vistos em sistemas considerados de grande porte esto sendo introduzidos na maioria dos sistemas desktop, como na famlia Windows da Microsoft, no Unix e no OS/2 da IBM.

13

Tabela 1 - Caractersticas de cada fase

14

2.Conceitos de Hardware e Software


2.1 Hardware Um computador digital constitudo por um conjunto de componentes interligados, composto por processadores, memria principal e dispositivos fsicos (hardware). Esses dispositivos manipulam dados na forma digital, o que proporciona uma maneira confivel de representao. Todos os componentes de um computador so agrupados em trs subsistemas bsicos: unidade central de processamento (UCP), memria principal, e dispositivos de entrada e sada (Figura 5. Estes subsistemas, tambm chamados de unidades funcionais, esto presentes em todo computador digital, apesar de suas implementaes variarem nas diferentes arquiteturas existentes e comercializadas pelos diversos fabricantes de computadores. Neste item descrevemos os conceitos bsicos dos principais componentes desses sistema. 2.1.1 Unidade Central de Processalmento A unidade central de processamento (UCP), ou processador, tem como funo principal unificar todo o sistema, controlando as funes realizadas por cada unidade funcional. AUCP tambm responsvel pela execuo de todos os programas do sistema, que obrigatoriamente devero estar armazenados na memria principal. Um programa composto por uma srie de instrues que so executadas sequencialmente pela UCP, atravs de operaes bsicas como somar, subtrair, comparar e movimentar dados. Desta forma, a UCP busca cada instruo na memria principal e a interpreta para sua execuo.

Figura 5 - Unidades funcionais de um computador


15

A especificao da velocidade de processamento de uma UCP determinada pelo nmero de instrues que o processador executa por unidade de tempo, normalmente segundo. Alguns fabricantes utilizam unidade processamento prprias, j que no existe uma padronizao, sendo as mais comuns o MIPS (milhes de instrues por segundo) e o MFLOPS/GFLOPS (milhes/bilhes de instrues de ponto flutuante por segundo). A mostra alguns processadores e suas respectivas velocidades de processamento.
Famlia do Processador Velocidade de Processamento Intel 80386 5 MIPS Intel 80486 20 MIPS Item Pentium 100 MIPS Item Pentium Pro 250 MIPS

Tabela 2 - Velocidade de processamento de alguns computadores. 2.1.2 Clock O clock e um dispositivo, localizado na UCP, que gera pulsos eltricos sncronos em um determinado intervalo de tempo (sinal de clock). A quantidade de vezes que este pulso se repete em um segundo define a freqncia do clock. O sinal de clock e utilizado pela unidade de controle pare a execuo, das instrues. A freqncia do clock de um processador e medida em Hertz (Hz), que significa o nmero de pulsos eltricos gerados em um segundo de tempo. A freqncia tambm pode ser utilizada como unidade de desempenho entre diferentes processadores, pods quanto major a freqncia, mais instrues podem ser executadas pela UCP em um mesmo intervalo de tempo. 2.1.3 Registradores Os registradores so dispositivos de alta velocidade, localizados fisicamente na UCP, pare armazenamento temporrio de dados. O nmero de registradores varia em funo da arquitetura de cada processador. Alguns registradores so de uso especfico e tm propsitos especiais, enquanto outros so ditos de uso geral. Entre os registradores de uso especfico, merecem destaque: 1. contador de instrues (CI) ou program counter (PC) e o registrador responsvel pelo armazenamento do endereo da prxima instruo que a UCP dever executar. Toda vez que a UCP execute uma instruo, o PC e atualizado com um novo endereo; 2. o apontador da pilha (AP) ou stack pointer (SP) e o registrador que contmemriam o endereo de memria do topo da pilha, que e a estrutura de dados onde o sistema mantm informaes sobre tarefas que estavam sendo processadas e tiveram que ser interrompidas por algum motivo;

16

3. o registrador de estado, tambm chamado em alguns equipamentos de program status word (PSW), e o registrador responsvel por armazenar informaes sobre a execuo do programa, como a ocorrncia de carry e overflow. A cada instruo executada, o registrador de estado e alterado conforme o resultado gerado pela instruo. 2.1.4 Memria Principal A memria principal, tambm conhecida como memria primria ou real, e a parte do computador onde so armazenados instrues e dados. Ela e composta por unidades de acesso chamadas clulas, sendo cada clula composta por um determinado nmero de bits (binary digit). O bit e a unidade bsica de memria, podendo assumir o valor 0 ou 1. Atualmente, a grande maioria dos computadores utilize o byte (8 bits) como tamanho de clula, porm encontramos computadores de geraes passadas com clulas de 16, 32 e ate mesmo 60 bits. Podemos concluir, ento, que a memria, e formada por um conjunto de clulas, onde cada clula possui um determinado nmero de bits (Figura 6).

Figura 6 - Memria principal O acesso ao contedo de uma clula e realizado atravs da especificao, ao de um nmero chamado endereo. O endereo e uma referncia nica, que podemos fazer a uma clula de memria Quando um programa deseja ler ou escrever um dado em uma clula, deve primeiro especificar qual o endereo de memria desejado, pare depois realizar a operao. A especificao, ao do endereo, o e realizada atravs de um registrador denominado registrador de endereo de memria (memory register address - MAR). atravs do contedo deste registrador, a unidade de controle sabe qual a clula de memria que
17

ser acessada. Outro registrador usado em operaes com a memria e o registrador de dados da memria (memory buffer registerMBR) . Este registrador e utilizado pare guardar o contedo de uma ou mais clulas de memria aps uma operao de leitura, ou pare guardar o dado que ser transferido pare a memria em uma operao de gravao. Este ciclo de leitura e gravao e mostrado na Figura 7.
Operao de Leitura 1. A UCP armazena no MAR, o endereo da clula a ser lida. 2. A UCP gera um sinal de controle pare a memria principal, indicando que uma operao de leitura deve ser realizada. 3. 0 contedo da(s) clula(s), identificada(s) pelo endereo contido no MAR, e transferido pare o MBR. Operao de gravao 1. A UCP armazena no MAR, o endereo da clula que ser gravada. 2. A UCP armazena no MBR, a informao que dever ser gravada. 3. A UCP gera um sinal de controle pare a memria principal, indicando que uma operao de gravao deve ser realizada. 4. A informao contida no MBR e transferida pare a clula de memria endereada pelo MAR.

Figura 7 - Ciclo de leitura e gravao A capacidade de uma memria e limitada pelo tamanho do MAR. No caso de o registrador possuir n bits, a memria principal poder no mximo enderear 2n clulas, isto , do endereo 0 ao 2n-1. A memria principal pode ser classificada em funo de sue volatilidade, que e a capacidade de a memria preservar o seu contedo mesmo sem uma fonte de alimentao, ao ativa. As memrias chamadas volteis se caracterizam por poderem ser lidas ou gravadas, como o tipo RAM (random access memory), que constitui quase que a totalidade da memria principal de um computador. O outro tipo, chamado de no voltil, no permite alterar ou apagar seu contedo. Este tipo de memria conhecido como ROM (read-only memory), j vem pr-gravado do fabricante, geralmente com algum programa, e seu contedo e preservado mesmo quando a alimentao e desligada. Uma variao da ROM e a EPROM (erasable programmable ROM), once podemos gravar e regravar a memria atravs exposio de luz ultravioleta por um dispositivo especial. Atualmente, uma srie de memrias com diferentes caractersticas, existe pare diversas aplicaes, como a EEPROM, EAROM, EAPROM, NOVRAM entre outras. 2.1.5 Memria Cache A MEMRIA cache e uma memria voltil de alta velocidade. O tempo de acesso a um dado nela contido e muito menor que se o mesmo estivesse na memria principal. Toda vez que o processador fez referncia a um dado armazenado na memria principal, ele "olha" antes na memria cache. Se o processador encontrar o dado na cache, no ha
18

necessidade do acesso a memria principal; do contrrio, o acesso e obrigatrio Neste ltimo cave, o processador, a partir do dado referenciado, transfere um bloco de dados pare a cache. O tempo de transferncia entre as memrias e pequeno, se comparado com o aumento do desempenho obtido com a utilizao, ao desse tipo de memria. Apesar de ser uma memria de acesso rpido, seu uso e limitado em fun,cao do alto custo. A Tabela 2.2 mostra a relao entre as memrias cache e principal em alguns equipamentos.
HP 9000/855S IBM 3090/600S VAX 9000/440 Tamanho mximo Memria Principal 256 Mb 512 Mb 512 Mb Tamanho mximo Memria Cache 256 Kb 128 Kb por UCP 128 Kb por UCP

Tabela 3 - Relao entre as memrias cache e principal 2.1.6 Memria Secundria A memria secundria e um meio permanente (no voltil) de armazenamento de programas e dados. Enquanto a memria principal precisa estar sempre energizada pare manter sues informaes, a memria secundria no precise de alimentao. O acesso a memria secundria e lento, se comparado com o acesso a memria cache ou principal, porm seu custo e baixo e sua capacidade de armazenamento e bem superior a da memria principal. Enquanto a unidade de acesso a memria secundria e da ordem de milissegundos, o acesso a memria principal e de nanossegundos. Podemos citar, como exemplos de memrias secundrias, a fita magntica, o disco magntico e o disco ptico. A Figura 8 mostra a relao entre os diversos tipos de dispositivos de armazenamento apresentados, comparando custo, velocidade e capacidade de armazenamento.

19

Figura 8 - Relao entre os diversos tipos de dispositivos de armazenamento.

2.1.7 Dispositivos de Entrada e Sada Os dispositivos de entrada e sada (E/S) so utilizados pare permitir a comunicao entre o computador e o mundo externo. Atravs desses dispositivos, a UCP e a memria principal podem se comunicar, tanto com usurios quanto com memrias secundrias, a fim de realizar qualquer tipo de processamento. Os dispositivos de E/S podem ser divididos em duas categorias: os que so utilizados como memria secundria e os que servem pare a interface homem-mquina. Os dispositivos utilizados como memria secundria, como discos e fitas magnticas se caracterizam por armazenar de trs a quatro vezes mais informaes que a memria principal. Seu custo e relativamente baixo, porm o tempo de acesso a memria secundria e de quatro a seis vezes major que o acesso a memria principal. Alguns dispositivos servem pare a comunicao, ao homem-mquina, como teclados, monitores de vdeo, impressoras, plotters, entre outros. Com o avano no desenvolvimento de aplicaes de uso cada vez mais geral, procure-se aumentar a facilidade de comunicao entre o usurio e o computador. A implementao, de interfaces mais amigveis permite, cada vez mais, que pessoas sem conhecimento especfico sobre informtica possam utilizar o computador. Scanner, caneta tica, mouse, dispositivos sensveis a voz humana e ao calor do corpo humano so alguns exemplos desses tipos de dispositivos.
20

2.1.8 Barramento A UCP, a memria principal e os dispositivos de E/S so interligados atravs de linhas de comunicao denominadas barramentos, barras ou vias. Um barramento (bus) e um conjunto de fios paralelos (linhas de transmisso), onde trafegam informaes, como dados, endereos ou Sinais de controle. Ele pode ser classificado como unidirecional (transmisso em um s sentido) ou bidirecional (transmisso em ambos os sentidos). Na ligao entre UCP e memria principal, podemos observar que trs barramentos so necessrios pare que a comunicao seja realizada. O barramento de dados transmite informaes entre a memria principal e a UCP. O barramento de endereos e utilizado pela UCP pare especificar o endereo, o da clula de memria que ser acessada. Finalmente , o barramento de controle e por onde a UCP envia os pulsos de controle relativos as operaes de leitura e gravao. Na Fig. 9, podemos observar dois tipos de configuraces, onde UCP, memria principal e dispositivos de E/S so interligados de maneira diferente.

Figura 9 - Configuraes de sistema

21

2.1.9 Pipelining O conceito de processamento pipeline se assemelha muito a uma linha de montagem, onde uma tarefa e dividida em uma seqncia de subtarefas, executadas em diferentes estgios, dentro da linha de produo Da mesma forma que em uma linha de montagem, a execuo de uma instruo pode ser dividida em subtarefas, como as fases de busca da instruo e dos operandos, execuo e armazenamento dos resultados. O processador, atravs de suas vrias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instruo se encontra na fase de execuo possa estar na fase de busca simultaneamente. A tcnica de pipelining pode ser empregada em sistemas com um ou mais processadores, em diversos nveis, e tem sido a tcnica de paralelismo mais utilizada para maior desempenho dos sistemas de computadores.

Figura 10- Pipeline 2.1.10 Ativao e desativao do Sistema O sistema operacional essencial para o funcionamento de um computador. Sem ele, grande parte dos recursos do sistema no estaria disponvel, ou se apresentaria de uma forma complexa para utilizao pelos usurios. Toda vez que um computador ligado, necessrio que o sistema operacional seja carregado da memria secundria para a memria principal. Esse processo, denominado ativao do sistema (boot), realizado por um programa localizado em um posio especifca do disco (disco block), geralmente o primeiro bloco. O procedimento de
22

ativao varia em funo do equipamento, podendo ser realizado atravs do teclado, de um terminal ou por manipulao de chaves de um painel (Figura 11).

Figura 11 - Ativao do sistema Alm da carga do sistema operacional, a ativao do sistema tambm consiste na execuo de arquivos de inicializao. Nestes arquivos so especificados procedimentos de inicializao de hardware e software especficos para cada ambiente. Na maioria dos sistemas, tambm existe o processo de desativao (shutdown). Este procedimento permite que as aplicaes e componentes do sistema sejam desativados de forma ordenada. Garantindo a integridade do sistema.

2.1.11 Arquiteturas RISC e CISC Um processador com arquitetura RISC (Reduced Instruction Set Computer) se caracteriza por possuir poucas instrues de mquina, em geral bastante simples, que so executadas diretamente pelo hardware. Na sua maioria, estas instrues no acessam a memria principal, trabalhando principalmente com registradores que, neste tipo de processador, se apresentam em grande nmero. Estas caractersticas, alm de ajudarem as instrues serem executadas em alta velocidade, facilitam a implementao do pipeline. Como exemplos de processaores RISC podemos citar o Sparc (SUN), RS6000 (IBM), PA-RISC (HP), Alpha AXP (DEC) e Rx000 (MIPS). Os processadores CISC (Complex Instruction Set computers) j possuem instrues complexas que so interpretadas por microprogramas. O nmero de registradores pequeno e qualquer instruo pode referenciar a memria principal. Neste tipo de arquitetura, a implementao do pipeline mais difcil. So exemplos de processadores CISC o VAX (DEC), 80x86 e o Pentium (Intel), e o 68xx (Motorola).

23

2.2 Software O Hardware por si s no tem a menor utilidade. Para torn-lo til existe um conjunto de programas, utilizado como interface entre as necessidades do usurio e as capacidades do hardware. A utilizao de softwares adequados s diversas tarefas e aplicaes (conceitos de camadas) torna o trabalho do usurios muito mais simples e eficiente. 2.2.1 Tradutor Nos sistemas operacionais antigos, o ato de programar era bastante complicado, j que o programador deveria possuir conhecimento do hardware e programar em painis atravs de fios. Esses programas eram desenvolvidos em linguagem de mquina e carregados diretamente na memria principal para execuo. Com o surgimento das primeiras linguagens de montagem (assembly languages) e das linguagens de alto nvel, o programador deixou de se preocupar com muitos aspectos pertinentes ao hardware, como em qual regio da memria o programa deveria ser carregado ou quais endereos de memria seriam reservados para as variveis. A utilizao dessas linguagens facilitou a construo de programas em muitos aspectos. Desse modo, um programa poderia ser escrito de uma forma bem documentada e com facilidades para realizar alteraes. O tradutor, pelo tipo de linguagem de programao utilizada, pode ser chamado de montador ou compilador (Figura 12).

Figura 12- Tradutor

24

2.2.2 Compilador o utilitrio responsvel por gerar, a partir de um programa escrito em uma linguagem de alto nvel, um programa em linguagem de mquina no executvel. As linguagens de alto nvel, como pascal, fortran, cobol no tem nenhuma relao direta com a mquina, ficando essa preocupao exclusivamente com o compilador. 2.2.3 Interpretador O interpretador considerado um tradutor que no gera cdigo-objeto. A partir de um programa fonte, escrito em linguagem de alto nvel, o interpretador, no momento da execuo do programa, traduz cada instruo e a executa em seguida. 2.2.4 Linker O linker (ligador), tambm chamado de linkagem, o utilitrio responsvel por gerar, a partir de um ou mais mdulos-objetos, um nico programa executvel.

Figura 13 - Linker. 2.2.5 Loader Tambm chamado carregador o utilitrio responsvel por colocar fisicamente na memria um programa para execuo. O procedimento de carga varia com o cdigo gerado pelo linker e, em funo deste, o loader classificado como sendo do tipo absoluto ou relocvel. Tipo absoluto - o loader s necessita conhecer o endereo de memria inicial e o tamanho do mdulo para realizar o carregamento. Ento, ele transfere o programa da memria secundria para a memria principal e inicia sua execuo. No caso de cdigo relocvel, o programa pode ser carregado em qualquer posio de memria, e o loader responsvel pela relocao no momento do carregamento.
25

2.2.6 Depurador O desenvolvimento de programas est sujeito a erros de lgica, independentemente de metodologias utilizadas pelo programador. A depurao um dos estgios desse desenvolvimento, e a utilizao de ferramentas adequadas essencial para acelerar o processo de correo de programas. O depurador (debbuger) o utilitrio que permite ao usurio controlar a execuo de um programa a fim de detectar erros na sua estrutura. Este utilitrio oferece ao usurio recursos como: Acompanhar a execuo de um programa instruo por instruo; Possibilitar a alterao e visualizao do contedo de variveis; Implementar pontos de parada dentro do programa (break-point), de forma que, durante a execuo, o programa pare nesses pontos; Especificar que, toda vez que o contedo de uma varivel for modificado, o programa envie uma mensagem (watchpoint). 2.2.7 Linguagem de Controle Tambm denominada a linguagem de comando, e a forma mais direta de um usurio se comunicar com o sistema operacional. Esta linguagem oferecida por cada sistema operacional para que, atravs de comandos simples, o usurio possa ter acesso a rotinas especificas do sistema. 2.2.8 Interpretador de Comandos (Shell) O sistema operacional o cdigo executor de chamadas de sistema. Os editores, compiladores, montadores, ligadores e interpretadores de comando no fazem parte do sistema operacional, apesar de serem softwares muito importantes e muito teis. Esses comandos quando digitados pelos usurios, so interpretados pelo Shell, verifica sua sintaxe, envia mensagens de erro e faz chamadas a rotinas do sistema. Dessa forma o usurio dispe de uma interface interativa com o sistema operacional, para realizar tarefas como acessar uma arquivo em disco ou consultar um diretrio. 2.2.9 Linguagem de Mquina A linguagem de mquina de um computador a linguagem de programao que o processador realmente consegue entender. Cada processador possui um conjunto nico de instrues de mquina, definido pelo prprio fabricante. As instrues especificam detalhes, como registradores, modos de endereamento e tipos de dados, que caracterizam um processador e suas potencialidades. 2.2.10 Microprogramao

26

Um programa em linguagem de mquina executado diretamente pelo hardware em processadores de arquitetura RISC, porm em mquinas CISC isto no acontece. Neste caso, como podemos observar na Figura 3, entre os nveis de linguagem de mquina e do hardware, existem ainda o da microprogramao. Os microprogramas definem a linguagem de mquina de cada computador. Apesar de cada computador possui nveis de microprogramao diferentes, existem muitas semelhanas nessa camada se compararmos os diversos equipamentos. Uma mquina possui, aproximadamente 25 microintrues bsicas, que so interpretadas pelos circuitos eletrnicos. 2.2.11 Processos Um conceito chave da teoria dos sistemas operacionais o conceito de processo. Um processo basicamente um programa em execuo, sendo constitudo do cdigo executvel, dos dados referentes ao cdigo. 2.2.12 Chamadas de Sistema Os programas de usurio solicitam servios do sistema operacional atravs da execuo de chamadas de sistema. A cada chamada corresponde um procedimento de uma biblioteca de procedimentos que o programa do usurio pode chamar. 2.2.13 Arquivos Arquivos so mecanismos de abstrao que fornece uma forma de armazenar recuperar informaes em disco. Isto deve ser feito de uma forma que mantenha o usurio isolado dos detalhes a respeito de como as informaes so armazenadas, e de como os discos efetivamente trabalha.

27

3.Tipos de Sistemas Operacionais


3.1 Introduo Tipos de sistemas operacionais e sua evoluo esto intimamente relacionados com a evoluo do hardware e das aplicaes por ele suportadas. Muitos termos inicialmente introduzidos para definir conceitos e tcnicas forma substitudos por outros, na tentativa de refletir uma nova maneira de intera ou ou processamento. Isto fica muito claro quanto tratamos da unidade de execuo do processador. Inicialmente, os termos programa ou job eram os mais utilizados, depois surgiu o conceito de processo e subprocesso e, mais recentemente, os conceitos de tarefa e de thread. A evoluo dos sistemas operacionais para computadores pessoais e estaes de trabalho popularizou vrios conceitos e tcnicas, antes s conhecidos em ambientes de grande porte. A nomenclatura, no entanto, no se manteve a mesma. Surgiram novos termos para conceitos j conhecidos, que foram apenas adaptados para uma nova realidade.

Figura 14 - Tipos de sistemas operacionais 3.2 Sistemas Monoprogramveis/Monotarefa Os primeiros sistemas operacionais eram tipicamente voltados para a execuo de um nico programa (job). Qualquer outro programa, para ser executado, deveria aguardar o trmino do programa corrente. Os sistemas monoprogramveis, como vieram a ser conhecidos, se caracterizam por permitir que o processador, a memria e os perifricos permaneam exclusivamente dedicados execuo de um nico programa.

28

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 subtilizada caso o programa no a preencha totalmente, e os perifricos, como discos e impressoras, esto dedicados a um nico usurio. Comparados a outros sistemas, os sistemas monoprogramveis/monotarefa so de simples implementao, no existindo muita preocupao com problemas de proteo.

Figura 15 - Sistemas monoprogramveis/monotarefa 3.3 Sistemas Multiprogramveis/Multitarefa Os Sistemas Multiprogramveis, que vieram a substituir os monoprogramveis, so mais complexos e eficientes. Enquanto em sistemas monoprogramveis existe apenas um programa utilizando seus diversos recursos, nos multiprogramveis vrios programas dividem esses mesmos recursos. As vantagens do uso de sistemas multiprogramveis so o aumento da produtividade dos seus usurios e a reduo de custos, a partir do compartilhamento dos diversos recursos do sistema. A partir do nmero de usurios que interagem com o sistema, podemos classificar os sistemas multiprogramveis como monousurio e multiusurio. O conceito de sistemas multiprogramvel est tipicamente associado aos mainframes e minicomputadores, onde existe a idia do sistema sendo utilizado por vrios usurios (multiusurio). No mundo dos computadores pessoais e estaes de trabalho, apesar de existir apenas um nico usurio interagindo como sistema (monousurio), possvel que ele execute diversas tarefas concorrentemente ou mesmo simultaneamente. Os sistemas multitarefa, como tambm so chamados, se caracterizam por permitir que o
29

usurio edite um texto, imprima um arquivo, copie um arquivo pela rede e calcule uma planilha. Abaixo esto relacionados os tipos de sistemas em funo do nmero de usurios
Um usurio Monousurio Monousurio Dois ou mais usurios N/A Multiusurio

Monoprogramao / Monotarefa Multiprogramao / Multitarefa

Tabela 4 - Sistemas X Usurios Os sistemas multiprogramveis/multitarefa podem ser classificados pela forma com que suas aplicaes so gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real. Um sistema operacional pode suportar um ou mais desses tipos de processamento.

Figura 16 - Tipos de sistemas multiprogramveis/multitarefa 3.3.1 Sistemas Batch Os sistemas batch (lote) foram os primeiros sistemas multiprogramveis a serem implementados e caracterizam-se por terem seus programas, quando submetidos, armazenados em disco ou fita, onde esperam para ser executados seqencialmente. Normalmente, os programas, tambm chamados de jobs, no exigem interao com os usurios, lendo e gravando dados em discos e fitas. Alguns exemplos de aplicaes originalmente processadas em batch so compilaes, linkedies, sorts, backups e todas aquelas onde no necessria a interao com o usurio. 3.3.2 Sistemas de Tempo Compartilhado Os sistemas de tempo compartilhado (time-sharing) permitem a interao dos usurios com o sistema, basicamente atravs de terminais que incluem vdeo, teclado e mouse. Dessa forma, o usurio pode interagir diretamente com o sistema em cada fase do desenvolvimento de suas aplicaes e, se preciso, modific-las imediatamente. Devido a esse tipo de interao, os sistemas de tempo compartilhado tambm ficaram conhecidos como sistemas on-line.

30

Para cada usurio, o sistema operacional aloca uma fatia de tempo (time-slice) do processador. Caso o programa do usurio no esteja concludo nesse intervalo de tempo, ele substitudo por um de outro usurio, e fica esperando por uma nova fatia de tempo. No s o processador compartilhado nesse sistema, mas tambm a memria e os perifricos, como discos e impressoras. O sistema cria para o usurio um ambiente de trabalho prprio, dando a impresso de que todo o sistema est dedicado, exclusivamente, a ele. Sistemas de tempo compartilhado so de implementao complexa, porm, se levado em considerao o tempo de desenvolvimento e depurao de uma aplicao, aumentam consideravelmente a produtividade dos seus usurios, reduzindo os custos de utilizao do sistema. 3.3.3 Sistemas de Tempo Real Os sistemas de tempo real (real time) so bem semelhantes em implementao aos sistemas de tempo compartilhado. A maior diferena o tempo de resposta exigido no processamento das aplicaes. Enquanto em sistemas de tempo compartilhado o tempo de resposta pode variar sem comprometer as aplicaes em execuo, nos sistemas de tempo real os tempos de resposta devem estar dentro de limites rgidos, que devem ser obedecidos, caso contrrio podero ocorrer problemas irreparveis. No existe idia de fatia de tempo, um programa detm o processador o tempo que for necessrio, ou at que aparea outro prioritrio em funo de sua importncia no sistema. Esta importncia ou prioridade de execuo controlada pela prpria aplicao e no pelo sistema operacional, como nos sistemas de tempo compartilhado. Esses sistemas, normalmente, esto presentes em controle de processos, como no monitoramento de refinarias de petrleo, controle de trfego areo, de usinas termeltricas e nucleares, ou em qualquer aplicao onde o tempo de resposta fator fundamental. 3.4 Sistemas com Mltiplos Processadores Os sistemas com mltiplos processadores caracterizam-se por possuir duas ou mais UCPS interligadas, trabalhando em conjunto. Um fator-chave no desenvolvimento de sistemas operacionais com mltiplos processadores a forma de comunicao entre as UCPs e o grau de compartilhamento da memria e dos dispositivos de entrada e sada. Em funo desses fatores, podemos classificar os sistemas em fortemente acoplados ou fracamente acoplados.

31

Figura 17 - Sistemas com mltiplos processadores. 3.5 Sistemas Fortemente Acoplados Nos sistemas fortemente acoplados (tightly coupled) existem vrios processadores compartilhando uma nica memria e gerenciados por apenas um sistema operacional. Mltiplos processadores permitem que vrios programas sejam executados ao mesmo tempo, ou que um programa seja dividido em subprogramas, para execuo simultnea em mais de um processador. Dessa forma, possvel ampliar a capacidade de computao de um sistema, adicionando-se apenas novos processadores, com um custo muito inferior aquisio de outros computadores. Com o multiprocessamento, novos problemas de concorrncia foram introduzidos, pois vrios processadores podem estar acessando as mesmas reas de memria. Alm disso, existe o problema de organizar de forma eficiente os processadores, a memria e os perifricos. Uma conseqncia do multiprocessamento foi o surgimento dos computadores voltados, principalmente, para processamento cientfico, aplicado, por exemplo, ao desenvolvimento aeroespacial, prospeo de petrleo, simulaes, processamento de imagens e CAD. A princpio qualquer aplicao que faa uso intensivo da UCP ser beneficiada pelo acrscimo de processadores ao sistema.

32

Figura 18 - Sistemas fortemente acoplados

Figura 19 - Sistemas fracamente acoplados 3.5.1 Sistemas Assimtricos Na organizao assimtrica ou mestre/escravo(master/slave), somente um processador (mestre) pode executar servios do sistema operacional, como, por exemplo, realizar operaes de entrada/sada. Sempre que um processador do tipo escravo precisar realizar uma operao de entrada/sada, ter de requisitar o servio ao processador mestre. Dependendo do volume de operaes de entrada/sada destinadas aos processadores escravos, o sistema pode se tornar ineficiente, devido ao elevado nmero de interrupes que devero ser tratadas pelo mestre.

33

Figura 20 - Sistemas assimtricos. Se o processador falhar, todo o sistema ficar incapaz de continuar o processamento. Neste caso, o sistema deve ser reconfigurado, fazendo um dos processadores escravos assumir o papel do mestre. Mesmo sendo uma organizao simples de implementar e quase um extenso dos sistemas multiprogramveis, esse tipo de sistema no utiliza eficientemente o hardware, devido assimetria dos processadores, que no realizam as mesmas funes. 3.5.2Sistemas Simtricos O multiprocessamento simtrico (Simmetric Multiprocessing- SMP), ao contrrio da organizao mestre/escravo, implementa a simetria dos processadores, ou seja, todos os processadores realizam as mesmas funes. Apenas algumas poucas funes ficam a cargo de um nico processador, como, por exemplo, a inicialiazao (boot) do sistema.

Figura 21 - Sistemas simtricos.

34

Como vrios processadores esto utilizando, independentemente, a mesma memria e o mesmo sistema operacional, natural a ocorrncia de acessos simultneos s mesmas reas de memria. A soluo desses conflitos fica a cargo do hardware e do sistema operacional. No processamento simtrico, um programa pode ser executado por qualquer processador, inclusive por vrios processadores ao mesmo tempo (paralelismo). Alm disso, quando um processador falha, o sistema continua em funcionamento sem nenhuma interferncia manual, porm com menor capacidade de computao. Os sistemas simtricos so mais poderosos que os assimtricos, permitindo um melhor balanceamento do processamento e das operaes de entrada/sada, apesar de sua implementao ser bastante complexa. 3.5.3 Multiprocessamento Desde sua criao, os computadores tm sido vistos como mquinas seqncias, onde a UCP executa a instrues de um programa, uma de cada vez. Na realidade, essa viso no totalmente verdadeira, pois, em nvel de hardware, mltiplos sinais esto ativos simultaneamente, o que pode ser entendido como uma forma de paralelismo. Com a implementao de sistemas com mltiplos processadores, o conceito de simultaneidade ou paralelismo pode ser expandido a um nvel mais amplo, denominado multiprocessamento, onde uma tarefa pode ser dividida e executada, ao mesmo tempo, por mais de um processador. 3.5.4 Organizao Funcional O esquema de comunicao interna das UCPs, memria e dipositivos de E/S (unidades funcionais) fundamental no projeto de sistemas com mltiplos processadores, pois termina quantas UCPs o sistema poder ter e como ser o acesso memria. Para permitir mltiplos acessos simultneos memria (interliving), comum que esta dividida em mdulos, podendo assim ser compartilhada por vrias unidades funcionais. As organizaes funcionais de multiprocessadores podem ser divididas basicamente em trs tipos: barramento comum, barramento cruzado e memria multiport. 3.6 Sistemas Fracamente Acoplados Os sistemas fracamente acoplados caracterizam-se por possuir dois ou mais sistemas de computao interligados, sendo que cada sistema possui o seu prprio sistema operacional, gerenciando os seus recursos, como processador, memria e dispositivos de entrada/sada.

35

At meados da dcada de 80, os sistemas operacionais e as aplicaes suportadas por eles eram tipicamente concentradas em sistemas de grande porte, com um ou mais processadores. Nos sistemas centralizados, os usurios utilizam terminais no inteligentes conectados a linhas seriais dedicadas ou linhas telefnicas pblicas para a comunicao interativa com esses sistemas. No modelo centralizado, os terminais no tm capacidade de processamento. Sempre um usurio deseja alguma tarefa, o pedido encaminhado ao sistema, que realiza o processamento e retorna uma resposta, utilizando as linhas de comunicao. Com a evoluo dos computadores pessoais e das estaes de trabalho, juntamente com o avano das telecomunicaes e da tecnologia de redes, surgiu um novo modelo de computao, chamado de modelo de rede de computadores.

Figura 22- Sistemas fracamente acoplados 3.6.1 Sistemas Operacionais de Rede Em sistemas operacionais de rede (SOR), cada n possui seu prprio sistema operacional, alm de um hardware e software que possibilitam ao sistema ter acesso a outros componentes da rede, compartilhando seus recursos. O SOR permite entre outras funes:
Cpia remota de arquivos Emulao de terminal Impresso remota Gerncia remota Correio eletrnico.

Cada n totalmente independente do outro, podendo inclusive possuir sistemas operacionais diferentes. Caso a conexo entre os ns sofra qualquer problema, os sistemas podem continuar operando normalmente, apesar de alguns recursos se tornarem indisponveis.

36

O melhor exemplo da utilizao dos sistemas operacionais de rede so as redes locais. Nesse ambiente, cada estao pode compartilhar seus recursos com o restante da rede. Caso uma estao sofra qualquer, os demais componentes da rede podem continuar o processamento, apenas no dispondo dos recursos oferecidos por ela.

Figura 23 - Sistemas operacionais de rede. 3.6.2 Sistemas Operacionais distribudos Em sistemas distribudos, cada componente da rede tambm possui seu prprio sistema operacional, memria, processador e dispositivos. O que define um sistema distribudo a existncia de um relacionamento mais forte entre os seus componentes, onde geralmente os sistemas operacionais so os mesmos. Para o usurio e suas aplicaes, como se no existisse uma rede de computadores, mas sim um nico sistema centralizado.

Figura 24 - Sistemas Operacionais Distribudos. A grande vantagem desses sistemas a possibilidade do balanceamento de carga, ou seja, quando um programa admitido para execuo, a carga de processamento de cada sistema avaliada e o processador mais livre escolhido. Depois de aceito para processamento, o programa executado no mesmo processador at o seu trmino. Tambm possvel o compartilhamento de impressoras, discos e fitas,

37

independentemente do sistema em que a aplicao esteja sendo processada. Este tipo de sistema distribudo muitas vezes chamado de cluster.

Figura 25 - Cluster. Suponha, por exemplo, uma configurao de dois computadores (COMP 1 e COMP 2), formando um cluster. Qualquer usurio conectado ao cluster poder ter acesso aos dispositivos compartilhados, que permitem a ele imprimir uma listagem ou copiar um arquivo. Nesse tipo de configurao, se um dos sistemas falhar, o acesso aos dispositivos no ser interrompido. Os sistemas distribudos podem ser considerados como uma evoluo dos sistemas fortemente acoplados, onde uma aplicao pode ser executada por qualquer processador. Os sistemas distribudos permitem que uma aplicao seja dividida em diferentes partes (aplicaes distribudas), que se comunicam atravs de linhas de comunicao, podendo cada parte ser processada em um sistema independente. 3.6.3 Organizao Funcional A organizao funcional dos sistemas fracamente acoplados ou topologia define como so interligados fisicamente os diversos sistemas da rede. 3.6.3.1 Barramento Na organizao de barramento, os sistemas so conectados a uma nica linha de comunicao e todos compartilham o mesmo meio, tanto para receber como para enviar mensagens. Esse tipo de organizao utilizada geralmente em redes locais (Figura 25).

38

Neste tipo de topologia, caso haja algum problema com o meio de transmisso, todos os ns da rede ficaro incomunicveis.

Figura 26 - Organizao de Barramento 3.6.3.2Organizao distribuda Na organizao distribuda existem linhas de comunicao ponto-a-ponto que ligam os sistemas e caminhos alternativos entre os diversos ns da rede. Caso uma linha de comunicao apresente problema, linhas alternativas permitiro que a rede continue em funcionamento. Este tipo de organizao utilizada geralmente em redes distrbudas (Figura 26).

Figura 27 - Organizao distribuda

39

S-ar putea să vă placă și