Vous êtes sur la page 1sur 31

FACULDADE INTEGRADA DA GRANDE FORTALEZA/

PRONATEC
CURSO DE TCNICO EM INFORMTICA PARA INTERNET
PROJETO INTEGRADOR I

TEMA

Sistemas Operacionais

Crates 2013

FBIO ELIAS FERREIRA PONTE


FRANCISCA ELISANGELA GOMES LEITO
CLCIA MARIA SILVA
MARIA LURDES BARBOSA DA SILVA
LVIA NARA NERES DE SOUSA
VANESSA ALVES CAVALCANTE

Tema

Projeto apresentado como requisito para


avaliao
da
Disciplina
PROJETO
INTEGRADOR I, do curso de Tcnico em
Informtica para Internet do Programa
Nacional de Acesso ao Ensino Tcnico e
Emprego - PRONATEC, na Faculdade
Integrada da Grande Fortaleza FGF.
Orientador: David Magalhes.

Crates 2013

SUMRIO
1. INTRODUO
2. OBJETIVOS
2.1 Objetivos gerais
2.2 Objetivos especficos
3. DESENVOLVIMENTO
3.1 Sistemas Operacionais.
4.CONCLUSO
5. REFERNCIAS BIBLIOGRFICAS

1.INTRODUO
Sistema Operacional um grupo integrado de programas que permitem a comunicao
entre o computador e o usurio. Um SO tem 3 funes principais: ajudar a criar e
manipular um sistema de arquivos; executar programas; usar os dispositivos conectados
a seu computador.
Podemos falar destas funes de outra maneira:
Apresentar ao usurio uma mquina mais flexvel e adequada para programar do que
aquela que o hardware no apresenta. Ele torna a comunicao do homem com a
mquina mais natural e inteligvel;
Possibilitar o uso eficiente e controlado dos vrios componentes de hardware que
constituem um sistema como um todo: processador, memria principal e secundria,
canais de E/S, controladores, perifricos, etc.;
Possibilitar a diversos usurios o uso compartilhado e protegido dos diversos
componentes de hardware e software do sistema de modo que o sistema seja utilizado
de maneira mais eficiente e que usurios possam se beneficiar do trabalho de outros e
cooperar entre si na execuo de projetos complexos.
A linguagem de comunicao do usurio com o SO chamado de "linguagem de
controle". Ela tem em geral uma declarao ou um comando simples por linha dirigindo
o SO a executar uma ao especfica como gravar um conjunto de dados em disco,
compilar um programa, executar um programa, consignar perifricos, abrir ou fechar
arquivos, etc.
2.OBJETIVOS
2.1OBJETIVOS GERAIS
CONCEITOS BSICOS
Sistemas Operacionais (ou monitor, executivo, supervisor, controlador, etc.).
Por mais complexo que possa parecer, um SO apenas um conjunto de rotinas
executado pelo processador, da mesma forma que qualquer outro programa. Sua

principal funo controlar o funcionamento d computador, como um gerente dos


diversos recursos disponveis no sistema.
2.2OBJETIVOS ESPECFICOS
As funes do SO so:
Facilidade de acesso aos recursos do sistema: devido ao SO que, quando utilizamos os
componentes de um computador, como terminais, impressoras, discos e fitas, no nos
preocupamos com a maneira como realizada esta comunicao e os inmeros detalhes
envolvidos.
O SO, ento, serve de interface entre o usurio e os recursos disponveis no sistema,
tornando esta comunicao transparente e permitindo ao usurio um trabalho mais
eficiente e com menores chances de erros.
Este conceito de ambiente simulado, criado pelo SO, denominado mquina virtual e
est presente, de alguma forma, na maioria dos sistemas atuais.
Compartilhamento de recursos de forma organizada e protegida: Quando pensamos em
sistemas multiusurios, onde vrios usurios podem estar compartilhando os mesmos
recursos, como, por ex., 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. O SO responsvel por permitir o acesso concorrente a recursos do computador,
de forma organizada e protegida, dando ao usurio a impresso de ser o nico a utilizlos.
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.
O SO tambm responsvel pelo controle do uso de diversas tarefas concorrentemente.
Mquina 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 hardware quanto 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 SO, 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
6

hardware para poder trabalhar; ou seja, a parte fsica do computador tornou-se


transparente para o 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 (SO).
3.DESENVOLVIMENTO
3.1Sistema Operacional
Hardware
Desta forma, o usurio pode enxergar a mquina como sendo apenas o SO, ou seja,
como se o hardware no existisse. Esta viso modular e abstrata chamada mquina
virtual.
Na realidade, um computador no possui apenas dois nveis, e sim tantos nveis quantos
forem necessrios para adequar o usurio s suas diversas aplicaes. Quando o usurio
est trabalhando em um desses nveis, no necessita saber da existncia das outras
camadas, acima ou abaixo de sua mquina virtual.
Atualmente, a maioria dos computadores possui a estrutura mostrada abaixo, podendo
conter mais ou menos camadas. A linguagem utilizada em cada um desses nveis
diferente, variando da mais elementar (baixo nvel) a mais sofisticada (alto nvel).
Aplicativos
Utilitrios
Sistema Operacional
Linguagem de Mquina
Micro programao
Hardware
Dispositivos Fsicos:
TIPOS DE SISTEMAS OPERACIONAIS
Sistemas Monoprogramveis / Monotarefa;
Sistemas Multiprogramveis / Multitarefa;
Sistemas com Mltiplos Processadores.
Monoprogramveis ( monousurio): Se caracterizam por permitir que o processador, a
memria e os perifricos permaneam exclusivamente dedicados execuo de um
nico programa, ou seja, todos os recursos do sistema fiquem exclusivamente dedicados

a uma nica tarefa. Qualquer outro programa, para ser executado, deveria aguardar o
trmino do programa corrente;
Multiprogramveis ( multiusurio): Se caracterizam por permitir que vrios programas
compartilhem diversos recursos. 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 programas. Com o compartilhamento de recursos, tem-se
um aumento na produtividade e a reduo de custos. Estes sistemas podem ser
classificados em: a)batch; b) de tempo compartilhado; c) de tempo real.
Um SO pode suportar um ou mais desses tipos de processamento.
Sistemas batch (lote): Caracterizam-se por terem seus programas armazenados em disco
ou fita, onde esperam para ser executados seqencialmente. Alguns exemplos de
aplicaes originalmente processadas em batch so compilaes, linkedies, sorts,
backups e todas aquelas onde no necessria a interao com o usurio. Esses
sistemas, quando bem projetados, podem ser bastantes eficientes, devido melhor
utilizao do processador. Entretanto, podem oferecer tempos de resposta longos, em
face do processamento puramente seqencial e com uma variao alta dos seus tempos
de execuo.
Sistemas de tempo compartilhamento (time-sharing): 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, estes sistemas
tambm so conhecidos com on-line. Esses sistemas possuem uma linguagem de
controle que permite ao usurio comunicar-se diretamente com o SO para obter
informaes, como por ex., verificar os arquivos que possui armazenados em disco. O
sistema, normalmente, responde em poucos segundos maioria desses comandos. Para
cada usurio, o SO 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.
Sistemas de tempo real (real time): So 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 contrrios podero ocorrer problemas irreversveis. Nos sistemas de
tempo real no existe a idia de fatia de tempo, utilizada pelos sistemas de tempo
compartilhado. 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 SO, como nos
sistemas de tempo compartilhado. Esse sistemas esto pressentes nas aplicaes onde o
tempo de resposta fator fundamental.
Sistemas com Mltiplos Processadores: Caracterizam-se por possuir duas ou mais UCPs
interligadas, trabalhando em conjunto. Um fator-chave no desenvolvimento de SOs com
mltiplos processadores a forma de comunicao entre as UCPs e o grau de
compartilhamento da memria e dos dispositivos de entrada e sada. Sistemas com
mltiplos processadores possibilitam aumentar a capacidade computacional com menor
custo (escalabilidade), alm de permitir a reconfigurao e o balanceamento do sistema.
8

Em funo desses fatores, podemos classificar os sistemas em a)fortemente acoplados


