sistemas operacionais
Post on 13-Jan-2015
30.518 Views
Preview:
DESCRIPTION
TRANSCRIPT
- 1. Prof. Robrio
SISTEMAS OPERACIONAIS
2. Apresentao.
Se voc possui um computador ou trabalha com um, ento j utilizou um
sistema operacional. Todos os computadores vendidos para o uso
domstico ou para escritrios incluindo os notebooks (computadores
portteis) utilizam um programa chamado Sistema Operacional. A
maioria dos computadores vendidos vem com o MS-Windows XP. Alguns
computadores utilizados em empresas, denominados os Computadores
Servidores possuem um sistema operacional chamado Unix, e existe um
tipo de computador chamado Macintosh cujo sistema operacional
denominado Mac-OS X.
3. O Sistema Operacional o primeiro programa que um computador ir
executar. Sem o sistema operacional, os computadores atuais seriam
inutilizveis. Recentemente os sistemas operacionais tambm so
utilizados em telefones celulares,contendo a maioria das
funcionalidades que so encontradas nos sistemas operacionais dos
computadores. Um celular moderno mais poderoso que um O objetivo de
um sistema operacional organizar e controlar o hardware e o
software para que o dispositivo funcione de maneira flexvel e
previsvel.computador de mesa, daqueles de 20 anos atrs.
4. Objetivos.
Este mdulo tem como objetivo passar ao alunos os conhecimentos
gerais sobre osSistemas Operacionais: como so construdos, quais so
as caractersticas que devem estar presentes, os tipos de sistemas
operacionais, quais as diferenas entre os sistemas, dentre outros
tpicos.
5. Ementa.
Esta disciplina ser trabalhada da seguinte maneira:
Parte Terica - Conceitos Gerais, Estruturao do Sistema
Operacional,Gerenciamento de Processos, Memria, Dispositivos e
Arquivos, Diferenas entre os Sistemas de Arquivos Diferenas entre o
MS-Windows e Linux, Sistemas Especficos.
Parte Prtica Realizao de exerccios, atividades, leituras
adicionais, debates.
Material Complementar vdeos informativos e apostilas com assuntos
diversos.
6. Unidade I
Primeiros Computadores
Primeiros Microcomputadores
Sistemas Operacionais Modernos
7. Primeiros Computadores
Em 1890, foi desenvolvido o primeiro computador mecnico. A partir
de 1930, comearam as pesquisas para substituir as partes mecnicas
por eltricas. O Mark I, construdo em 1944 por uma equipe da
Inglaterra, o primeiro computador eletromecnico capaz de efetuar
clculos mais complexos sem a interferncia humana. Ele media 15m x
2,5m. Em 1946,surgiu o ENIAC
(ElectronicNumericalIntegratorandComputer), primeiro computador
eletrnico e digital automtico: pesava 30 toneladas, utilizava cerca
de 18 mil vlvulas e realizava 4.500 clculos por segundo. O ENIAC
continha a arquitetura bsica de um computador.
8. A inveno do transistor, em 1947, substituiu progressivamente as
vlvulas,aumentando a velocidade das mquinas.Os primeiros
computadores, por serem eletromecnicos, eram muito difceis de serem
operados. Era necessrio ter o conhecimento de toda a sua
arquitetura e a programao dessas mquinas era feita em painis
contendo cerca de 6.000 interruptores. E, alm disso,esses
computadores no possuam monitor ou teclado, nem sistema
operacional.
9. A partir de 1950 os computadores comearam a ser construdos com a
utilizao de transistores, tornando-se mquinas puramente eletrnicas.
Surgiram dispositivos auxiliares para operarem em conjunto com o
computador, tais como: disco-rgido, memria RAM,teclado e monitor.
Foi nessa poca que surgiu o primeiro computador, o Univac 1103, com
um sistema operacional, o ERA, programa que permitia a interao,
limitada, entre o operador e a mquina e possibilitava a execuo das
tarefas de maneira mais simplificada. Na dcada de 60 surgiram os
circuitos integrados, que permitiram a criao de computadores por um
preo bastante inferior. Um computador de capacidade mdia, da dcada
de 50, custava centenas de milhares de dlares, e um com capacidade
equivalente, da dcada de 1960, podia ser comprado por cerca de
20.000 dlares.
10. Graas queda nos preos, os computadores tornaram-se equipamentos
comuns nas mdias e grandes empresas dos Estados Unidos e Europa.
Alm da queda nos preos, houve tambm o surgimento de vrias inovaes,
tanto na eletrnica quanto na rea do desenvolvimento de programas.
Em 1971, a Intel projetou o processador i4004, dispositivo que
reuniu num mesmo circuito, todas as funes do computador, tecnologia
que permitiu a criao do computador pessoal, ou microcomputador. O
processador a parte mais importante do computador, pois responsvel
por coordenar a realizao de todas as tarefas.
11. Primeiros Microcomputadores.
O primeiro computador pessoal o Apple I, inventado em 1976 pelos
americanos Steve Jobs e StephanWozniak. Em 1981, a IBM lanou o seu
PC (PersonalComputer), que se tornou um sucesso comercial,
utilizando o processador Intel i8080. Posteriormente, os PC's
passaram a usar processadores cada vez mais potentes: i286, i386SX,
i386DX, i486SX,i486DX. Na dcada de 90 surgiram os computadores que,
alm do processamento de dados,renem fax, modem, secretria
eletrnica, scanner, acesso Internet e unidade para CD. Basicamente,
o computador formado por: Gabinete, Monitor, Teclado e Mouse. Os
outros dispositivos (caixa de som, microfone, impressora,
digitalizador, etc.) so dispositivos acessrios.
12. Na dcada de 80 os computadores tornaram-se equipamentos
populares, comprados para serem utilizados em casa, auxiliando a
organizao e planejamento domstico, alm de ser utilizado no
entretenimento familiar. Havia uma diferena essencial nos sistemas
operacionais feitos at a dcada de 80 e os sistemas feitos a partir
de 1990: a maneira como o usurio realizava as operaes no
computador. Ainda em 1980 um determinado tipo de sistema
operacional comea a se tornar popular: o Sistema Operacional com
Interface Grfica. Em 1984 surge o Apple Macintosh, primeiro
computador popular com interface grfica, e em 1985 surge o
MS-Windows 1.0, primeira verso do sistema operacional
Windows.
13. Sistemas Operacionais Modernos.
Em 1993 a empresa Intel, que, na poca, j detinha a liderana no
desenvolvimento de processadores, criou o Pentium, e em 1995 a
Microsoft lana o Sistema Operacional Windows 95, e a partir dessa
data iniciou-se uma nova etapa na Computao, com avanos tecnolgicos
em praticamente todas as reas. Atualmente quase todos os sistemas
operacionais utilizam interfaces grficas para permitir que o usurio
possa realizar todas as tarefas no computador (ou em telefones
celulares com vrias funcionalidades).
14. Os sistemas mais utilizados atualmente so: MS-Windows, Mac-OS
X, Linux (KDE) e Symbian (utilizado na maioria dos aparelhos de
telefone celular). A utilizao de interfaces grficas facilita em
muito a utilizao dos computadores, pois a torna mais intuitiva e
mais simples.
15. Unidade II
Classificao Dos Sistemas Operacionais
Classificao Pela Arquitetura Do Sistema
Classificao Pela Execuo De Tarefas
Classificao Pela Quantidade De Usurios
16. Classificao Dos Sistemas Operacionais
Os primeiros Sistemas Operacionais foram feitos para executarem uma
nica tarefa em um computador especfico, sendo utilizado por um nico
usurio a cada tarefa. Com o desenvolvimento da informtica, os
sistemas operacionais foram evoluindo, e hoje podem
serclassificados de acordo com as seguintes anlises:
17. Caractersticas bsicas da Arquitetura do Sistema: Monoltico,
Microkernel ou Hbrido.
Capacidade de execuo das tarefas: Monotarefa ou Multitarefa;
Quantidade de usurios que podem operar o sistema: Monousurio ou
Multiusurio.
18. Classificao Pela Arquitetura Do Sistema
Em relao a Arquitetura os Sistemas Operacionais podem ser:
Monoltico: possui um conjunto de instrues de alto nvel que
possibilitam o gerenciamento de processos, memria e dispositivos
atravs de mdulos dedicados que so executados com privilgios
especiais. O sistema operacional escrito como uma coleo de rotinas,
em que cada uma pode chamar qualquer outra rotina, sempre que for
necessrio. Exemplos de sistemas desse tipo so: MS-Windows 98, Linux
e Solaris.
Microkernel: algumas das funes do sistema operacional foram
separadas em programas chamados Servidores. Os servidores se
comunicam com um sistema operacional mnimo, que possui todas as
instrues de manipulao e acesso a todos os componentes do
computador. O sistema Minix, que uma variao do Unix, e possui uma
arquitetura de microkernel.
19. Hbrido: nesse caso os Servidores externos so executados em um
modo chamadoprotegido, permitindo assim que esses programas tenham
alguns privilgios de acesso a alguns componentes do computador,
melhorando o desempenho geral do sistema. Sendo hbrido, tem a
capacidade de agregar ou desagregar funcionalidades,sem perder
performance ou estabilidade presentes na sua estrutura inicial.
Sistemas com arquitetura hbrida so: MacOS X, Windows 2000 e
BeOS.
20. Classificao Pela Execuo De Tarefas
A capacidade de execuo de tarefas divide os sistemas em:
stemasMonotarefa: executam uma tarefa de cada vez, como por
exemplo: imprimirum arquivo. Praticamente no so mais utilizados
hoje em dia, devido ao desperdcio de recursos do computador que
eles causam. O extinto MS-DOS da Microsoft um exemplo de sistema
operacional monotarefa.
Sistemas Multitarefa: executam vrias tarefas simultaneamente, como
por exemplo: criar um desenho, tocar uma msica e imprimir um
documento. Sistemas Operacionais multitarefa conseguem maximizar a
utilizao dos recursos do computador. At mesmo os sistemas
operacionais de alguns aparelhos de telefone celular so
multitarefa. Um exemplo o MS-Windows XP. Os sistemas multitarefa
podem ser classificados de acordo com a forma com que suas aplicaes
so gerenciadas, podendo ser divididos em: sistemas de tempo
compartilhado e sistemas de tempo real.
21. Sistemas de Tempo Compartilhado: (Time SharingSystens em ingls)
permitem que diversos programas sejam executados a partir da diviso
do tempo de utilizao do processador em pequenos intervalos,
denominados fatias de tempo (time slice). Se houver a necessidade
de executar mais de um programa, o sistema operacional ir designar
uma fatia de tempo para cada um, e se a fatia de tempo concedida a
um programa no for suficiente para a concluso do mesmo, ele ser
interrompido pelo sistema operacional e seu estado corrente ser
armazenado, e um outro programa entrar em execuo. Essa etapa
denominada de Troca de Contexto. Essas trocas acontecero enquanto
houver algum programa que no tenha concludo a sua tarefa.
22. Figura 2.1: Diagrama funcional
de um Sistema Operacional Monoltico
23. A figura 2.1 demonstra o funcionamento de um sistema de tempo
compartilhado durante a execuo de 2 programas, A e B. Inicialmente
o sistema operacional executa o programa A, aps um certo tempo, o
programa A ser interrompido, e a execuo passar para o programa B.
Quando o sistema operacional voltaexecutar o programa A, ele
continua a execuo do ponto de parada anterior. Sistemas de Tempo
Real: a diferena dos sistemas de tempo real para os sistemas de
tempo compartilhado a definio do tempo de execuo de cada programa.
Nos sistemas de tempo compartilhado, quem define o tempo de
processamento dos programas o sistema operacional, j nos sistemas
de tempo real quem define o tempo de execuo do programa o prprio
programa.
24. No sistema de tempo real no existe o conceito de fatia de
tempo, um determinado programa ser executado no processador pelo
tempo que for necessrio, at a sua concluso, ou at que seja iniciado
um programa com maior prioridade de execuo. A prioridade tambm
definida pela prpria aplicao e no pelo sistema operacional.
Praticamente todos os sistemas operacionais utilizados nos
computadores hoje em dia so de tempo compartilhado. Os sistemas
Windows XP, Linux, MacOS X e Symbianso sistemas operacionais de
tempo compartilhado. Os Sistemas de Tempo Real so utilizados em
aplicaes de controle de processos, como monitoramento de refinarias
de petrleo, controle de trfego areo, de usinas, ou em qualquer
aplicao em que o tempo de processamento fator fundamental.
25. Classificao Pela Quantidade De Usurios
Por ltimo, abordaremos a classificao quanto a quantidade de usurios
que operam um sistema operacional:
Monousurio: O sistema operacional foi criado para que um nico
usurio utilize os recursos do computador. Na prtica mais de uma
pessoa pode utilizar, mas, nesse caso, o sistema operacional no far
distino entre as pessoas, tratando todas como se fossem a mesma.
Isso significa que um documento escrito por algum poder ser lido
(ou alterado) por outra pessoa. Alm disso, qualquer um poder
executar qualquer tarefa no computador. As agendas eletrnicas
atuais, chamadas PDA (PersonalData Assistentem ingls), utilizam um
sistema operacional monousurio.
26. Multiusurio: Um sistema operacional multiusurio permite que
diversos usurios utilizem os recursos do computador. O sistema
operacional deve garantir que as tarefas dos usurios estejam
separadas e no haja interferncia entre as mesmas. Cada um dos
programas utilizados deve dispor de recursos suficientes e
separados, de forma que o problema de um usurio no afete toda a
comunidade de usurios. Unix e sistemas operacionais mainframe como
o MVS so exemplos de sistemas operacionais multiusurio. Os sistemas
operacionais Windows XP e MacOS X esto sendo considerados sistemas
multiusurio, pois fazem distino entre os vrios usurios que utilizam
o computador.
27. Unidade III
Definio De Sistemas Avanados De Processamento
Computadores Com Vrios Processadores
Processador Com Vrios Ncleos
Processamento Distribudo
28. Definio De Sistemas Avanados De Processamento
Os Sistemas Avanados de Processamento caracterizam-se por possuir
duas ou mais unidades de processamento interligadas e trabalhando
em conjunto, podendo ter dois (ou mais) processadores em um
computador, ou vrios computadores conectados em rede. A vantagem
desse tipo de sistema permitir que vrias tarefas possam ser
realizadas simultaneamente, sem a necessidade de compartilhamento
do tempo do processador, ou ento que uma determinada tarefa possa
ser dividida entre as unidades de processamento para agilizar a sua
concluso.
29. Como o sistema operacional responsvel por gerenciar a execuo
das tarefas, deve estardevidamente adaptado para operar em sistemas
com mais de uma unidade de processamento, para poder distribuir a
execuo dos programas e maximizar a utilizao dos recursos
disponveis. A construo de Sistemas Avanados de Processamento foi
feita pensando-se em aplicaes voltadas para o processamento
cientfico, explorao de minerais e petrleo,simulaes e computao
grfica. Grande parte dos supercomputadores instalados ao redor do
mundo est em uso em Laboratrios de Pesquisa dos EUA, Europa e Japo,
e em grandes empresas como Dupont, Petrobrs, entre outras.
30. Computadores Com Vrios Processadores
Os computadores com vrios processadores eram utilizados basicamente
em pequenos laboratrios cientficos. Atualmente esto disponveis a
todas as pessoas, por um preo muito acessvel. Nesses computadores,
o sistema operacional pode distribuir a execuo das tarefas pelos
processadores, e em teoria, aumentar o desempenho geral do sistema
proporcionalmente quantidade de processadores disponveis na prpria
mquina.
Atualmente, os sistemas operacionais Windows 2003, MacOS X, e
algumas verses do Unix podem ser executados em computadores com
vrios processadores. O Windows XP no oferece suporte para execuo
nesses computadores.
31. Na prtica o ganho de desempenho no proporcional quantidade de
processadores
instalados no computador, pois para trabalhar em um computador com
vrios processadores o prprio sistema operacional deve executar
operaes de gerenciamento e controle das rotinas para distribuir os
programas pelos processadores. Alguns sistemas conseguem uma
performance superior a 90%, isto , se o computador possui 16
processadores, o desempenho geral ser 14,4 vezes melhor do que um
computador com 1 processador.
32. Processador Com Vrios Ncleos
Um outro tipo de Sistema Avanado formado por computadores em que o
processador
central feito com mais de uma unidade principal de processamento.
Esses sistemas esto
sendo feitos atualmente para serem utilizados tambm em computadores
de escritrio e
domsticos, principalmente por causa da queda de preos. Os
processadores Intel Pentium
Dual Core, Intel Core Duo e AMD Athlon X2, entre outros utilizam
duas unidades de
processamento em cada processador. De maneira anloga aos sistemas
com vrios
processadores, o ganho de desempenho em processadores com vrios
ncleos no
proporcional quantidade de ncleos do mesmo. Os processadores Intel
QuadCore, e
AMD Phenom utilizam 4 unidades de processamento em um nico
processador. E existem
outros com vrios ncleos como o SUN UltraSPARC T1 que possui 8
ncleos internos, e o
Tile64 com 64 ncleos de 16 bits.
33. Processamento Distribudo
Um computador de Processamento Distribudo um sistema formado por
uma rede de computadores interligados, denominados ns da rede, com
o objetivo de realizarem o processamento conjunto de uma tarefa de
grandes propores. Esta tarefa ser ento dividida em pequenas
sub-tarefas, e cada uma das sub-tarefas ser executada em um n da
rede, e dessa forma consegue-se um ganho substancial no tempo de
execuo da tarefa.
Esses sistemas so construdos com alguns sistemas operacionais
disponveis para computadores de mesa, a diferena a incluso de
alguns programas especiais, o mais utilizado chama-se LAM-MPI, que
permite que os computadores da rede realizem a comunicao necessria
para a diviso da execuo das tarefas. O LAM-MPI tambm possui uma
biblioteca de funes que devem ser utilizadas nos programas a serem
executados nos sistemas distribudos, de modo que realizem as
devidas comunicaes e transferncias de dados.
34. Os agregados de computadores (computer clusters em ingls) tambm
so sistemas distribudos, a diferena entre um Sistema Distribudo
Real, como o IBM BlueGene e um cluster que o primeiro possui uma
arquitetura eletrnica especializada e um sistema operacional
especfico, enquanto que os clusters so formados por computadores
comuns conectados via Ethernet e geralmente utilizam o sistema
operacional Linux (o Windows NT raro).
35. Unidade IV
Estrutura Do Sistema
Funes do Sistema Operacional
Chamadas ao Sistema
36. Estrutura Do Sistema
O sistema operacional utilizado para organizar e controlar a
realizao das tarefas feitas no computador. Para que isso acontea de
maneira ordenada, a relao atualmente utilizada entre os componentes
do sistema, isto , o computador, o sistema operacional, os
programas, e at mesmo o usurio, a seguinte: O Usurio utiliza
programas para realizar suas atividades, esses programas so:
aplicativos (Word, AutoCAD, Oracle), utilitrios (WinZip,
MediaPlayer, MSN) e jogos (FIFA, Ragnarok,Warcraft). At mesmo o
Painel de Controle do Windows XP um programa:
C:WindowsSystem32control.exe.
Os programas em execuo necessitam em determinados instantes
realizar o acesso aalgum dispositivo, como o monitor de vdeo ou a
impressora, para apresentar o resultado de uma tarefa ou interagir
com o usurio. Imagine que um programa atualize um arquivo no
disco-rgido. O programa no pode acessar diretamente os dados no
disco, pois um recurso compartilhado e sua utilizao deve ser
gerenciada pelo sistema operacional.
37. Para que isso acontea, os programas executam algumas operaes
com o auxlio do sistema operacional, essas operaes so realizadas
utilizando-se funes denominadas Chamadas ao Sistema, ou System
Calls em ingls.
O Sistema Operacional deve verificar qual usurio est utilizando o
computador naquele instante, se os programas em execuo esto ativos
ou esperando alguma concluso de uma tarefa, se no existe conflito
entre os programas, se os dispositivos conectados ao computador
esto disponveis para utilizao, dentre outras tarefas.
38. Funes do Sistema Operacional
As principais funes do Sistema Operacional so:
Tratamento de Interrupes: Durante a execuo dos programas, o Sistema
Operacional deve estar preparado para tratar eventos inesperados. A
interrupo gerada por um evento externo ao programa em execuo, no
dependente da instruo que est sendo executada, como por exemplo, a
movimentao do mouse. Ao trmino de cada instruo do programa, o
processador verifica se houve a ocorrncia de alguma interrupo e
caso haja, avisa o sistema operacional, para que o mesmo possa
realizar as devidas operaes. O programa em execuo ser
momentaneamente paralisado, e para que possa retornar execuo
posteriormente,um determinado conjunto de informaes sobre sua
execuo ser armazenada. As interrupes sempre so geradas por algum
dispositivo do computador: disco-rgido, impressora, teclado,
processador, etc.
39. Tratamento de Excees: as excees so semelhantes s interrupes,
pois ambas ocasionam a paralisao da execuo dos programas ativos no
computador. A diferena entre ambas que nas excees a causa da
paralisao originada em algum programa em execuo. Por exemplo, em um
programa que realiza operaes matemticas no pode existir uma instruo
que faa a diviso de um nmero por zero, caso isso acontea, essa
instruo no poder ser executada (pois no existe
resposta).Quando ocorre uma exceo, o sistema operacional deve
emitir um aviso apenas no programa que causou a exceo indicando que
uma operao invlida foi executada. (De fato, a operao em si
executada, se o sistema operacional estiver preparado para lidar
com a situao, apenas um aviso ser exibido ao usurio, caso contrrio,
o sistema inteiro pode falhar. Atualmente comum o tratamento
preventivo de excees dentro do prprio programa).
40. Gerenciamento de Programas: o sistema operacional responsvel
por colocar em execuo, administrar e finalizar todos os programas
executados no computador. No gerenciamento feita a alocao de
memria, a disponibilizao de recursos, a administrao dos programas
em execuo feita fornecendo a cada programa o devido tempo de
utilizao do processador e dos dispositivos do computador.
Gerenciamento da Memria RAM: O sistema operacional deve a todo
instante verificar a disponibilidade de memria RAM no computador,
para evitar que haja travamento do sistema inteiro por falta de
espao para armazenamento dos programas ou dados.
Gerenciamento de Arquivos: a criao, edio e excluso de qualquer
arquivo no computador s acontecem com a permisso do sistema
operacional. Nesta etapa feita a verificao do usurio que est
solicitando acesso a um determinado arquivo,qual programa ser
executado para manipul-lo, e em alguns sistemas, feito tambm o
registro em um local separado do acesso ao arquivo pelo usurio,
para fins de controle.
41. Gerenciamento de Dispositivos: todos os dispositivos conectados
ao computador so gerenciados pelo sistema operacional, onde feita a
verificao de utilizao do dispositivo, disponibilidade do
dispositivo, liberao para uso, entre outras funes.
Suporte a Redes: praticamente todos os principais sistemas
operacionais comercializados atualmente oferecem mecanismos de
gerenciamento e acesso s redes de computadores. Isto feito por meio
de controle de computadores interconectados, protocolos de
comunicao utilizados e usurios que esto autorizados a utilizar os
recursos disponveis na rede.
42. Alm das tarefas citadas, atualmente os sistemas operacionais
tem que possuir a seguinte caracterstica:
Sistema de Segurana: caracterstica de muita importncia nos dias de
hoje, devido grande utilizao da internet e dos recursos por ela
oferecidos. O sistema operacional deve garantir entre outras coisas
que:
Apenas programas confiveis (que tenham a permisso do usurio) sejam
executados no computador;
Apenas usurios cadastrados previamente (ou autorizados
momentaneamente) tenham acesso aos recursos do computador;
As informaes armazenadas no computador s podem ser acessadas por
usurios e programas autorizados a manipul-las.
43. Chamadas ao Sistema
Durante o projeto de Sistemas Operacionais as maiores preocupaes
so: proteo do
ncleo do sistema (kernel) e controle do acesso aos recursos do
computador. Se um
determinado programa realizar uma operao que comprometa ou
bloqueie, indevidamente,um ou mais recursos do computador, todos os
outros programas podem ficar comprometidos. Imagine que um programa
acesse o disco-rgido para gravar um arquivo, e no libere o disco
mesmo depois de gravar, todos os programas no tero acesso ao disco
por causa disso.
Para organizar a execuo dos programas, os sistemas operacionais so
feitos com um
conjunto de rotinas denominado Chamadas ao Sistema. Essas rotinas
so responsveis
por executarem as operaes especiais de acesso aos recursos do
computador e de acesso
ao ncleo do sistema. Atravs das informaes passadas a uma rotina,
que ser executada
pelo prprio sistema operacional, garantindo assim o controle de
todos os recursos
disponveis no computador. Ao trmino da execuo da rotina uma
resposta ser enviada ao
programa que solicitou a sua execuo.
44. Unidade V
Definio de Processo
Gerenciamento de Programas
Estados de um processo
Comunicao Entre Processos
45. Definio de Processo
Um programa uma seqncia de instrues ordenadas escritas em uma
linguagem computacional (Pascal, C++, Java, etc.). Um processo uma
instncia de um programa que est sendo executado, ou seja, o
programa sendo executado no computador. Dependendo de como o
programa foi criado, mais de um processo pode estar associado a ele
durante a execuo, sendo que cada processo representa um determinado
conjunto de instrues do programa original. Isto acontece no
Mediaplayer, por exemplo, quando h uma msica tocando e o usurio est
procurando uma outra msica na lista de msicas, neste caso existe um
programa em execuo e pelo menos dois processos associados tambm em
execuo.
46. Os sistemas operacionais mais utilizados hoje em dia so
multitarefa, realizada atravs docompartilhamento do tempo do
processador. Desta forma, vrios programas podem ser executados, e
consequentemente vrios processos, em um mesmo computador.
Pararealizar esta tarefa o sistema operacional deve separar os
programas, e processos, para quea execuo seja feita de maneira
organizada, e para isso as seguintes propriedades deve ser
armazenadas para cada processo:
47. Cdigo executvel do programa associado ao processo;
Espao de Memria utilizado, onde fica armazenados o cdigo executvel,
dados utilizados, estruturas de controle de execuo;
Descritores do Sistema Operacional, como tabela de arquivos em
disco ou servidores de banco de dados;
Atributos de Segurana, indicando o nome do usurio que iniciou o
processo, as permisses de execuo no computador;
Estado do Processo, que informar se o processo est em execuo,
esperando a liberao de algum recurso, bloqueado ou em outra
situao.
48. Gerenciamento de Programas
O sistema operacional, sendo multitarefa, realiza o
compartilhamento do processador entre os processos por meio da
ativao, momentnea, do processo que ser executado no processador. Se
o processador possuir mais de um ncleo de processamento, mais de um
processo poder estar em execuo no processador. Como apenas um
processo pode estar
ativo em cada ncleo do processador, os outros devero esperar alguns
instantes, at que oprocesso em execuo tenha sido executado pelo
tempo que o sistema operacional designou a ele. Quando o tempo do
processo atual terminar, o sistema operacional realizar uma operao
chamada Troca de Contexto, em que o processo atual ser substitudo
por um outro processo que estava esperando a liberao de um ncleo no
processador.
49. A Troca de Contexto a etapa em que o sistema operacional
armazenar todas as informaes relativas execuo do processo atual,
para permitir que o mesmo possa continuar a execuo em outro
momento, e incluir um outro processo para ser executado.
Esta etapa deve ser executada de maneira quase instantnea, pois o
processador deve serutilizado principalmente para executar os
programas. Existem trs eventos que podem iniciar a Troca de
Contexto:
50. Escalonamento de Processo: como foi dito anteriormente, cada
processo em execuo ir utilizar um ncleo do processador por uma
fatia de tempo, quando este tempo se esgotar, o processo atual
dever ser substitudo por um outro processo;
Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de uma
interrupo/exceo, o sistema operacional deve entrar em operao para
tratar da interrupo/exceo, e para isso, o prprio sistema
operacional iniciar um (ou mais) processo (s) prprio(s).
O terceiro cenrio a troca de modo usurio para modo kernel. Quando
tal transio requisitada pelo sistema operacional, uma troca de
contexto no necessria, mas
dependendo da implementao isso feito.
51. Os programas so um conjunto de instrues escritos em linguagem
computacional. Exemplos de programas so: MS-Word, MS-Excel,
AutoCAD, Adobe Photoshop,MediaPlayer, InternetExplorer, Need for
Speed, World of Warcraft, entre outros. Quando um programa est em
execuo, pode ter um ou mais processos associados, os prprios
sistemas operacionais possuem vrios processos em execuo durante o
funcionamento do computador. Alm de controlar a execuo de cada
processo, o sistema operacional deve manter a associao entre um
processo e o programa que o originou. Quando um programa iniciado,
um processo chamado Pai ou Principal criado, e todos os outros
existentes associados ao mesmo programa so denominados Processos
Filhos. Se o mesmo programa tiver mais de uma execuo simultnea, por
exemplo, duas telas do InternetExplorer representam dois programas
em execuo, cada programa ser considerado independente do outro, com
seus processos tratados de maneira independente.
52. Estados de um processo
Durante o funcionamento do computador, os vrios processos
executados passaro por diferentes estados: em espera, em execuo,
bloqueado. Esses estados definem a maneira como sero tratados pelo
sistema operacional. O funcionamento especfico de cada estado
depende do sistema operacional utilizado, mas de modo geral os
processos so divididos em trs grupos.
Quanto um processo criado, ele deve esperar que o sistema
operacional conceda a ele um tempo de execuo em um ncleo do
processador, ento logo aps a criao o processo ficaem Estado de
Espera e fica armazenado na memria principal do computador. Quando
o processo recebe do sistema operacional a autorizao para utilizar
um ncleo do processador ele passa para o Estado de Execuo, e assim
o processo executa suas instrues internas. E assim o processo fica
alternando entre os estados de Espera e Execuo, enquanto o programa
que o originou no for finalizado.
53. Se durante o estado de Execuo o processo fizer uma solicitao de
algum recurso do computador ao sistema operacional, por exemplo,
gravar alguma informao no disco rgido, e o recurso no puder ser
liberado imediatamente, por exemplo, j houver um outro processo
utilizando o discorgido,o processo que ficar esperando a liberao do
recurso passar para o Estado de Bloqueio. Neste estado, o processo
no participar das trocas de contexto feitas pelo sistema
operacional, ou seja, no voltar ao estado de Espera, at que o
recurso solicitado seja liberado. Aps a liberao do recurso, o
processo passar do estado de Bloqueio para o estado de
Espera.
54. Comunicao Entre Processos
A comunicao entre os processos algo de extrema importncia, pois sem
ela, a execuo dos programas no seria feita de maneira organizada.
Veja a seguinte situao: quando um programa imprime um arquivo, o
sistema operacional inicia um programa de gerenciamento da
impresso. Esse programa dever controlar a lista de arquivos a serem
impressos, permitir que outros arquivos sejam includos na lista, e
enviar um arquivo por vez impressora. Nesse caso, pelo menos trs
processos sero necessrios para organizar o gerenciamento das
impresses, e se no houver comunicao entre esses processos, o
gerenciador nunca saber quando incluir um arquivo novo na lista de
impresso ou quando retirar um arquivo da lista de impresso
55. Para que essa comunicao exista, tanto os programas quanto o
sistema operacional devem ser construdos de modo a permitir a
efetivao da comunicao. Esta efetivao garantida utilizando-se
mecanismos de controle e estruturas de dados que possibilitem a
identificao,organizao e separao entre os processos e informaes
trocadas entre os processos. Os sistemas operacionais oferecem
algumas funes e rotinas para fornecerem suporte aos programas,
sendo que essas funes devem ser includas no programa durante o seu
desenvolvimento. Alguns exemplos de mecanismos de comunicao entre
processos so:
56. FIFO (First In First Out): Neste mecanismo, um processo abre um
canal de comunicao com outro processo, sendo que o primeiro apenas
escreve dados na FIFO, enquanto o segundo processo l dados da FIFO,
este mecanismo deve ser utilizado e gerenciado dentro dos
programas, e no pelo sistema operacional.
PIPES unidirecionais: tem funcionamento semelhante ao FIFO, a
diferena que nesse caso o controle da comunicao feito pelo sistema
operacional.
57. FILA DE MENSAGENS: Uma fila de mensagens (messagequeue) permite
criar uma rea de troca de mensagens entre os processos, sendo que
essa rea ser administrada pelo sistema operacional. A caracterstica
mais importante da Fila de Mensagens a possibilidade de acesso a
uma mensagem de maneira seletiva, pois existe um identificador
especial para cada mensagem.
Memria Compartilhada: a memria compartilhada semelhante Fila de
Mensagens, a diferena que o controle deve ser feito dentro dos
programas que utilizam este mecanismo.
top related