Académique Documents
Professionnel Documents
Culture Documents
PRONATEC
CURSO DE TCNICO EM INFORMTICA PARA INTERNET
PROJETO INTEGRADOR I
TEMA
Sistemas Operacionais
Crates 2013
Tema
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
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
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
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
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
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
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