Você está na página 1de 18

Sistemas Operacionais Cap 4 Processos

Os sistemas computacionais atuais permitem que diversos programas sejam


carregados na memria e executados simultaneamente. Essa evoluo tornou
necessrio um controle maior na diviso de tarefas entre os vrios programas.
Essas necessidades resultaram na noo de processo.
Um sistema constitudo de um conjunto de processos que executam seus
respectivos cdigos do sistema operacional e processos e cdigos de usurios.
Processos
Como vimos, um processo um programa em execuo. A execuo de um
processo ocorre de maneira seqencial, ou seja, uma instruo aps a outra. A
qualquer instante, apenas uma instruo de um determinado processo
executada.

Nota

Esto associadas a um processo informaes sobre seu estado atual.


o Representadas pelo valor do contador de instrues e pelos valores
contidos nos registradores do processador.
o Tambm uma pilha, que contm dados temporrios (tais como
argumentos de sub-rotinas, endereos de retorno e variveis
temporrias), e uma seo de dados contidas em variveis globais.
Um programa por si s no um processo, mas uma entidade
passiva, tal como o contedo de um arquivo armazenado em um
disco, enquanto um processo uma entidade ativa, com um contador
de instrues que especfica prxima instruo a ser executada e
um conjunto de recursos a ele associados.

Embora dois processos possam estar associados a um mesmo programa,


so considerados duas seqncias de execuo distintas. Por exemplo,
cpias de um programa de correio eletrnico podem estar sendo
executadas por vrios usurios ou o mesmo usurio pode estar usando
diversas cpias de um processador de texto. Cada um desses programas
em execuo constitui um processo distinto e, embora o texto de alguns
programas possa ser o mesmo, o estado de cada processo ser diferente.
comum ter um processo que crie muitos processos durante sua
execuo.

Pgina 1

Sistemas Operacionais Cap 4 Processos

Novo

Admitido

Trmino

Terminado

Interrupo
Pronto

Em execuo
Selecionado

Fim de E/S ou ocorrncia


de evento.

Espera por E/S ou evento


Em espera

Diagrama de estados de um processo

Estado do Processo
Um processo em execuo pode provocar uma mudana de estado. O estado
de um processo definido em parte pelo valor do seu contador de instrues e
pelos valores dos registradores do processador.
Podem ser classificados, de acordo com o estado:
o Novo
 O processo est sendo criado.
o Em execuo
 Instrues do
executadas.

cdigo

do

processo

esto

sendo

o Em espera
 O processo est esperando pela ocorrncia de algum
evento (tal como a realizao de uma operao de E/S ou
o recebimento de um sinal).
o Pronto
 O processo est pronto para obter o controle do
processador.
o Terminado
 O processo terminou de ser executado.

Pgina 2

Sistemas Operacionais Cap 4 Processos


importante reconhecer que apenas um processo pode
estar em execuo em um processador a cada instante.
Entretanto, muitos processos podem estar prontos e em
espera para entrar em execuo.

Nota

Bloco de Controle de Processos (BCP)


Cada processo descrito no sistema operacional por um bloco de controle de
processos.
Apontador

Estado do
processo

Nmero do processo
Contador de Instrues
Registradores
Limites na memria

 Estado do Processo
o Pode ser novo, pronto, em
execuo,
em
espera,
terminado e assim por diante.
 Contador de Instrues
o Indica o endereo da prxima
instruo desse processo a ser
executada.

 Registradores da CPU
o Os registradores variam em
nmero e tipo, dependendo da
arquitetura do computador. Eles
podem
ser
acumuladores,
Bloco de Controle de Processos
indexadores, apontadores do
topo da pilha e registradores de
propsito geral e podem conter
tambm informaes sobre o
resultado de testes.
Realizados por instrues anteriores, chamadas de cdigos de condio.
Com o contador de instrues, o valor contido em cada um desses
registradores deve ser armazenado quando ocorre uma interrupo, para
permitir que o processo possa continuar sua execuo normalmente
quando obtiver novamente o controle da CPU.
Lista de arquivos abertos

 Informaes para alocao de CPU