ou b)fracamente acoplados.
Sistemas fortemente acoplados: nestes sistemas 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, adicionado-se apenas novos processadores, com custo
inferior aquisio de outros computadores. Com o multiprocessamento, novos
problemas de concorrncia foram introduzidos, pois vrios processadores podem estar
acessando podem estar as mesmas reas de memria. Alm disso, existe o problema de
organizar de forma eficiente os processadores, a memria e os perifricos. Os sistemas
fortemente acoplados podem ser divididos conforme a simetria existente entre seus
processadores, ou seja, se todos os processadores podem executar ou no as mesmas
funes.
Sistemas Assimtricos: caracterizam-se por possuir um processador primrio,
responsvel pelo controle dos demais processadores (secundrios) e pela execuo do
sistema operacional. Os processadores secundrios apenas processam programas de
usurios e, sempre que necessitam de um servio do sistema, solicitam ao processador
primrio. Uma conseqncia dessa organizao que, se o processador mestre 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 de mestre.
Mesmo sendo uma organizao simples de implementar e quase uma extenso dos
sistemas multiprogramveis, esse tipo de sistema no utiliza eficientemente o hardware,
devido assimetria dos processadores, que no realizam as mesmas funes.
Sistemas Simtricos: 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
inicializao (boot) do sistema.
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.
MULTIPROCESSAMENTO:

Desde sua criao, os computadores tm sido vistos como mquinas seqenciais, onde a
UCP executa as 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.
A seguir, analisaremos o multiprocessamento em dois nveis: Processamento paralelo.
Processamento paralelo
O processamento paralelo a possibilidade de uma aplicao ser executada por mais de
um processador ao mesmo tempo. Nesse tipo de ambiente, s existir ganho real de
tempo caso a aplicao possa ser dividida em partes independentes para execuo
simultnea.
O maior problema dos sistemas que programam processamento paralelo , justamente,
determinar quando existe a possibilidade de implementao do paralelismo em um
programa. O paralelismo pode ser indicado pelo prprio programador (paralelismo
explcito) atravs de comandos da linguagem utilizada, onde ele determina as subrotinas que podem ser executadas em paralelo. Nesse mtodo, programador pode no
perceber algum cdigo possvel de ser executado em paralelo, sendo, tambm comum o
programa se tornar mais complexo e difcil de modificar. Atualmente, muito esforo
tem sido empreendido no desenvolvimento de compiladores e sistemas operacionais que
detectam automaticamente o paralelismo nos programas (paralelismo implcito).
Quando o paralelismo determinado pelo prprio sistema, provvel que se obtenham
programas mais eficientes e confiveis.
Organizao funcional
O esquema de comunicao interna das UCPs, memria e dispositivos de E/S (unidades
funcionais) fundamental no projeto de sistemas com mltiplos processadores, pois
determinam quantas UCPs o sistema poder Ter e como ser o acesso memria.
Para permitir mltiplos acessos simultneos memria (interliving), comum que esta
seja 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.
Barramento comum
A forma mais simples de comunicao entre mltiplos processadores e outras unidades
funcionais interligar todos os componentes a um barramento comum (commom bus).
10

O maior problema dessa organizao que somente uma unidade funcional pode estar
utilizando o barramento em um determinado instante.
Sistemas desse tipo esto limitados a poucos processadores, dependendo da velocidade
de transmisso do barramento.
Barramento cruzado
Para evitar o problema do gargalo na organizao de barramento comum, as unidades
funcionais podem ser conectadas entre si atravs de barramentos cruzados, criando uma
rede de interconexo.
Nesse esquema, possvel a comunicao simultnea entre diferentes unidades
funcionais, ficando a cargo do hardware a resoluo dos possveis conflitos de acesso a
uma mesma unidade. O nmero de processadores que podem ser adicionados ao sistema
, a princpio, ilimitado.
Memria multiport
Enquanto no esquema barramento cruzado no possvel dois processadores tem acesso
a um mdulo de memria no mesmo instante, a memria multiport permite acessos
simultneos a um mesmo mdulo de memria.
Nesse esquema, os acessos simultneos so realizados atravs de mltiplas portas,
existentes em cada mdulo de memria. Os possveis conflitos de acesso so resolvidos
pelos prprios mdulos atravs de prioridades associadas a cada porta.
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.
Nos sistemas centralizados, os usurios utilizam terminais no inteligveis 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
que um usurios 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 modelo de rede de computadores (computer network).
Em uma rede existem dois ou mais sistemas independentes, tambm chamados de ns,
hosts ou estaes, com capacidade de processamento prpria e interligados atravs de
linhas de comunicao. Com base no grau de integrao dos ns da rede, podemos
dividir os sistemas fracamente acoplados entre sistemas operacionais de rede e sistemas
operacionais distribudos.
Sistemas Operacionais de Rede: Nesse sistema, cada n possui seu prprio sistema
operacional, alm de um hardware e software que possibilitam ao sistema Ter acesso a
11

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, etc.
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.
O melhor exemplo da utilizao dos SOs de rede so as redes locais (Local Area
Network LAN). Nesse ambiente, cada estao pode compartilhar seus recursos com o
restante da rede. Caso uma estao sofra qualquer problema, os demais componentes da
rede podem continuar o processamento, apenas no dispondo dos recursos oferecidos
por ela.
Sistemas Operacionais Distribudos: Em sistemas distribudos, cada componente da
rede tambm possui seu prprio SO, memria, processador e dispositivos. O que define
um sistema distribudo a existncia de um relacionamento mais forte entre os seus
componentes, onde geralmente os SOs so os mesmos. Para o usurio e suas aplicaes,
como se no existisse uma rede de computadores, mas sim um nico sistema
centralizado. 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, independentemente do sistema em que a aplicao esteja sendo processada. Este
tipo de sistema distribudo muitas vezes chamado de cluster.
Suponha, por exemplo, uma configurao com dois computadores formando um cluster.
Qualquer usurio conectado ao cluster poder Ter acesso aso 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.
Uma grande vantagem da implementao de aplicaes distribudas a capacidade de
redundncia do sistema. Como as aplicaes esto distribudas por diversos sistemas,
caso ocorra algum problema com um dos componentes, possvel que um deles assuma
o papel do sistema defeituoso. Em aplicaes de misso crtica, como controle de
trfego areo, existem sistemas especialmente desenvolvidos para essa finalidade,
conhecidos como sistemas de tolerncia a falhas.
Organizao Funcional: A organizao funcional dos sistemas fracamente acoplados ou
topologia define como so interligados fisicamente os diversos sistemas da rede. As
principais organizaes so: Barramento e Organizao distribuda.
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
12

para enviar mensagens. Esse tipo de organizao utilizada geralmente em redes locais.
Neste tipo de topologia, caso haja algum problema com o meio de transmisso, todos os
ns da rede ficaro incomunicveis.
Organizao 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, alternativas permitiro que a
rede continue em funcionamento. Este tipo de organizao utilizada geralmente em
redes distribudas.
SISTEMAS MULTIPROGRAMVEIS
Os sistemas multiprogramveis surgiram de um problema existente nos sistemas
monoprogramveis, que a baixa utilizao de recursos do sistema, com processador,
memria e perifricos. A possibilidade de perifricos e dispositivos funcionarem
simultaneamente entre si, juntamente com a UCP, permitiu a execuo de tarefas
concorrentes, que o princpio bsico para projeto e implementao de sistemas
multiprogramveis. Sistemas operacionais podem ser vistos como um conjunto de
rotinas que executam concorrentemente de uma forma ordenada.
Nos sistemas monoprogramveis, somente um programa pode estar residente em
memria, e a UCP permanece dedicada, exclusivamente, execuo desse programa.
Podemos observar que, nesse tipo de sistema, ocorre um desperdcio na utilizao da
UCP, pois enquanto o programa est realizando, por exemplo, uma leitura em disco, o
processador permanece sem realizar nenhuma tarefa. O tempo de espera
consideravelmente grande, j que as operaes com dispositivos de entrada e sada so
muito lentas se comparadas com a velocidade da UCP.
Outro aspecto que podemos considerar a subutilizao da memria. Um programa que
no ocupe totalmente a memria principal ocasiona a existncia de reas livres, sem
utilizao.
Nos sistemas multiprogramveis, vrios programas podem estar residentes em memria,
concorrendo pela utilizao da UCP. Dessa forma, quando um programa solicita uma
operao de entrada/sada, outros programas podero estar disponveis para utilizar o
processador. Nesse caso, a UCP permanece menos tempo ociosa e a memria principal
utilizada de forma mais eficiente, pois existem vrios programas residentes se
revezando na utilizao do processador.
A utilizao concorrente da UCP deve ser implementada de maneira que, quando um
programa perde o uso do processador e depois retorna para continuar o processamento,
seu estado dever ser idntico ao do momento em que foi interrompido. O programa
dever continuar sua execuo exatamente na instruo seguinte quela em que havia
parado, aparentando ao usurio que nada aconteceu. Em sistemas de tempo
compartilhado, existe a impresso de que o computador est inteiramente dedicado ao
usurio, ficando todo esse mecanismo transparente para ele.
No caso de perifricos, comum termos, em sistemas monoprogramveis, impressoras
paradas por um grande perodo de tempo e discos com acesso restrito a um nico
usurio. Esses problemas so solucionados em sistemas multiprogramveis, onde

