Você está na página 1de 57

Prof.

Robrio
SISTEMAS OPERACIONAIS
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.
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.
Objetivos.

Este mdulo tem como objetivo passar
ao alunos os conhecimentos gerais
sobre os Sistemas 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.
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.
Unidade I
Primeiros Computadores
Primeiros Microcomputadores
Sistemas Operacionais Modernos
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 (Electronic Numerical Integrator
and Computer), 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.
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.
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.
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.
Primeiros Microcomputadores.
O primeiro computador pessoal o Apple I, inventado
em 1976 pelos americanos Steve Jobs e Stephan
Wozniak. Em 1981, a IBM lanou o seu PC (Personal
Computer), 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.
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.
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).
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.

Unidade II
Classificao Dos Sistemas Operacionais
Classificao Pela Arquitetura Do Sistema
Classificao Pela Execuo De Tarefas
Classificao Pela Quantidade De Usurios
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
ser classificados de acordo com as seguintes anlises:
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.

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.
Hbrido: nesse caso os Servidores externos so
executados em um modo chamado protegido,
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.

Classificao Pela Execuo De
Tarefas
A capacidade de execuo de tarefas divide os sistemas em:
stemas Monotarefa: executam uma tarefa de cada vez, como
por exemplo: imprimir um 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.

Sistemas de Tempo Compartilhado: (Time Sharing
Systens 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.

Figura 2.1: Diagrama funcional
de um Sistema Operacional Monoltico
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 volta
executar 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.
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 Symbian so 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.
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 (Personal Data Assistent em ingls), utilizam um
sistema operacional monousurio.
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.

Unidade III
Definio De Sistemas Avanados De
Processamento
Computadores Com Vrios Processadores
Processador Com Vrios Ncleos
Processamento Distribudo
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.
Como o sistema operacional responsvel por
gerenciar a execuo das tarefas, deve estar
devidamente 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.
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.
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.
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.
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.

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).

Unidade IV
Estrutura Do Sistema
Funes do Sistema Operacional
Chamadas ao Sistema
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:\Windows\System32\control.exe.
Os programas em execuo necessitam em determinados instantes
realizar o acesso a algum 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.
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.
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.

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).

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.
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.


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.
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.
Unidade V
Definio de Processo
Gerenciamento de Programas
Estados de um processo
Comunicao Entre Processos
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.

Os sistemas operacionais mais utilizados hoje em
dia so multitarefa, realizada atravs do
compartilhamento do tempo do processador.
Desta forma, vrios programas podem ser
executados, e consequentemente vrios
processos, em um mesmo computador. Para
realizar esta tarefa o sistema operacional deve
separar os programas, e processos, para que a
execuo seja feita de maneira organizada, e
para isso as seguintes propriedades deve ser
armazenadas para cada processo:

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.
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 o processo
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.
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 ser
utilizado principalmente para executar os
programas. Existem trs eventos que podem
iniciar a Troca de Contexto:
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.
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.
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 fica em 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.
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.
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
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:
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.
FILA DE MENSAGENS: Uma fila de mensagens
(message queue) 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.

Você também pode gostar