o Inclui prioridade do processo, apontadores para filas e outros
parmetros usados na seleo de processos(estudaremos em mais
detalhes no prximo captulo).

Pgina 3

Sistemas Operacionais Cap 4 Processos


 Informaes relativas ao gerenciamento de memria
o Podem incluir os valores contidos nos registradores que indicam a
base e o limite do espao de memria reservado ao processo, tabela
de pginas ou tabela de segmento usados pelo processo,
dependendo do sistema de gerenciamento de memria usado pelo
sistema operacional.
Processo P0

Sistema Operacional

Processo P1

Em
Execuo
Armazenar Estado no BCP0
.
.
.

Ocioso

Recarregar Estado BCP1

Ocioso

Interrupo ou chamada ao sistema

Em
Execuo

Armazenar Estado no BCP1


.
.
.
Recarregar Estado BCP0
Em
Execuo

Diagrama mostrando a transferncia da CPU entre processos

Pgina 4

Ocioso

Sistemas Operacionais Cap 4 Processos


O BCP serve simplesmente como um repositrio para
quaisquer informaes que podem variar de um processo
para outro.

Nota

Seleo de Processos
A multiprogramao objetiva ter sempre algum processo sendo executado, para
maximizar a utilizao da CPU. O objetivo do compartilhamento de tempo
permitir que os usurios possam interagir com seus programas enquanto eles so
executados. Para que isso acontea a CPU transferida freqentemente entre os
processos. Em um sistema com um nico processador, nunca haver mais de um
processo em execuo. Se houver mais processos ativos, cada um ter que
esperar at que a CPU esteja livre e possa ser alocado para sua execuo.


Filas para Seleo de Processos


 medida que novos processos vo sendo criados, eles so
colocados em uma fila de processos. Essa fila constituda
de todos os processos do sistema. Os processos que esto
armazenados na memria principal e esto prontos para
entrar em execuo so mantidos em uma fila de processos
prontos.
 O cabealho de uma fila de processos prontos contm
apontadores para o primeiro e o ltimo BCP na lista. Cada
BCP tem um campo que contm um apontador para o
prximo processo na fila de processos prontos.
 Existem outros tipos de filas no sistema.
Quando a CPU alocada a um processo, suas
instrues so executadas durante algum tempo e
depois o processo termina, interrompido ou passa a
esperar pela ocorrncia de um determinado evento, tal
como o trmino de uma operao de E/S por ele
requisitada. Nesse ltimo caso, a requisio de E/S
pode ser uma requisio de uma operao em uma
unidade de fita cujo uso foi reservado ao processo ou
pode ser uma requisio de uma operao em um
dispositivo compartilhado, como um disco. O processo
pode ter de esperar para usar o disco.
Cada dispositivo tem sua prpria fila, chamada fila de
dispositivo, com descries dos processos que esto
esperando para usar o dispositivo.

Pgina 5

Sistemas Operacionais Cap 4 Processos


Cabealho da fila

Fila de
processos
prontos

Cabea

Unidade de
fita
magntica 0

Cabea

BCP1

Registradores

Cauda

BCP2

Registradores

Cauda

BCP3

Unidade de
fita
magntica 0

BCP15

Cabea
Cauda

Fila de processos prontos e filas de dispositivos de E/S


Nota

Dois tipos de fila esto presentes: A fila de processos


prontos e um conjunto de filas de dispositivos.

Um novo processo inicialmente colocado na fila de


processos prontos. Ele espera nessa fila at ser
selecionado para execuo e receber ento o controle
da CPU. Quando a CPU alocada a um processo e
este est sendo executado, um dos seguintes eventos
pode ocorrer.
 O processo pode fazer um requisio para
realizao de uma operao de E/S e ento ser
colocado em uma fila de E/S
 O processo pode criar um novo subprocesso e
esperar pelo seu trmino.
 O processo pode perder o controle da CPU,
como resultado de uma interrupo, e ser posto
de volta na fila de processos prontos.

Pgina 6

Sistemas Operacionais Cap 4 Processos