13

possvel compartilhar impressoras entre vrios usurios e realizar acesso concorrente a


discos por diversos programas.
A eficincia proporcionada por um sistema multiprogramvel resulta em maior
complexidade do sistema operacional, j que alguns problemas surgem com esse tipo de
implementao. Se considerarmos que vrios programas esto simultaneamente
ocupando diversas partes da memria, um programa no pode destruir dados ou cdigo
de outro programa. Este e outros problemas, como quais so os programas que devero
estar residentes em memria, ou em qual ordem os programa utilizaro a UCP, so
resolvidos pelo sistema operacional.
Interrupo e Exceo Durante a execuo de um programa, alguns eventos podem
ocorrer durante seu processamento, obrigando a interveno do SO. Este tipo de
interveno denominado interrupo ou exceo e pode ser resultado da execuo de
instrues do prprio programa, gerado pelo SO ou por algum dispositivo de hardware.
Nestas situaes o fluxo de execuo do programa desviado para uma rotina especial
de tratamento. O que diferencia uma interrupo de uma exceo o tipo de evento que
gera esta condio.
Uma interrupo gerada pelo SO ou por algum dispositivo e, neste caso, independe do
programa que est sendo executado. Um exemplo quando um perifrico avisa UCP
que est pronto para transmitir algum dado. Neste caso, a UCP deve interromper o
programa para atender a solicitao do dispositivo.
No momento em que a unidade de controle detecta a ocorrncia de algum tipo de
interrupo, o programa em execuo interrompido, e o controle desviado para uma
rotina responsvel pelo tratamento da interrupo (rotina de tratamento da interrupo).
Muitas vezes, aps a execuo dessa rotina, o controle deve voltar ao programa que,
anteriormente, estava sendo processado. Para isso acontecer, necessrio que, no
momento da interrupo, um conjunto de informaes sobre a execuo do programa
seja preservado. Essas informaes consistem no contedo de alguns registradores, que
devero ser restaurados posteriormente para a continuao do programa. Mecanismo de
Interrupo:
No existe apenas um nico tipo de interrupo e sim diferentes tipos que devem ser
atendidos por diversa rotinas de tratamento. No momento que uma interrupo
acontece, a UCP deve saber para qual rotina de tratamento dever ser desviado o fluxo
de execuo. Essa informao est em uma estrutura do sistema chamada de vetor de
interrupo, que contm a relao de todas as rotinas de tratamento existentes,
associadas a cada tipo de interrupo.
Todo procedimento para detectar a interrupo, salvar o contexto do programa e desviar
para uma rotina de tratamento denominado mecanismo de interrupo. Este
mecanismo realizado, na maioria das vezes, pelo hardware dos computadores, e foi
implementado pelos projetistas para criar uma maneira de sinalizar ao processador
eventos assncronos que possam ocorrer no sistema.
As interrupes podem ser classificadas como mascarveis e no mascarveis. As
mascarveis podem ser desabilitadas pelo processador. Neste caso, na ocorrncia de tais
interrupes, elas sero ignoradas, ou seja, no recebero tratamento. No caso das
interrupes no mascarveis, isto no possvel de se implementar, sendo o tratamento
obrigatrio.
14

No caso de mltiplas interrupes ocorrerem, o processador deve saber qual interrupo


ter de atender primeiro. Para isso, as interrupes devero possuir prioridades, em
funo da necessidade de atendimento de cada uma. Normalmente, o hardware dos
computadores possui um dispositivo denominado controlador de pedidos de
interrupo, responsvel por avaliar as interrupes geradas e suas prioridades de
atendimento.
A interrupo o mecanismo que tornou possvel a implementao da concorrncia nos
computadores, sendo o fundamento bsico dos sistemas multiprogramveis. em
funo desse mecanismo que o sistema operacional sincroniza a execuo de todas as
suas rotinas e dos programas dos usurios, alm de controlar os perifricos e
dispositivos do sistema.
Inicialmente os SOs apenas implementavam o mecanismo de interrupo. Com a
evoluo dos sistemas foi introduzido o conceito de exceo. Uma exceo resultado
direto da execuo de uma instruo do prprio programa. Situaes como a diviso de
um nmero por zero ou a ocorrncia de um overflow caracterizavam essa situao.
O mecanismo de tratamento de excees semelhante ao de interrupes, porm,
muitas vezes, podem ser escritas pelo prprio programador. Dessa forma, possvel
evitar que um programa seja encerrado no caso de ocorrer, por ex., um overflow. Em
sistemas mais primitivos, no existia a possibilidade de o programador implementar
rotinas de tratamento. Com isso, na ocorrncia de tais eventos, o sistema poderia parar
ou o operador teria que intervir para solucionar o problema.
A diferena fundamental entre exceo e interrupo que a exceo gerada por um
evento sncrono (quando resultado direto da execuo do programa corrente), e a
interrupo gerada por eventos assncronos (quando ocorre independentemente da
execuo do programa corrente).
Operaes de Entrada/Sada Em sistemas mais primitivos, a comunicao entre a UCP
e os perifricos era controlada por um conjunto de instrues especiais, denominadas
instrues de entrada/sada, executadas pela prpria UCP. Essas instrues continham
detalhes especficos de cada perifrico, como quais trilhas e setores de um disco
deveriam ser lidos ou gravados em determinado bloco de dados. Esse tipo de instruo
limitava a comunicao do processador a um grupo particular de dispositivos.
A implementao de um dispositivo chamado controlador ou interface permitiu UCP
agir de maneira independente dos dispositivos de E/S. Com esse novo elemento, a UCP
no se comunicava mais diretamente com os perifricos, mas sim atravs do
controlador. Isso simplificou as instrues de E/S, por no ser mais preciso especificar
detalhes de operao dos perifricos, tarefa esta realizada pelo controlador.
Outra forma derivada da anterior, porm mais inteligente, era permitir que, aps o incio
da transferncia dos dados, a UCP ficasse livre para se ocupar de outras tarefas. Assim,
em determinados intervalos de tempo, o sistema operacional deveria realizar um teste
para saber do trmino ou no da operao de E/S em casa dispositivo (pooling). Esse
tipo de operao introduziu certo grau de paralelismo de operaes, visto que um
programa poderia ser processado, enquanto outro esperava pelo trmino de uma
operao de E/S. Isso permitiu o surgimento dos primeiros sistemas multiprogramveis,
onde vrios programas poderiam executar concorrentemente, j que o tempo para
execuo de uma operao de E/S relativamente grande. O problema dessa
implementao que, no caso de existir um grande nmero de perifricos, o sistema
15

tem que freqentemente interromper o processamento dos programas para testar os


