Escolar Documentos
Profissional Documentos
Cultura Documentos
Nota
Pgina 1
Novo
Admitido
Trmino
Terminado
Interrupo
Pronto
Em execuo
Selecionado
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
Nota
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
Pgina 3
Sistema Operacional
Processo P1
Em
Execuo
Armazenar Estado no BCP0
.
.
.
Ocioso
Ocioso
Em
Execuo
Pgina 4
Ocioso
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.
Pgina 5
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
Pgina 6
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.
Pgina 7
CPU
E/S
Fila de E/S
Requisio de E/S
Filho em
Execuo
Ocorre
Interrupo
Pgina 8
Carregar
Processos em execuo
parcialmente removidos da memria
E/S
Remover
CPU
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
Pgina 9
Terminar
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.
Pgina 10
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.
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
Nota
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
o
o
o
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
Fluxos de execuo
Contador de
instrues
Segmento de cdigo
Tarefa
Segmento de dados
Diversos fluxos de execuo em uma tarefa
Nota
Pgina 15
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
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
Pgina 18