Nos dois primeiros casos anteriores, o processo mudar
em algum momento do estado de espera para o estado
pronto e ser colocado de volta na fila de processos
prontos para entrar em execuo. Os processos continuam
nesse ciclo at que terminem, quando ento sero
removidos de todas as filas e tero seus recursos, assim
como o espao reservado ao seu BCP, liberados.

Nota

Escalonadores
Um processo passa pelas vrias filas de seleo durante sua
execuo. O sistema operacional deve selecionar processos dessas
filas de algum modo, para fins de alocao de recursos. O processo
de escolher processos e o de escalar processos para execuo
realizado por programas chamados de escalonadores.


Em um sistema batch, comum que nem todos os


processos submetidos possam ser imediatamente
executados. Eles so armazenados temporariamente
em um dispositivo de armazenamento secundrio, para
poderem ser executados posteriormente.
Escalonador de Processos
 Escolhe processos desse repositrio e os
carrega na memria para execuo.
Escalonador de CPU
 Seleciona um dentre os processos que esto
prontos para serem executados e aloca a CPU a
esse processo.

 A distino principal entre esses dois programas sua


freqncia de utilizao.



O escalonador de CPU utilizado de


maneira bastante freqente.
Enquanto que o escalonador de
processos executado com uma
freqncia muito menor. Podem se
passar vrios minutos entre uma criao
de um novo processo e outro.
O escalonador de processos controla o
grau de multiprogramao(nmero de
processos na memria). Se o grau de
multiprogramao for estvel, a taxa
mdia de criao de processos deve ser

Pgina 7

Sistemas Operacionais Cap 4 Processos


igual taxa mdia de finalizao de
processos.

CPU

Fila de processos prontos

E/S

Fila de E/S

Requisio de E/S

Intervalo de tempo esgotado

Filho em
Execuo

Criao de processo filho

Ocorre
Interrupo

Em espera por interrupo

Diagrama de transio entre filas para seleo de processos


Em alguns sistemas, o escalonador de processos pode no existir ou ser muito
simples. Por exemplo, os sistemas de tempo compartilhado freqentemente no
tem um escalonador de processos, mas simplesmente colocam cada novo
processo na memria, para o escalonador da CPU.

Alguns sistemas operacionais, como sistemas de tempo compartilhado,


podem introduzir uma seleo intermediria adicional.
o A idia principal a de que pode ser algumas vezes vantajoso
remover processos da memria( e de uma disputa ativa pela CPU),
reduzindo assim o grau de multiprogramao. Algum tempo depois,
o processo pode ser recarregado na memria e sua execuo pode
continuar a partir do ponto em que foi interrompida. Esse esquema
comumente chamado de Swapping(troca de processos). O processo
removido e recarregado na memria por um escalonador. Essas
transferncias podem ser necessrias para melhorar o
balanceamento entre processos que dependem mais de E/S e da
CPU ou por que uma mudana em alguma requisio de memria

Pgina 8

Sistemas Operacionais Cap 4 Processos


fez com que se tornasse necessrio liberar um certo espao de
memria.

Carregar

Processos em execuo
parcialmente removidos da memria

Fila de processos prontos

E/S

Remover

CPU

Fila de espera por E/S

Seleo intermediria de processos adicionada ao diagrama de transio


entre filas de processos.

Mudana de Contexto
Para transferir o controle da CPU de um processo para outro,
necessrio armazenar o estado do processo antigo e carregar o
estado do novo processo, anteriormente armazenado. A essa tarefa
se d o nome de mudana de contexto. O tempo gasto nesta tarefa
considerado como um trabalho adicional pelo sistema, durante o
qual ele no realiza qualquer trabalho til.
Uma mudana de contexto consiste em mudar o apontador para o
conjunto de registradores do processo a ser executado. Se houver
mais processos ativos do que conjuntos de registradores, o sistema
ter de transferir dados de registradores para a memria e viceversa.

Nota

Mudanas de contexto so um ponto crtico no


desempenho de sistemas.
Novas estruturas (fluxos de execuo threads)
esto sendo usadas para evita-las, sempre que

Pgina 9

Terminar