diversos perifricos, j que difcil determinar o momento exato do trmino das
operaes de E/S em andamento.
Com a implementao do mecanismo de interrupo no hardware dos computadores, as
operaes de E/S puderam ser realizadas de uma forma mais eficiente. Em vez de os
sistema periodicamente verificar o estado de uma operao pendente, o prprio
controlador interrompia a UCP para avisar do trmino da operao. Com esse
mecanismo, denominado E/S controlada por interrupo, a UCP, aps a execuo de um
comando de leitura ou gravao, fica livre para o processamento de outras tarefas. O
controlador por sua vez, ao receber, por ex., um sinal de leitura, fica encarregado de ler
os blocos do disco e armazen-los em memria ou registradores prprios. Em seguida, o
controlador, atravs de uma linha de controle, sinaliza uma interrupo ao processador.
Quando a UCP atende a interrupo, a rotina responsvel pelo tratamento desse tipo de
interrupo transfere os dados dos registradores do controlador para memria principal.
Ao trmino da transferncia, a UCP volta a executar o programa interrompido e o
controlador fica novamente disponvel para outra operao.
A operao de E/S controlada por interrupo muito mais eficiente que a operao de
E/S controlada por programa, j que elimina a necessidade de a UCP esperar pelo
trmino da operao, alm de permitir que vrias operaes de E/S sejam executadas
simultaneamente. Apesar disso, essa implementao ainda sobrecarregava a UCP, uma
vez que toda transferncia de dados entre memria e perifricos exigia a interveno da
UCP. A soluo para esse problema foi a implementao, por parte do controlador, de
uma tcnica de transferncia de dados denominada DMA (Direct Memory Access).
A tcnica de DMA permite que um bloco de dados seja transferido entre memria e
perifricos, sem a interveno da UCP, exceto no incio e no final da transferncia.
Quando o sistema deseja ler ou gravar um bloco de dados, so passadas da UCP para o
controlador informaes como: onde o dado est localizado, qual o dispositivo de E/S
envolvido na operao, posio inicial da memria de onde os dados sero lidos ou
gravados e o tamanho do bloco de dados. Com estas informaes, o controlador realiza
a transferncia entre o perifrico e a memria principal, e a UCP somente
interrompida no final da operao. A rea de memria utilizada pelo controlador na
tcnica de DMA chamada buffer, sendo reservada exclusivamente para este propsito.
No momento em a transferncia de DMA realizada, o controlador deve assumir,
momentaneamente, o controle do barramento. Como a utilizao do barramento
exclusiva de um dispositivo, a UCP deve suspender o acesso ao bus, temporariamente,
durante a operao de transferncia. Este procedimento no gera uma interrupo, e a
UCP pode realizar tarefas, desde que sem a utilizao do barramento, como, por ex., um
acesso memria cache.
A extenso do conceito DMA possibilitou o surgimento dos canais de E/S, ou somente
canais, introduzidos pela IBM no Sistema 7094. O canal de E/S um processador com
capacidade de executar programas de E/S, permitindo o controle total sobre operaes
de entrada e sada. As instrues de E/S so armazenadas na memria principal pela
UCP, porm o canal responsvel pela sua execuo. Assim, a UCP realiza uma
operao de E/S, instruindo o canal para executar um programa localizado na memria
(programa de canal). Este programa especifica os dispositivos para transferncia,
buffers e aes a serem tomadas em caso de erros. O canal de E/S realiza a transferncia
e, ao final, gera uma interrupo, avisando do trmino da operao.
16

Um canal de E/S pode controlar mltiplos dispositivos atravs de diversos


controladores. Cada dispositivo, ou conjunto de dispositivos, manipulado por um
nico controlador. O canal atua como um elo de ligao entre a UCP e o controlador.
A evoluo do canal permitiu que este possusse sua prpria memria, eliminando a
necessidade de os programas de E/S serem carregados para a memria principal. Com
essa nova arquitetura, vrias funes de E/S puderam ser controladas com mnima
interveno da UCP. Este ltimo estgio do canal tambm denominado de processador
de E/S, embora seja comum encontrarmos os dois termos empregados indistintamente.
Buffering O buffering outra implementao para minimizar o problema da
disparidade da velocidade de processamento existente entre a UCP e os dispositivos de
E/S. O objetivo do buffering manter, na maior parte do tempo, UCP e dispositivos
ocupados.
Esta tcnica consiste na utilizao de uma rea de memria para a transferncia entre os
perifricos e a memria principal denominada buffer. O buffering veio permitir que,
quando um dados fosse transferido para o buffer aps uma operao de leitura, o
dispositivo de entrada pudesse iniciar uma nova leitura. Neste caso, enquanto a UCP
manipula o dado localizado no buffer, o dispositivo realiza outra operao de leitura no
mesmo instante. O mesmo raciocnio pode ser aplicado para operaes de gravao,
onde a UCP coloca o dado no buffer para um dispositivo de sada manipular.
A unidade de transferncia usada no mecanismo de buffering o registro. O tamanho do
registro pode ser especificado em funo da natureza do dispositivo (como uma linha
gerada por uma impressora ou um caracter de um teclado) ou da aplicao (como um
registro lgico definido em um arquivo).
O buffer deve possuir a capacidade de armazenar diversos registros, de forma a permitir
que existam dados lidos no buffer, mas ainda no processados (operao de leitura), ou
processados, mas ainda no gravados (operao de gravao). Desta forma, o
dispositivo de entrada poder ler diversos registros antes que a UCP os processe, ou a
UCP poder processar diversos registros antes de o dispositivo de sada realizar a
gravao. Isso extremamente eficiente, pois, dessa maneira, possvel compatibilizar
a diferena existente entre o tempo em que a UCP processa os dados e o tempo em que
o dispositivo de E/S realiza as operaes de leitura e gravao.
Spooling A tcnica de spooling (simultaneos peripheral operation on-line) foi
introduzida no final dos anos 50 para aumentar a produtividade e a eficincia dos SOs.
Naquela poca, os programas dos usurios eram submetidos um a um para
processamento pelo operador. Como a velocidade de operao dos dispositivos de
entrada/sada muito lenta se comparada do processador, era comum que a UCP
ficasse ociosa espera de programas e dados de entrada ou pelo trmino de uma
impresso.
A soluo foi armazenar os vrios programas e seus dados, tambm chamados de jobs,
em uma fita magntica e, em seguida submet-los a processamento. Desta forma, a UCP
poderia processar seqencialmente cada job, diminuindo o tempo de execuo dos jobs
e o tempo de transio entre eles. Da mesma forma, em vez de um job gravar suas
sadas diretamente na impressora, poderia direcion-las para outra fita, que depois seria
impressa integralmente. Esta forma de processamento chamada de spooling e foi a
base dos sistemas batch.
17

A utilizao de fitas magnticas obrigava o processamento a ser estritamente seqencial,


ou seja, o primeiro job a ser gravado na fita era o primeiro a ser processado. Assim, se
um job que levasse vrias horas antecedesse pequenos jobs, seus tempos de resposta
ficariam seriamente comprometidos. Com o surgimento de dispositivos de acesso
direto, como discos, foi possvel tornar o spooling muito mais eficiente e,
principalmente, permitir a eliminao do processamento estritamente seqencial, com a
atribuio de prioridades aos jobs.
A tcnica de buffering permite que um job utilize um buffer concorrentemente com um
dispositivo de E/S. O spooling, basicamente, utiliza os disco como um grande buffer,
permitindo que dados sejam lidos e gravados em disco, enquanto outros jobs so
processados.
Um exemplo dessa tcnica est pressente quando impressoras so utilizadas. No
momento em que um comando de impresso executado por um programa, as
informaes que sero impressas so gravadas em um arquivo em disco (arquivo de
spool), para ser impresso posteriormente pelo sistema. Dessa forma, situaes como a
de um programa reservar a impressora, imprimir uma linha e ficar horas para continuar
a impresso no acontecero. Essa implementao permite maior grau de
compartilhamento na utilizao de impressoras.
Atualmente, a tcnica de spooling implementada na maioria dos SOs, fazendo com
que tanto a UCP quanto os dispositivos de E/S sejam aproveitados de forma mais
eficiente.
Reentrncia comum, em sistemas multiprogramveis, vrios usurios executarem os
mesmos utilitrios do SO simultaneamente, como, por exemplo, um editor de textos. Se
cada usurio que utilizasse o editor trouxesse o cdigo do utilitrio para a memria,
haveria diversas cpias de um mesmo programa na memria principal, o que
ocasionaria um desperdcio de espao.
Reentrncia a capacidade de um cdigo de programa (cdigo reentrante) poder ser
compartilhado por diversos usurios, exigindo que apenas uma cpia do programa esteja
na memria. Uma caracterstica da reentrncia que o cdigo no pode ser modificado
por nenhum usurio no momento em que est sendo executado.
A reentrncia permite que cada usurio possa estar em um ponto diferente do cdigo
reentrante, manipulando dados prprios, exclusivos de cada usurio.
Os utilitrios do sistema, como editores de texto, compiladores e linkers, so exemplos
de cdigo reentrante, que proporciona grande economia de espao em memria e
aumento no desempenho do sistema. Em alguns sistemas existe a possibilidade de
utilizar o conceito de reentrncia para aplicaes de usurios.
Proteo do Sistema Nos sistemas multiprogramveis, onde diversos usurios
compartilham os mesmos recursos, deve existir uma preocupao, por parte do SO, de
garantir a integridade dos dados pertencentes a cada usurio. Problemas como um
programa acessar (acidentalmente ou no) a rea de memria pertencente a outro
programa ou ao prprio SO tornariam o sistema pouco confivel. Para isso, todo sistema
programa algum tipo de proteo aos diversos recursos que so compartilhados, como
memria, dispositivos de E/S e UCP.
Como vrios programas ocupam a memria simultaneamente e cada usurio possui uma
rea onde dados e cdigo so armazenados, o SO deve possuir mecanismos de proteo
18

