Documente Academic
Documente Profesional
Documente Cultură
Gerenciamento de Processos
2014
Professor Melo
Apresentao
Tcnico em Desenvolvimento de Sistemas - Ibratec,
Recife-PE
Bacharel em Sistemas de Informao FIR, Recife-PE
Especialista em Docncia no Ensino Superior
Faculdade Maurcio de Nassau, Recife-PE
Mestre em Cincia da Computao UFPE/CIN,
Recife-PE
Currculo Lattes
http://lattes.cnpq.br/0759508594425296)
Homepage
https://sites.google.com/site/hildebertomelo/
Disciplinas Lecionadas
Processo
basicamente um programa em execuo;
Possui associado um espao de endereamento de
memria;
O seu espao de endereamento contm o programa
registradores:
Contador de programa, ponteiro de pilha, dentre outros.
Conceito de Processos
O conceito de processo foi criado devido
multiprogramao
Um nico processador pode ser compartilhado entre
Relembrando...
Em um S.O time-sharing, periodicamente o sistema
Tabela de Processos
Contm todas as informaes sobre os processos;
uma lista encadeada de estruturas, uma para cada processo
atualmente existentes;
Se um processo pode criar um ou mais processos, esses
rvore de Processos
A
Estados de um Processo
Executando realmente utilizando a CPU
Pronto executvel temporariamente parado para
permitir que outro processo execute
Estados de um Processo
3
EXECUTANDO
PRONTO
2
1.
2.
3.
4.
BLOQUEADO
Modelo de Processos
Neste
Processo:
um programa em execuo incluindo os valores atuais
virtual.
Estados de um Processo
New
Runnin
g
Ready
Waiting
Halted
Estados de um Processo
New - Um programa excolhido para ser executado e o
Transies de Estado
Transies de Estado
Implementao de Processos
Tabela de processos:
Utilizada e mantida pelo S.O para implementar o
modelo de processos;
Contm uma entrada para cada processo;
Interrupes
Como acontece a multiprogramao em uma mquina
Processamento de Interrupes
1.
2.
3.
4.
5.
6.
7.
8.
9.
Exemplo de Interrupo
Supor que um processo de usurio esteja executando
Exemplo de Interrupo
Continuao...
O procedimento de servio de interrupo inicia
salvando todos os registradores na entrada da tabela de
processos para o processo atual;
As informaes depositadas pela interrupo so
removidas da pilha;
O prximo passo consta da formao de uma mensagem
a ser enviada ao processo de disco dizendo que houve
uma interrupo.
Threads
Threads
Em um processo tradicional, h uma nica linha de
Threads
Caso 1
Caso 2
computador
Thread
contador de programa
computador
Processo
Threads
Caso 1
3 processos tradicionais
Cada processo tem seu prprio espao de
endereo e uma nica linha de controle
Caso 2
Threads
Definio
Um thread um fluxo de execuo dentro de um
processo
Um processo pode possuir um ou vrios threads
Definio
Os threads compartilham o mesmo espao de
Aproveita os recursos
alocados
para o processo
Definio
Cada thread possui:
Contador de programas
Conjunto de registradores
Espao de pilha
Estado
Processo X Thread
A criao de um processo cara
Alocao de espao de endereamento
A criao de threads rpida e barata, quando j existe
o processo
O tempo de criao de um thread mil vezes menor que
Processo X Thread
A troca de contexto entre processos demorada em
Processo X Thread
Os threads possuem caractersticas semelhantes aos
processos:
Possui estados: pronto, bloqueado e rodando
Os threads compartilham a CPU e apenas um thread
Processo X Thread
Caractersticas diferentes:
A execuo de threads, pertencentes ao mesmo processo,
so dependentes
Processo X Thread
A comunicao entre threads de um processo simples
Multithreading X
Single Threading
Single Threading: SO no conhece o conceito de threads
Multithreading: SO suporta vrios threads dentro de um
nico processo
Multithreading X
Single Threading
MS-DOS: suporta um nico processo um nico
thread
UNIX: suporta vrios processos e somente um thread
por processo
Solaris: suporta multithreading
Nveis de Threads
Threads a nvel de usurio: bibliotecas threads
Threads a nvel de kernel: chamadas de sistema
O SO Solaris implementa os dois nveis
os threads
Quando um thread faz uma chamada de sistema, todo
o processo bloqueado
O thread continua no estado de execuo
threads
O escalonamento na CPU feito a nvel de threads
Threads
Threads como os processos, podem estar nos estados de
mtodos:
Memria compartilhadaPrincipal ou arquivo
compartilhado;
Troca de mensagens
Situao Exemplo
Spooler de impresso:
Processo quer imprimir um arquivo, ento ele insere
o nome de arquivo em um diretrio de spooler
especial;
Outro processo, o servidor de impresso, verifica
periodicamente se h qualquer arquivo a ser
impresso;
Caso hajam arquivos a serem impressos, eles sero e
os seus nomes sero removidos do diretrio.
Expandindo o Exemplo
Imaginemos que o diretrio de spooler tenha um
nmero muito grande de entradas....
Cada entrada capaz de armazenar o nome de um
arquivo.
Imaginemos ainda que existem duas variveis
compartilhadas...
in->aponta para a prxima entrada livre no diretrio;
out->aponta para o prximo arquivo a ser impresso;
Expandindo o Exemplo
Imaginemos ainda que as entradas 0,1,2 e 3 do
diretrio de spooler estejam vazias e as entradas 4 a
6 esto cheias.
Caso dois processos A e B decidam ao mesmo
tempo colocar arquivos na fila de impresso e a lei
de Murphy seja aplicada....
Expandindo o Exemplo
O processo A l in e armazena o valor 7 em uma
varivel local chamada next_free_slot;
Acontece uma interrupo de relgio e a CPU
decide que o processo A j executou por tempo
suficiente e faz o chaveamento de contexto para B;
O processo B tambm l in e recebe o valor 7,
ento ele armazena o nome do seu arquivo na
posio 7 atualizando o in para que seja 8.
Expandindo o Exemplo
O processador volta a processar o processo A que
estava suspenso....
A vai continuar do local onde parou;
Vai examinar o next_free_slot e encontra um 7;
Ento escreve o seu nome de arquivo na entrada 7
Condies de Corrida
Situaes como a relatada no exemplo anterior:
Dois ou mais processos esto lendo e gravando dados
compartilhados...
Resultado final depende de quem executou e quando o
fez..
CONDIES DE CORRIDA
Condies de Corrida
Depurar programas contendo condies de corrida
muito trabalhoso.
Esse problema
tambm
Pergunta:
comum em
situaes
Como evitar?
envolvendo
memria
Resposta:
compartilhada,
Proibir que mais de um processo leia
e grave os dados compartilhados ao
mesmo tempo.
arquivos
compartilhados
e tudo mais
compartilhado.
Excluso Mtua
Certificao de que se um processo est utilizando
um arquivo ou varivel compartilhados, os outros
processos ficam impedidos de fazerem o mesmo.
Regio Crtica
Definio:
Parte do programa em que a memria compartilhada
acessada.
Resoluo do Problema:
Nenhum dos processos que executam simultaneamente
podem estar na sua regio crtica ao mesmo tempo.
Evita mas no suficiente.
Soluo Completa
Para se ter uma boa soluo de excluso mtua:
processos de usurio;
Caminho sem volta nunca mais as reative;
Tcnica til para processos do Kernel.
Desativar
interrupes
afeta s a CPU
que executou a
instruo
de
desativamento.
de bloqueio;
Varivel de bloqueio inicialmente 0;
Se um processo entra na sua regio crtica seta a varivel
de bloqueio para 1;
No vivel;
Alternncia Estrita
Desvantagem: No funciona quando um processo
Deadlock
Um conjunto de processos est em uma situao de
deadlock, se cada processo do conjunto estiver
esperando por um evento que somente outro processo,
tambm bloqueado, pode executar.
Modelo Cliente/Servidor
Tendncia nos sistemas operacionais modernos de
Modelo Cliente/Servidor
Modo usurio
Modo kernel
Modelo Cliente/Servidor
A diviso do S.O em partes, cada uma gerenciando apenas
Modelo Cliente/Servidor
Vantagens deste modelo:
Adaptabilidade para o uso em sistemas distribudos;
Se um cliente comunica-se com um servidor enviando-
Perguntas
Referncias
Visual C# Developer Center
http://msdn.microsoft.com/ptbr/vcsharp/aa336809.aspx
Microsoft Visual C# 2005 passo a passo, Jonh Sharp,
editora Bookman
C# Como programar, Deitel.
79