Sistemas Operacionais Cap 4 Processos


Operaes sobre Processos
Processos podem ser executados simultaneamente e devem ser criados e
removidos dinamicamente. Portanto, o sistema operacional deve oferecer
mecanismos para a criao e a finalizao de processos.

Criao de Processos
 Usando uma chamada ao sistema para criar processos, um
processo pode criar vrios outros durante sua execuo.
Processo Pai
 O processo criado.









Processo Filho
 Processos criados a partir do processo Pai.

Cada um desses processos pode criar outros, formando


uma rvore de processos.
Um processo precisar utilizar (tempo de CPU, memria,
arquivos, dispositivos de E/S) para realizar sua tarefa.
Quando um processo cria um subprocesso, este pode ser
capaz de obter recursos diretamente do sistema operacional
ou pode estar restrito ao uso de um subconjunto dos recursos
do processo pai.
O pai pode ter que dividir os seus recursos entre seus filhos
ou pode compartilhar recursos(tais como memria ou
arquivos) entre alguns de seus filhos.
A restrio dos recursos de um filho a um subconjunto
dos recursos do pai evita que um processo possa
sobrecarregar o sistema ao criar subprocessos
em demasia.
Quando um processo cria outro, existem duas possibilidades
em termos de execuo:

O processo pai continua a ser executado


simultaneamente com seu filho.

O processo pai espera at que algum ou todos


os seus filhos tenham terminado.
Em termos do espao de endereamento

O processo filho uma cpia do processo pai.

O processo filho tem um programa que deve ser


carregado para sua execuo.

Pgina 10

Sistemas Operacionais Cap 4 Processos




Finalizao de Processos
Um processo se completa quando a execuo de seu ltimo
comando termina e uma chamada ao sistema feita para que ele
seja removido do sistema.

O processo pode retornar dados para seu processo pai (por


meio de uma chamada ao sistema).
Os recursos do processo, incluindo espao de memria fsica
e virtual, arquivos abertos e reas de armazenamento de
dispositivos de E/S, so liberados pelo sistema operacional,
podendo agora ser usados por outros processos.
Um processo tambm pode ocasionar a terminao de um
outro processo por meio de uma determinada chamada ao
sistema (por exemplo, abort).
Normalmente, essa chamada pode ser feita apenas pelo pai
do processo cuja execuo deve terminar. Caso contrrio, os
usurios poderiam provocar arbitrariamente a terminao de
processos de outros usurios. Um PAI precisa conhecer o
identificador de seus FILHOS.
Quando um processo cria outro, o identificador do processo
criado passado ao seu PAI.
Motivos para um processo PAI encerrar um processo FILHO:
o O FILHO excedeu um limite estabelecido para o uso de
algum dos recursos que foram a ele alocados.
o A tarefa atribuda a um determinado filho no mais
necessria.
o A execuo do pai est terminando e o sistema
operacional no permite que a execuo de um
processo filho continue se a de seu pai j terminou.

Processos Cooperativos
Os processos concorrentes em execuo em um sistema operacional podem ser
tanto independentes quanto cooperativos:


Independente
Se um processo no pode afetar ou ser afetado por outros processos
em execuo no sistema.
Qualquer processo que no compartilhe dados com qualquer outro
processo.
Cooperativo
Se um processo pode afetar ou ser afetado por outros processos em
execuo no sistema, ou melhor, qualquer processo que compartilhe
dados com outros processos.

Pgina 11

Sistemas Operacionais Cap 4 Processos




Razes para permitir a cooperao entre processos:


Compartilhamento de informaes
o
Podem existir vrios usurios interessados em uma
mesma informao. Por exemplo, um arquivo
compartilhado, devemos permitir acesso concorrente a
esse tipo de recurso.
Aumento da velocidade de processamento
o
Uma tarefa ser executada mais rapidamente de puder
ser dividida em subtarefas, cada uma das quais dever
ser executada em paralelo com as outras. Esse
aumento de velocidade de processamento s pode ser
alcanado se o computador tiver vrias unidades de
processamento (tais como CPUs ou canais de E/S).
Modularidade
o
Podemos querer construir o sistema de maneira
modular, dividindo as funes do sistema em
processos separados.
Convenincia
o
Mesmo um nico usurio pode ter muitas tarefas para
serem realizadas simultaneamente. Por exemplo, um
usurio pode estar editando, imprimindo e compilando
em paralelo.