memria, de forma a preservar as informaes. Caso um programa tente acessar uma


posio de memria fora de sua rea, um erro do tipo violao de acesso ocorre e o
programa encerrado. O mecanismo para o controle de acesso memria varia em
funo do tipo de gerncia de memria implementado pelo sistema.
H outro problema quando um programa reserva um perifrico para realizar alguma
operao. Nesta situao, como, por exemplo, na utilizao de uma impressora, nenhum
outro programa deve interferir at que o primeiro programa a libere. Compartilhamento
de dispositivos de E/S deve ser controlado de forma centralizada pelo SO.
O compartilhamento de arquivos em disco permite que dois ou mais usurios acessem
um mesmo arquivo simultaneamente e caso o acesso no seja controlado pelo SO,
podem ocorrer problemas de inconsistncia. Suponhamos que um usurio consulte,
interativamente, o preo de um determinado produto em um arquivo de preos. Se, no
mesmo instante um outro usurio estiver atualizando todos os preos do arquivo, o
primeiro usurio poder ler o preo desatualizado. Geralmente, os sistemas
multiprogramveis implementam o esquiem de lock (bloqueio) de arquivo que permite
o controle pelo sistema do acesso concorrentemente aos arquivos.
Um programa mal escrito, ao ganhar a UCP, pode possuir no seu cdigo um loop
infinito, de forma a alocar o processamento por tempo indeterminado. Para evitar este
tipo de problema, a UCP possui um mecanismo denominado timer, que interromper o
processamento em determinados intervalos de tempo. Desta forma, o SO controla a
utilizao da UCP entre os diversos programas, e, no caso da deteco do loop infinito,
o programa dever ser interrompido. A UCP o principal recurso compartilhado pelo
sistema, e sua utilizao deve ser controlada de maneira rgida.
Para solucionar esses diversos problemas, o SO deve programar mecanismos de
proteo que controlem o acesso concorrente aos diversos recursos do sistema. Esse
mecanismo de proteo, implementado na maioria dos sistemas multiprogramveis,
denominado modos de acesso.
ESTRUTURA DO SISTEMA OPERACIONAL
Existe uma grande dificuldade em compreender a estrutura e o funcionamento de um
SO, pois ele no executado como uma aplicao tipicamente seqencial, com incio,
meio e fim. As rotinas do sistema so executadas sem uma ordem predefinida, baseada
em eventos dissociados do tempo (eventos assncronos). Muitos desses eventos esto
relacionados ao hardware e a tarefas internas do prprio SO.
O SO formado por um conjunto de rotinas (procedimentos) que oferecem servios aos
usurios do sistema e suas aplicaes, bem como a outras rotinas do prprio sistema.
Esse conjunto de rotinas chamado ncleo do sistema ou kernel (crebro). As principais
funes do ncleo so:
Tratamento de interrupes;
Criao e eliminao de processos;
Sincronizao e comunicao entre processos;
Escalonamento e controle dos processos;
19

Gerncia de memria;
Gerncia do sistema de arquivos;
Operaes de entrada e sada;
Contabilizao e segurana do sistema.
A estrutura do SO, ou seja, a maneira como o cdigo do sistema organizado e o interrelacionamento entre seus diversos componentes, pode variar conforme a concepo do
projeto. Existem basicamente trs abordagens no desenvolvimento de SOs, mas
inicialmente estudaremos o que so as system calls e o mecanismo de modos de acesso.
System Calls Uma preocupao que surge na grande maioria dos projetos de SOs a
implementao de mecanismos de proteo ao ncleo do sistema e de acesso aos seus
servios. Caso uma aplicao, que tenha acesso ao ncleo, realize uma operao que o
danifique, todo o sistema poder ficar comprometido e inoperante.
O usurio (ou aplicao), quando deseja solicitar algum servio do sistema, realiza uma
chamada a uma de suas rotinas (ou servios) atravs de system calls (chamadas ao
sistema), que so a porta de entrada para se ter acesso ao ncleo do SO. Para cada
servio existe um system call associada e cada SO tem o seu prprio conjunto
(biblioteca) de chamadas, com nomes, parmetros e formas de ativao especfica.
Aplicao
System Call
Ncleo
Hardware
Atravs dos parmetros fornecidos no system call, a solicitao processada e uma
resposta retornada aplicao, em um dos parmetros fornecidos na chamada. O
mecanismo de ativao e comunicao entre a aplicao e o sistema semelhante ao
mecanismo implementado quando um programa modularizado ativa um dos seus
procedimentos ou funes.
O system calls pode ser dividido em grupos de funo:
Gerncia de processos
Criao e eliminao de processos
Alterao das caractersticas do processo
Sincronizao e comunicao entre processos
Gerncia de memria
Alocao e deslocao de memria
Gerncia de entrada/sada
Operaes de entrada/sada
Manipulao de arquivos e diretrios
20

Modos de Acesso Existem certas instrues que no podem ser colocadas diretamente
disposio das aplicaes, pois a sua utilizao indevida ocasionaria srios problemas
integridade do sistema. Suponha que uma aplicao deseja atualizar um arquivo em
disco. O programa, por si s, no pode especificar diretamente as instrues que
acessam seus dados. Como o disco um recurso compartilhado, sua utilizao dever
ser realizada unicamente pelo SO, evitando que a aplicao possa Ter acesso a qualquer
rea do disco indiscriminadamente, o que poderia comprometer a segurana do sistema.
Fica claro que existem certas instrues, como operaes de entrada e sada, que s
devem ser executadas pelo SO, para impedir a ocorrncia de problemas de segurana e
mesmo violao do sistema. As instrues que tm o poder de comprometer o sistema
so conhecidas como instrues privilegiadas, enquanto as instrues no privilegiadas
so as que no oferecem perigo ao sistema.
Para que uma aplicao possa executar uma instruo privilegiada, o processador
programa o mecanismo de modos de acesso. Existem basicamente dois modos de acesso
implementados pelo processador: modo usurio e modo kernel. Quando o processador
trabalha no modo usurio, uma aplicao s pode executar instrues no privilegiadas,
tendo acesso a um nmero reduzido de instrues, enquanto no modo kernel a aplicao
pode ter acesso ao conjunto total de instrues do processador.
O modo de acesso de uma aplicao determinado por um conjunto de bits, localizado
em um registrador especial da UCP, que indica o modo de acesso corrente. Atravs
desse registrador, o hardware verifica se a instruo pode ou no ser executada pela
aplicao.
A melhor maneira de controlar o acesso s instrues privilegiadas permitir que
apenas o SO tivesse acesso a elas. Sempre que uma aplicao necessita de um servio
que incorra em risco para o sistema, a solicitao feita atravs de um system call. O
system call altera o modo de acesso do processador para um modo mais privilegiado
(modo kernel). Ao trmino da rotina do sistema, o modo de acesso retornado para o
modo usurio. Caso um programa tente executar uma instruo privilegiada, sem o
processador estar no modo kernel, uma exceo gerada e o programa encerrado.
Utilizando como exemplo o problema do acesso ao disco, apresentado anteriormente,
para o programa conseguir atualizar o arquivo, a aplicao deve solicitar a operao ao
sistema por meio de um system call. A chamada altera o modo de acesso do processador
para kernel. A rotina do sistema responsvel pela leitura ento realizada e, a seguir, o
modo de acesso volta ao estado usurio para continuar o processamento do programa.
O ncleo do SO sempre executado em modo kernel, pois deve possuir capacidade de
gerenciar e compartilhar todos os seus recursos, solucionando, em diversos nveis, os
problemas de acesso s instrues privilegiadas.
Sistemas Monolticos A organizao mais comum de ser encontrada aquela que
estrutura o sistema como um conjunto de rotinas que podem interagir livremente umas
com as outras. A estrutura monoltica pode ser comparada com uma aplicao formada
por vrios procedimentos que so compilados separadamente e depois linkados,
formando um grande e nico programa executvel.
Sistemas em Camadas Um sistema em camadas divide o SO em camadas sobrepostas.
Cada mdulo oferece um conjunto de funes que podem ser utilizadas por outros
mdulos. Mdulos de uma camada podem fazer referncia apenas a mdulos das
camadas inferiores. A vantagem da estruturao em camadas isolar as funes do SO,
21

facilitando sua alterao e depurao, alm de criar uma hierarquia de nveis de modos
de acesso, protegendo as camadas mais internas.
Operador
Usurio
Programas de usurio
Entrada / Sada
Supervisor
Comunicao
Gerncia de Memria
Executivo
Multiprogramao
Kernel
Sistema MULTICS
Sistema VMS
Sistemas Cliente-Servidor Uma tendncia dos SOs modernos tornar o ncleo do SO
o menor e mais simples possvel. Para programar esta ideia, sistema dividido em
processos, sendo cada um responsvel por oferecer um conjunto de servios, como
servios de arquivo, servios de criao de processos, servios de memria, servios de
escalonamento, etc.
Sempre que uma aplicao deseja algum servio, ela solicita ao processo responsvel.
Neste caso, a aplicao que solicita um servio chamada de cliente, enquanto o
processo que responde solicitao chamado de servidor. Um cliente, que pode ser
uma aplicao de um usurio ou outro componente do SO, solicita um servio enviando
uma mensagem para o servidor. Os servidores reponham ao cliente atravs de outra
mensagem. funo do ncleo do sistema realizar a comunicao, ou seja, a troca de
mensagens entre o cliente e o servidor.
A utilizao deste modelo permite que os servidores executem em modo usurio, ou
seja, no tenham acesso direto a certos componentes do sistema. Apenas o ncleo do
sistema, responsvel pela comunicao entre clientes e servidores, executa no modo
kernel. Como conseqncia, se um erro ocorrer em um servidor, este servidor pode
parar, mas o sistema no ficar inteiramente comprometido. Alm disso, a
implementao de sistemas cliente-servidor permite isolar as funes do SO por
diversos processos (servidores) pequenos e dedicados a servios especficos. Como
conseqncia, SO passa a ser de mais fcil manuteno.
Como os servidores se comunicam atravs de trocas de mensagens, no importa se os
clientes e servidores esto sendo processados em um sistema com um nico
processador, com mltiplos processadores (fortemente acoplado) ou ainda em um
ambiente de sistema distribudo (fracamente acoplado). A implementao de sistemas
cliente-servidor em um ambiente distribudo permite que um cliente solicite um servio
e a resposta seja processada remotamente.

22

Apesar de todas as vantagens deste modelo, sua implementao, na prtica, muito


difcil devido a certas funes de o SO exigir acesso direto ao hardware, como
operaes de entrada e sada. Na realidade, o que implementado mais usualmente
uma combinao do modelo de camadas com o modelo cliente-servidor. O ncleo do
sistema, alm de ser responsvel pela comunicao entre cliente e servidor, passa
incorporar outras funes crticas do sistema, com escalonamento e gerncia de
memria, alm das funes dos device drives.
PROCESSO
Processo -> Aquilo que o processador executa (como programa, tarefa ou job);
Um programa em execuo;
a estrutura responsvel pela manuteno de todas as informaes necessrias
execuo de um programa, como contedo de registradores e espao de memria;
O ambiente onde se executa um programa
Modelo de Processo O SO materializa o processo atravs de uma estrutura chamada
bloco de controle do processo (Process Control Block PCB). A partir do PCB, o SO
mantm todas as informaes sobre o processo, como sua identificao, prioridade,
estado corrente, recursos alocados por ele e informaes sobre o programa em
execuo.
Ponteiros
Estado do Processo
Nome do Processo
Prioridade do Processo
Registradores
Limites de Memria
Lista de Arquivos Abertos
Bloco de Controle do Processo
O SO gerencia os processos atravs de system calls, que realizam operaes como
criao, eliminao, sincronizao, suspenso de processos, dentre outras.
Os processos podem ser divididos em trs elementos bsicos: contexto de hardware,
contexto de software e espao de endereamento, que juntos mantm todas as
informaes necessrias execuo do programa.
Contexto de Hardware O contexto de hardware constitui-se, basicamente, do contedo
de registradores: program counter (PC), stack pointer (SP) e bits de estado. Quando um
processo est em execuo, o seu contexto de hardware est armazenado nos
registradores do processador. No momento em que o processo perde a utilizao da
UCP, o sistema salva suas informaes no seu contexto de hardware.
23

O contexto de hardware fundamental para a implementao dos sistemas de tempo


compartilhado (time-sharing), onde os processos se revezam na utilizao do
processador, podendo ser interrompidos e, posteriormente, restaurados como se nada
tivesse acontecido. A troca de um processo por outro na UCP, realizada pelo SO,
denominada mudana de contexto. A mudana de contexto consiste em salvar o
contedo dos registradores da UCP e carreg-los com os valores referentes ao do
processo que esteja ganhando a utilizao do processador. Essa operao resume-se,
ento, em substituir o contexto de hardware de um processo pelo outro.
Contexto de Software Especifica caractersticas do processo que vo influir na
execuo de um programa, como por ex., o nmero mximo de arquivos abertos
simultaneamente ou o tamanho do buffer para operaes de E/S. Essas caractersticas
so determinadas no momento da criao do processo, podendo alguns seres alterados
durante sua existncia.
O contexto de software define basicamente trs grupos de informaes sobre um
processo: sua identificao, suas quotas e seus privilgios.
Identificao Cada processo criado pelo sistema recebe uma identificao nica (PID
process identification), representada por um nmero. Alguns sistemas, alm do PID,
identificam o processo atravs de um nome. Atravs do PID, o SO e outros processos
podem fazer referncia a um determinado processo e, por ex., alterar uma de suas
caractersticas.
O processo tambm possui a identificao do usurio ou processo que o criou (owner).
Cada usurio possui uma identificao nica no sistema (UID user identification),
atribuda ao processo no momento de sua criao. A UID permite implementar um
modelo de segurana, onde apenas os objetos (processos, arquivos, reas de memria
etc.) que possuem a mesma UID do usurio (processo) podem ser acessados.
Quotas As quotas so os limites de cada recurso do sistema que um processo pode
alocar. Caso uma quota seja insuficiente, o processo poder ser executado lentamente ou
mesmo no ser executado. Alguns exemplos de quotas que aparecem na maioria dos
SOs so:
Nmero mximo de arquivos abertos simultaneamente;
Tamanho mximo de memria que o processo pode alocar;
Nmero mximo de operaes de E/S pendentes;
Tamanho mximo do buffer para operaes de E/S;
Nmero mximo de processos e subprocessos que podem ser criados;
Privilgios Os privilgios definem o que o processo pode ou no fazer em relao ao
sistema e aos outros processos. Existem privilgios associados segurana que
permitem a um usurio eliminar processos de outros usurios e ter acesso a arquivos que
no lhe pertencem. Existem outros privilgios associados operao e gerncia do
sistema, dentre outros.
Espao de Endereamento a rea de memria do processo onde o programa ser
executado, alm do espao para os dados utilizados por ele. Cada processo possui seu
prprio espao de endereamento, que deve ser protegido do acesso dos demais
processos.
24

Estados do Processo Um processo, em um sistema multiprogramvel (multitarefa),


no executado todo o tempo pelo processador. Durante seus existncia, ele passa por
uma srie de estados. Basicamente, existem trs estados em que um processo pode se
encontrar no sistema:
Execuo (running) Um processo dito no estado de execuo quando est sendo
processado pela UCP. Em sistemas com apenas um processador, somente um processo
pode estar sendo executado em um dado instante de tempo. Os processos se revezam na
utilizao do processador seguindo uma poltica estabelecida pelo SO. J em sistemas
com mltiplos processadores, vrios processos podem estar sendo executados ao mesmo
tempo, dependendo do nmero de processadores. Existe tambm a possibilidade de um
mesmo processo ser executado por mais de um processador (processamento paralelo).
Pronto (ready) Um processo est no estado de pronto quando apenas aguarda uma
oportunidade para executar, ou seja, espera que o SO aloque a UCP para sua execuo.
O SO responsvel por determinar a ordem pela qual os processos em estado de pronto
devem ganhar a UCP. Normalmente existem vrios processos no sistema no estado de
pronto.
Espera (wait) Um processo est no estado de espera quando aguarda algum evento
externo ou por algum recurso para poder prosseguir seu processamento. Com ex.,
podemos citar o trmino de uma operao de entrada/sada ou a espera de uma
determinada data e/ou hora para poder continuar sua execuo. Em alguns sistemas, o
estado de espera pode possuir uma subdiviso, em funo do tipo de evento que o
processo aguarda. Quando um processo espera por um recurso do sistema que no se
encontra disponvel, dito que o processo est no estado de bloqueado (blocked). A
diferena bsica entre o estado de bloqueado e o de espera que um processo em estado
de bloqueado espera ser autorizado a utilizar um recurso, enquanto o processo em
estado de espera aguarda pela concluso de uma operao em um recurso que j foi
garantido.
Um processo em estado de pronto ou de espera pode no se encontrar,
momentaneamente, na memria principal, ou seja, pode estar armazenado em memria
secundria. Uma tcnica denominada swapping pode retirar processos da memria
principal quando no existe espao suficiente para todos os processos.
O SO gerencia os processos atravs de listas encadeadas, onde todos os PCB tem um
ponteiro para seu sucessor. Como podem existir vrios processos nos estados de pronto
ou de espera, o sistema programa listas, onde os processos aguardam seu processamento
(listas de processos no estado de pronto) ou esperam por algum evento (listas de
processos no estado de espera).
Mudanas de Estado do Processo Um processo muda de estado diversas vezes,
durante seu processamento, em funo de eventos originados por ele prprio (eventos
voluntrios) ou pelo SO (eventos involuntrios).
Como eventos originados pelo prprio processo, podemos exemplificar uma operao
de entrada/sada ou qualquer chamada a uma rotina do sistema, requisitando algum tipo
de servio. Eventos que se originem do SO tm a inteno de permitir maior
compartilhamento dos recursos do sistema. Por ex., se um programa est em looping, o
sistema deve intervir para que o processador no fique dedicado eternamente ao
25