Nota

Uma execuo concorrente que requer cooperao entre


os processos requer tambm mecanismos que permitam
aos processos comunicarem-se uns com os outros e
sincronizarem suas aes.

Fluxos de Execuo
Nota

Fork
No UNIX cada processo identificado por um identificador
de processo, um valor inteiro nico que o distingue dos
outros processos. Um novo processo criado pela
chamada ao sistema fork. O espao de endereamento do
novo processo uma cpia do espao de endereamento
do processo original. Esse mecanismo permite ao
processo pai comunicar-se facilmente com seu processo
filho, com uma diferena: o cdigo retornado pela
chamada fork zero para o processo novo (FILHO),
enquanto o identificador de processo (diferente de zero)
do filho retornado ao pai.

Pgina 12

Sistemas Operacionais Cap 4 Processos


O estado de um processo definido pelos recursos que ele est usando e pela
posio na qual est sendo executado. Existem muitos casos, entretanto, em que
seriam teis o acesso e o compartilhamento simultneo de recursos. Essa
situao similar ao caso em que a execuo de uma chamada ao sistema fork
realizada com um novo contador de instrues, ou fluxo de execuo (thread),
com o processamento compartilhando o mesmo espao de endereamento.


Estrutura de Fluxos de Execuo


o Um fluxo de execuo (thread) uma unidade bsica de
utilizao da CPU e consiste em um contador de instrues,
um conjunto de registradores e um espao de pilha. Ele
compartilha com fluxos irmos sua seo de cdigo, a
seo de dados e os recursos do sistema operacional,
como arquivos abertos e sinais, conhecidos coletivamente
como uma tarefa.
o Um processo tradicional igual a uma tarefa com um nico
fluxo de execuo.
o Uma tarefa no faz coisa alguma sem um fluxo de
execuo, enquanto um fluxo de execuo deve fazer
parte de apenas uma tarefa.
o Compartilhamentos
extensivos
de
recursos
so
beneficiados pela troca da CPU entre fluxos de execuo
irmos e pela criao de novos fluxos de execuo, em
comparao com mudanas de contexto necessrias
entre processos tradicionais.
o Embora uma mudana de contexto entre fluxos de
execuo ainda exija uma alterao no conjunto de
registradores, no necessrio nenhum trabalho
relacionado ao gerenciamento de memria.
o Como qualquer ambiente de processamento paralelo, a
existncia de vrios fluxos de execuo para um processo
pode introduzir problemas de controle de concorrncia que
necessitam do uso de regies crticas ou semforos.
o Podemos entender melhor o comportamento de fluxos de
execuo ao comparar o controle de vrios fluxos com o
controle de vrios processos.
o Quando diversos processos esto envolvidos, cada
processo opera independentemente dos outros, cada
um deles tem seu prprio contador de instrues,
Pgina 13

Sistemas Operacionais Cap 4 Processos

o
o
o

registrador apontador de topo da pilha e espao de


endereamento.
Esse tipo de organizao til quando as tarefas
realizadas pelos processos no tm relao umas com
as outras.
Diversos processos podem tambm desempenhar uma
mesma tarefa. Por exemplo, eles podem fornecer
dados para mquinas remotas na implementao de
um sistema de arquivos de uma rede de computadores.
mais eficiente ter um processo contendo diversos
fluxos de execuo que sirvam ao mesmo propsito. Na
implementao com diversos processos, cada processo
executaria o mesmo cdigo, mas teria espao em
memria e recursos de arquivo prprios.
Uma implementao com um nico processo e vrios
fluxos de execuo usa menos recursos do que no
caso de vrios processos redundantes, incluindo
memria, arquivos abertos e alocao da CPU. Por
exemplo, medida que o Solaris evolui, daemons que
implementam mecanismos de comunicao na rede
esto sendo reescritos como fluxos de execuo do
ncleo, para aumentar o desempenho das funes de
servidores em redes de computadores.
Os fluxos de execuo operam, em muitos
aspectos, da mesma maneira que os processos.
Eles podem estar em um dos vrios estados:
pronto, bloqueado, em execuo ou finalizado.
Assim como os processos, os fluxos de execuo
compartilham o uso da CPU e apenas um fluxo de
execuo a cada vez est ativo (em execuo).
Um
fluxo
de
execuo