processo onde o programa est sendo executado. Basicamente existem 5 mudanas de


estado que podem ocorrer a um processo:
Pronto Execuo Quando um processo criado, o sistema o coloca em uma lista de
processos no estado de pronto, onde aguarda uma oportunidade para ser executado.
Cada SO tem seus prprios critrios e algoritmos para a escolha da ordem em que os
processos sero executados (escalonamento ou schedulling).
Execuo Espera Um processo em execuo passa para o estado de espera por
eventos gerados pelo prprio processo, como, por ex., uma operao de entrada/sada.
Nesse caso, o processo ficar neste estado esperando pela concluso do evento
solicitado.
Espera Pronto Um processo no estado de espera passa para o estado de pronto
quando a operao solicitada atendida ou o recurso esperado concedido. Um
processo no estado de espera sempre ter de passar pelo estado de pronto antes de poder
ser novamente selecionado para execuo. No existe a mudana do estado de espera
para o estado de execuo diretamente.
Execuo Pronto Um processo em execuo passa para o estado de pronto por
eventos gerados pelo sistema, como, por exemplo, o fim da fatia de tempo que o
processo possui para sua execuo. Nesse caso, o processo volta para a fila de pronto,
onde aguarda por uma nova oportunidade para continuar seu processamento.
Subprocesso e Thread Um processo pode criar outros processos de maneira
hierrquica. Quando um processo (processo pai) cria um outro, chamamos o processo
criado de subprocesso ou processo filho. O subprocesso pode criar outros subprocessos.
A utilizao de subprocessos permite dividir uma aplicao em partes que podem
trabalhar de forma concorrente. Por ex., suponha que um processo seja responsvel pelo
acesso a um banco de dados e existam vrios usurios solicitando consultas sobre esta
base. Caso um usurio solicite um relatrio impresso de todos os registros, os demais
usurios tero de aguardar at que a operao termine. Com o uso de subprocessos, cada
solicitao implicar a criao de um novo processo para atend-la, aumentando o
throughput da aplicao e, consequentemente, melhorando seu desempenho.
O uso de subprocessos no desenvolvimento de aplicaes concorrentes demanda
consumo de diversos recursos do sistema. Sempre que um novo processo criado, o
sistema deve alocar recursos (contexto de hardware, contexto de software e espao de
endereamento) para cada processo, alm de consumir tempo de UCP neste trabalho.
No caso do trmino do processo, o sistema dispensa tempo para desalocar recursos
previamente alocados. Na tentativa de diminuir o tempo gasto na criao/eliminao de
processos, bem como economizar recursos do sistema como um todo, foi introduzido o
conceito de thread (linha de controle). Em um ambiente com mltiplos threads
(multithread), no necessrio haver vrios processos para se implementar aplicaes
concorrentes. No ambiente multithread, cada processo pode responder a vrias
solicitaes concorrentemente ou mesmo simultaneamente, se houver mais de um
processador. Threads compartilham o processador da mesma maneira que um processo.
Por exemplo, enquanto um thread espera por uma operao de E/S, outro thread pode
ser executado. Cada thread possui seu prprio conjunto de registradores (contexto de
hardware), porm compartilha o mesmo espao de endereamento com os demais
threads do processo. Quando um thread est sendo executado, o contexto de hardware
est armazenado nos registrados do processador. No momento em que um thread perde
26

a utilizao do processador, o sistema salva suas informaes. Thread passam pelos


mesmos estados que um processo, ou seja, execuo, espera e pronto.
A grande diferena entre subprocessos e threads em relao ao espao de
endereamento. Enquanto subprocessos possuem, cada um, espaos independentes e
protegidos, threads compartilham o mesmo espao de endereamento do processo, sem
nenhuma proteo, permitindo assim que um thread possa alterar dados de outro thread.
Apesar dessa possibilidade, threads so desenvolvidos para trabalhar de forma
cooperativa, voltados para desempenhar uma tarefa em conjunto.
Processos do Sistema O conceito de processo, alm de estar associado a aplicaes de
usurios, pode tambm ser implementado na prpria estrutura do SO. Quando se utiliza
processos para a implementao de funes do sistema, estamos retirando cdigo do seu
ncleo, tornando-o menor e mais estvel. No caso de uma ou mais funes no serem
desejadas, basta no ativar os processos responsveis, o que permitir liberar memria
para os processos dos usurios. So algumas das funes do SO que podem ser
implementadas atravs de processos:
Auditoria e segurana;
Servios de rede;
Contabilizao do uso de recursos;
Gerncia de impresso;
Gerncia de jobs batch;
Temporizao;
Comunicao de eventos;
Interface de comandos (shell).
Grande parte do ncleo do sistema executada no contexto de processos, inclusive no
contexto de processos de usurios.
Tipos de Processos Os processos podem ser classificados de acordo com o tipo de
processamento que realizam. Sob esse aspecto, podemos definir dois tipos de processos:
CPU-bound um processo que passa a maior parte do tempo no estado de execuo,
ou seja, utilizando o processador. Esse tipo de processo realiza poucas operaes de E/S
e encontrado em aplicaes matemticas ou cientficas, que efetuam muitos clculos e
poucas operaes de leitura/gravao.
I/O-bound um processo que passa a maior parte do tempo no estado de espera, pois
realiza um elevado nmero de operaes de E/S. Esse tipo de processo encontrado em
aplicaes comerciais, que se baseiam em leitura, processamento e gravao. Os
processos interativos tambm so bons exemplos de processos I/O-bound, pela forma de
comunicao entre o usurio e o sistema, normalmente lenta, devido utilizao de
terminais.
27

COMUNICAO ENTRE PROCESSOS


Os mecanismos que garantem a comunicao entre processos concorrentes e o acesso a
recursos compartilhados so chamados mecanismos de sincronizao. No projeto de
SOs multiprogramveis, fundamental a implementao de mecanismos de
sincronizao que garantam sua integridade e confiabilidade.
Soluo para os Problemas de Compartilhamento A soluo mais simples, para evitar
os problemas de compartilhamento, impedir que dois ou mais processos acessem um
mesmo recurso no mesmo instante. Para isso, enquanto um processo estiver acessando
determinado recurso, todos ou outros que queiram acessar esse mesmo recurso devero
esperar at que o primeiro processo termine o acesso. Essa idia de exclusividade de
acesso chamada excluso mtua.
A excluso mtua deve apenas afetar os processos concorrentes quando um deles estiver
fazendo acesso ao recurso compartilhado. A parte do cdigo do programa onde feito o
acesso ao recurso compartilhado denominada regio crtica. Se pudermos evitar que
dois processos entrem em suas regies crticas ao mesmo tempo, ou seja, se
conseguirmos a execuo mutuamente exclusiva das regies crticas, evitaremos os
problemas decorrentes do compartilhamento.
Os mecanismos que implementam a excluso mtua utilizam um protocolo de acesso
regio crtica. Toda vez que um processo for executar sua regio crtica, ele
obrigatoriamente executar, antes, um protocolo de entrada nessa regio. Da mesma
forma que, ao sair, dever executar um protocolo de sada.
Para garantir a implementao da excluso mtua, os processos envolvidos devem fazer
acesso aos recursos compartilhados de forma sincronizada.
Problemas de Sincronizao Na tentativa de implementar a excluso mtua, algumas
solues introduzem novos problemas, que chamaremos de problemas de sincronizao.
Eles so to graves quanto os gerados pela ausncia da excluso mtua. Qualquer
soluo para os problemas de compartilhamento de recursos entre processos passa
necessariamente pela soluo dos problemas de sincronizao.
Problemas comuns decorrentes da sincronizao entreprocessos:
Velocidade de execuo dos processos pode interferir em uma boa soluo para o
problema da excluso mtua, pois se tivermos dois processos para serem executados e
os dois precisem acessar um mesmo recurso diversas vezes, sendo que um processo seja
muito longo e o outro curto, caso o processo longo seja executado antes do curto, estar
bloqueado at que a longa saia da regio crtica. Devido a isto, por mais curto que o
processo seja, ele demorar muito tempo para ser executado devido espera pelo
processo longo.
28

Starvation a situao onde um processo nunca consegue executar sua regio crtica
e, consequentemente, acessar o recurso compartilhado. Este problema ocorre quando
dois ou mais processos esperam por um recurso alocado. No momento em que o recurso
liberado, o sistema deve determinar qual processo, entre os que esto esperando,
ganhar acesso ao recurso. Caso essa escolha seja realizada de forma aleatria, existe a
possibilidade de um processo nunca ser escolhido e sofrer starvation. Outra
implementao, que tambm pode gerar esse problema, quando o sistema determina
prioridades para os processos acessarem o recurso. A baixa prioridade de um processo
em relao a outros, que concorram pelos mesmos recursos, pode levar o processo a
sofrer starvation. Assim, sempre que o recurso liberado, o sistema escolhe o processo
mais prioritrio, podendo ocorrer que processos de baixa prioridade esperem
indefinidamente pelo recurso. Uma soluo bastante simples para esse problema a
criao de filas de pedidos de alocao para cada recurso. Sempre que um processo
desejar um recurso, o pedido colocado no final da fila associada a ele. Quando o
recurso liberado, o sistema seleciona o primeiro processo da fila. O esquema de o
primeiro a chegar ser o primeiro a ser atendido (FIFO) elimina o problema do
starvation.
Sincronizao Condicional Outra situao na qual necessria a sincronizao entre
processos concorrentes quando um recurso compartilhado no se encontra pronto para
ser utilizado pelos processos. Nesse caso, o processo que deseja acessar o recurso
dever ser colocado no estado de espera, at o recurso ficar pronto para o
processamento. Esse tipo de sincronizao chamado sincronizao condicional.
Solues de Hardware Estas solues so importantes porque criam mecanismos que
permitem a implementao das solues de software.
Desabilitao de Interrupes A soluo mais simples para o problema da excluso
mtua fazer com que o processo, antes de entrar em sua regio crtica, desabilite todas
as interrupes externas e as reabilite aps deixar a regio crtica. Como a mudana de
contexto s pode ser realizada atravs de interrupes, o processo que as desabilitou ter
acesso exclusivo garantido. Esse recurso incoveniente por vrios motivos. O maior
deles acontece quando o processo que desabilitou as interrupes no torna a habilitlas. Nesse caso, o sistema, provavelmente, ter seu funcionamento seriamente
comprometido. A desabilitao das interrupes, no entanto, pode ser til ao SO quando
este necessita manipular estruturas de dados compartilhadas do sistema, como lista de
processos. Dessa forma, o sistema garante que no ocorrero problemas de
inconsistncia de dados.
Instruo Teste-and-Set Muitos processadores possuem uma instruo especial, que
permite ler uma varivel, armazenar seu contedo em uma outra rea e atribuir um novo
valor a essa varivel. Esse tipo especial de instruo chamado instruo test-and-set e
tem como caracterstica ser sempre executada sem interrupo, ou seja, trata-se de uma
instruo indivisvel. Assim, no existe a possibilidade de dois processos estarem
manipulando uma varivel compartilhada ao mesmo tempo, possibilitando a
implementao da excluso mtua.
29

Solues de Software Alm da excluso mtua, que soluciona os problemas de


compartilhamento de recursos, trs fatores fundamentais para s soluo dos problemas
de sincronizao devero ser atendidos:
O nmero de processadores e o tempo de execuo dos processos concorrentes devem
ser irrelevantes;
Um processo, fora de sua regio crtica, no pode impedir que outros processos entram
em suas prprias regies crtica;
Um processo no pode permanecer indefinidamente esperando para entrar em sua
regio crtica.
4.CONCLUSO
Apesar de as solues at ento apresentadas implementarem a excluso mtua, todas
tinham a deficincia da espera ocupada. Na espera ocupada, toda vez que um processo
tenta entrar em sua regio crtica e impedido, por j existir outro processo acessando o
recurso, ele fica em looping, testando uma condio, at que lhe seja permitido o acesso.
Dessa forma, o processo bloqueado consome tempo do processador desnecessariamente.
A soluo para o problema da espera ocupada foi a introduo de comandos (primitivas)
que permitissem que um processo, quando no pudesse entrar em sua regio crtica,
fosse colocado no estado de espera at que outro processo o liberasse. Esse mecanismo
passou a ser adotado nas solues que se seguiram.
Semforos O conceito de semforo foi proposto como uma soluo mais geral e
simples de ser implementada, para os problemas de sincronizao entre processos
concorrentes. Um semforo uma varivel inteira, no negativa, que s pode ser
manipulada por duas instrues DOWN e UP. No caso da excluso mtua, as instrues
DOWN w UP funcionam como protocolos de entrada e sada, para que um processo
possa entrar e sair de sua regio crtica. O semforo fica associado a um recurso
compartilhado, indicando quando o recurso est sendo acessado por um dos processos
concorrentes. Se seu valor for maior que 0, nenhum processos est utilizando o recurso;
caso contrrio, o processo fica impedido de acesso. Sempre que deseja entrar na sua
regio crtica, um processo executa uma instruo DOWN. Se o semforo for maior que
0, este decrementado de 1, e o processo que solicitou a operao ficar no estado de
espera, em uma fila associada ao semforo. O processo que est acessando o recurso, ao
sair de sua regio crtica, executa uma instruo UP, incrementado o semforo de 1 e
liberando o acesso ao recurso. Se um ou mais processos estiverem esperando, devido a
operaes DOWN dependentes, o sistema escolhe um processo na fila de espera e muda
seu estado para pronto. As operaes DOWN e UP so indivisveis; assim, garantido
que, se uma das operaes for iniciada, nenhum outro processo poder Ter acesso ao
semforo at o trmino dessa operao. Normalmente, as instrues UP e DOWN so
implementadas como rotinas do sistema (system calls), com o sistema desabilitando
todas as interrupes para a execuo exclusiva das instrues. O uso de semforos
exige do programador muito cuidado, pois qualquer engano pode levar a problemas de
sincronizao imprevisveis e difceis de reproduzir, devido execuo concorrente dos
processos.
30

Monitores so mecanismos de sincronizao de alto nvel que tentam tornar mais


fceis o desenvolvimento e a correo de programas concorrentes. um conjunto de
procedimento, variveis e estrutura de dados definido dentro de um mdulo. Sua
caracterstica mais importante a implementao automtica da excluso mtua entre
seus procedimentos, ou seja, somente um processo pode estar executando um dos
procedimentos do monitor em um determinado instante. Toda vez que algum processo
chama um desses procedimentos, o monitor verifica se j existe outro processo
executando algum procedimento do monitor. Toda implementao da excluso mtua
nos monitores realizada pelo compilador, e no mais pelo programador, como no caso
do uso de semforos. Para isso, basta colocar todas as regies crticas em forma de
procedimentos no monitor e o compilador se encarregar de garantir a excluso mtua
desses procedimentos. Assim, o desenvolvimento de programas concorrentes fica mais
fcil e as chances de erros so menores.

5.REFERNCIAS BIBLIOGRFICAS
- MACHADO, Francis Berenger e MAIA, Luiz Paulo. Arquitetura de Sistemas
Operacionais, 2a. edio. Ed. LTC, 1997.
-Andrew S. Tanenbaum. Sistemas Operacionais Modernos Pearson Prentice Hall. 2003
Segunda edio. Ttulo original: Modern Operating Systems.
-Harvey M. Deitel, Paul J. Deitel e David R. Choffnes. Sistemas Operacionais Pearson
Prentice Hall, 2005. Terceira edio. Ttulo original: Operanting Systems.

31

Vous aimerez peut-être aussi