processado
seqencialmente e cada um tem sua prpria pilha e
contador de instrues.
Um fluxo de execuo pode criar um fluxo filho e
pode ser bloqueado, ficando em espera at o
trmino de uma chamada ao sistema.
Se um fluxo de execuo est bloqueado, um outro
fluxo pode ser executado.
Em contraste com os processos, os fluxos de
execuo no so independentes uns dos outros.
Como todos os fluxos podem usar os mesmos
endereos em uma tarefa, um fluxo pode ler e escrever
sobre pilhas de outros fluxos.
O mecanismo no oferece proteo fluxos de
execuo. Essa proteo, entretanto, no deve ser
necessria. Os processos podem se originar-se de
usurios diferentes, podendo interferir uns com os
Pgina 14

Sistemas Operacionais Cap 4 Processos


outros de maneira no desejada, ao passo que, no
caso de vrios fluxos de execuo, um nico
usurio responsvel por uma dada tarefa.

Fluxos de execuo
Contador de
instrues

Segmento de cdigo
Tarefa

Vamos tomar o exemplo de um


processo servidor de arquivos, que
est bloqueado e executado em
um sistema que pressupe a
utilizao de apenas um nico
processo. Nesse cenrio, nenhum
outro processo servidor pode ser
executado at que o primeiro seja
desbloqueado. Por outro lado,
quando uma tarefa tem diversos
fluxos de execuo, enquanto um
fluxo servidor est bloqueado, em
espera pela ocorrncia de algum
evento, um segundo fluxo da
mesma tarefa pode ser executado.
Nessa aplicao, a cooperao entre
os diversos fluxos vantajosa,
proporcionando uma melhora de
produtividade e desempenho.

Segmento de dados
Diversos fluxos de execuo em uma tarefa
Nota

O mecanismo de fluxos de execuo permite que processos


seqenciais sejam executados paralelamente, apesar de poderem
fazer chamadas ao sistema que bloqueiam processos.

O uso de fluxos de execuo est crescendo porque apresentam


algumas das caractersticas de processos tradicionais, mas
podem ser executados de maneira mais eficiente.

Pgina 15

Sistemas Operacionais Cap 4 Processos


Comunicao Entre Processos
Quando tratamos de comunicao entre processos dois mecanismos so
possveis:

Comunicao por meio de memria compartilhada


o Requer que os processos usem uma rea de armazenamento
comum e que o cdigo para implementar as operaes de
armazenagem e leitura de valores da rea de armazenamento seja
escrito explicitamente pelo programador da aplicao.
Sistema de troca de mensagens
o Uma outra maneira de se obter a comunicao entre processos
permitida pelo sistema operacional. Esse mecanismo permite que os
processos se comuniquem uns com os outros e realizem operaes
de modo sincronizado, atravs da troca de mensagens.
Os esquemas de comunicao por meio de memria compartilhada e de
sistema de troca de mensagens no so mutuamente exclusivos e podem
ser usados simultaneamente em um nico sistema operacional ou mesmo
em um nico processo.


Estrutura Bsica
o
Os sistemas de troca de mensagens tm a funo de permitir que
os processos se comuniquem entre si sem a necessidade de usar
variveis compartilhadas.
o
Um mecanismo de suporte a esse sistema deve fornecer pelo
menos duas operaes, para enviar e receber uma mensagem.
o
Se dois processos P e Q querem se comunicar, eles devem
enviar mensagens para receber um do outro; deve existir um
canal de comunicao entre eles.
o
Nesse captulo no vamos nos preocupar com mtodos para
implementao fsica
desse canal de comunicao (como
memria compartilhada, barramento de hardware ou rede de
comunicao).
o
Para que dois processos se comuniquem, eles devem ter uma
maneira de se referir um ao outro. Eles podem usar tanto
comunicao direta quanto comunicao indireta:

Comunicao Direta Cada processo que queira se
comunicar com outro deve usar explicitamente o
nome do processo receptor ou remetente da
mensagem.

Comunicao Indireta As mensagens so enviadas
e recebidas de caixas postais. Uma caixa postal pode
ser vista abstratamente como um lugar no qual
processos podem colocar mensagens e do qual
mensagens podem ser retiradas.

Pgina 16

Sistemas Operacionais Cap 4 Processos

Cada caixa postal possui uma identificao


nica. Nesse esquema, um processo pode
se comunicar com outro por intermdio de
diversas caixas postais diferentes.
Dois processos s podem se comunicar se
compartilharem o uso de alguma caixa
postal.
Um canal tem sua capacidade determinada
pelo nmero mximo de mensagens que
pode estar na fila de mensagens associada
ao canal. H basicamente trs maneiras de
implementar essa fila.
o Capacidade zero
o Capacidade limitada
o Capacidade ilimitada

Resumo
Um processo um programa em execuo. Quando um processo executado,
ele muda de estado. O estado de um processo definido pelas atividades que
esto sendo realizadas por esse processo. Cada processo pode estar em um dos
seguintes estados: novo, pronto, em execuo, em espera ou terminado. Cada
processo descrito no sistema operacional por um bloco de controle de
processos.
Quando um processo no est sendo executado, ele colocado em alguma fila de
espera. Existem duas grandes classes de filas em um sistema operacional: fila de
requisio de E/S e fila de processos prontos. A segunda contm todos os
processos que esto esperando pela CPU. Cada processo representado por um
BCP, e os BCPs podem ser ligados para formar uma fila de processos prontos. O
escalonador de processos faz uma seleo de processos que podem passar a
competir pela CPU. Normalmente, essa seleo bastante influenciada por
consideraes relativas alocao de recursos, especialmente o gerenciamento
de memria. A alocao de CPU consiste em selecionar um processo da fila de
processos prontos.
Existem diversas razes para permitir a execuo concorrente de processos em
um sistema: compartilhamento de informaes, aumento na velocidade de
processamento, modularidade e convenincia. Para suporte execuo
concorrente, preciso um mecanismo para criao e finalizao de processos.
A execuo de dois ou mais processos pode ser feita de modo independente ou
cooperativo. Dois processos cooperativos devem ter meios de comunicarem um
com o outro. Existem basicamente dois esquemas de comunicao
complementares: memria compartilhada e troca de mensagens. O mtodo de

Pgina 17

Sistemas Operacionais Cap 4 Processos


memria compartilhada requer que processos em comunicao compartilhem o
uso de variveis. Em um sistema de memria compartilhada, a responsabilidade
de estabelecer uma comunicao dos programadores de uma aplicao; o
sistema operacional precisa fornecer apenas a memria compartilhada. No
mtodo de troca de mensagens, a responsabilidade de estabelecer uma
comunicao do prprio sistema operacional. Esses dois esquemas no so
mutuamente exclusivos e podem ser usados ao mesmo tempo em um nico
sistema operacional.
Os processos cooperativos que compartilham diretamente um mesmo espao de
endereos lgicos podem ser vistos como fluxos de execuo. Um fluxo de
execuo uma unidade bsica de utilizao da CPU e compartilha com fluxos
irmos a seo de cdigo, a seo de dados e os recursos do sistema
operacional, que so coletivamente conhecidos como uma tarefa. Uma tarefa no
faz nada se no tiver algum fluxo de execuo a ela associado, e um fluxo de
execuo deve estar associado a apenas uma tarefa. O compartilhamento
extensivo de recursos entre fluxos de execuo irmos torna mais eficiente a
mudana de contexto entre eles, assim como a criao de novos fluxos, em
comparao com as trocas de contexto entre processos tradicionais.

Pgina 18

Você também pode gostar