Вы находитесь на странице: 1из 35

Processos e threads

Sistemas operacionais
Marco Aurlio Ferreira

Objetivo

Apresentar os conceitos sobre processos e


threads de modo que o presente seja um
incentivo no ficando restrito ao mesmo.

Agenda

Processos
Caracteristicas de um processo: criao,
execuo, finalizao, estados do processo,
tabela de processo.

Cenrio
Imaginemos a inicializao do computador:
1.Atualizao da definio de vrus;
2.Sincronizao dos e-mails;
3.Edio de um documento;
4.Execuo de programa de mp3.
pseudoparalelismo
multiprocessador: duas ou mais CPUs que
compartilham simultaneamente a mesma
memria fsica.

Processos
Consiste em um programa em execuo
acompanhado de seus valores atuais do
contador de programa, dos registradores e das
variveis.
Esses valores atuais permitem o conceito da
multiprogramao, troca de contexto.

Multiprogramao com 4 programas

Criao de processo
Quatro eventos principais que fazem que um
processo seja criado:
1.Incio no sistema;
2.Execuo de uma chamada de sistema de
criao de processo por um processo em
execuo;
3.Requisio de um usurio para criar um novo
processo;
4.Execuo de uma tarefa em lote, batch job.

Criao de processo
A criao de processos ocorre conforme o
sistema operacional:
Unix, Posix, chamada de sistema: fork criando
um clone idntico ao processo que o chamou:
mesma imagem de memria, mesmas variveis
de ambiente, mesmos arquivos abertos. E a parti
do execve ou uma chamada de sistema para
mudar sua imagem de memria e executar um
novo programa.

Criao de processo
Windows, Win32, chamada de sistema:
CreateProcess
Chamada que possui 10 parmetros incluindo
programa a ser executado, parmetros da linha
de comando que alimentam esse programa,
atributos de segurana, entre outros. Possui mais
de 100 funes, chamadas de sistemas, para
gerenciar, sincronizar processos e tpicos afins.

Processo em execuo
Os processos podem ser classificados como:
1.Foreground interage com o usurio;
2.Background execuo em segundo plano,
como por exemplo: receber mensagem de email.
Daemons Processos que executam em
background com finalidade de lidar com alguma
atividade.
Unix, posix: ps
Windows, win32: taskmgr

Finalizao de processos
O processo terminar por alguma das condies:
1.Sada normal, voluntria;
2.Sada por erro, voluntria;
3.Erro fatal, involuntria;
4.Cancelamento por outro processo; involuntria.

Finalizao de processos
Dependendo do sistema operacional a finalizao
ocorre:
1.Unix, Posix, chamada de sistema: exit
2.Windows, Win32, chamada de sistema:
ExitProcess
Cancelamento por outro processo:
3.Unix, Posix, chamada de sistema: kill
4.Windows, Win32, chamada de sistema:
TerminateProcess

Hierarquia de processos
No Unix, Posix, os processos so criados
conforme hierarquia: pai filho, dessa forma
quando um usurio envia um sinal de teclado, o
sinal entregue a todos o membros do grupo do
processo associado com o teclado, processos
ativos que foram criados pelo na janela atual.
Individualmente cada processo pode capturar o
sinal, ignor-lo ou tomar uma ao predefinida.

Hierarquia de processos
No Windows, Win32, no existe o conceito de
hierarquia de processos, todos os processos so
iguais. No windows algo parecido ocorre quando
o processo cria um filho, ao pai dado um
identificador especial, handle, que pode usar
para controlar o filho; contudo livre para passar
esse identificador para outros processos,
invalidando assim a hierarquia.
No Unix processos pai no podem deserdar seus
filhos.

Estados do processo
Um processo pode estar em um os trs estados:
1. Em execuo: realmente utilizando a CPU
naquele momento;
2. Pronto: executvel, temporariamente parado
para dar lugar a outro processo;
3. Bloqueado: incapaz de executar, aguardando
algum evento externo.

Estados do processo

Implementao de processo, tabela


de processos
Para a implementao do modelo de processos o
sistema operacional mantm uma tabela de
processos, process control block, contendo
informao sobre o estado do processo, contador
de programa, ponteiro da pilha, alocao de
memria, estados dos seus arquivos abertos,
entre outras informao para que o processo
aps os estados: bloquedo ou pronto volte para
execuo como seno tivesse sido interrompido.

Tabela de processos, alguns dos


campos.

Exerccios
1. Descreva seu entendimento sobre processos.
2. Quando uma interrupo ou chamada de sistema
transfere o controle para o sistema operacional,
geralmente usada uma rea da pilha do ncleo
separada da pilha de processo interrompido, por
qu?
3. Na apresentao do estado dos processos
constitudos por trs estados, teoricamente podendo
ter 6 transies e foi apresentado 4 transies. H
alguma circunstncia em que uma ou ambas no
ilustrada possa ocorrer?

Threads
Em sistemas operacionais tradicionais cada
processo possui seu prprio espao de
endereamento e uma nica thread de controle
correspondendo a definio de processo.
Contudo tem situao em que se tem vrias
threads de controle no mesmo espao de
endereamento executando quase em quaseparalelo, como se processos separados fossem;
excetuando-se pelo espao de endereamento
compartilhado.

Processo dentro outro processo?


Constata-se que tem vrias razes para existirem
miniprocessos, threads:
1.4 - Muitas aplicaes ocorrem mltiplas
atividades ao mesmo tempo. Algumas dessas
atividades podem ser bloqueadas de tempos em
tempos. O modelo de programao se torna mais
simples se decompormos o modelo de
programao em mltiplas threads sequenciais
que executam em quase paralelo.

Processo dentro outro processo?

2.4 - So mais fceis de criar, destruir que


processos pois no tem quaisquer recursos
associados as mesmas.

Processo dentro outro processo?


3.4 - Quanto ao desempenho:
O uso de threads quando se tem CPU-bound
limitados pela CPU, isto : muito processamento
e pouca operao de E/S no apresenta ganho
de desempenho.
O uso de threads quando se tem grande
quantidade de computao e tambm de E/S a
thread permite que as atividades se sobreponham
acelerando a aplicao.

Processo dentro outro processo?

4.4 - As threads so teis em sistemas com


mltiplas CPUs, para qual o paralelismo real e
possvel.

Cenrio, utilizao
Imagine um editor de texto em que usurio
produza um texto que formatado tenha 500
pginas:
Cenrio 1: uma alterao em uma determinada
parte do texto acarretar o posicionamento na
referida pgina bem como localizao da referida
alterao: impondo ao usurio uma espera pela
alterao.
Cenrios 2: editor de texto implementado por
thread uma interagindo com usurio outra
processando a alterao solicitada.

Cenrio 2
Processador de
texto com trs
threads:
interagindo com
usurio,
formatando e
salvando.
Mquina de
estados finitos,
em especfico:
trs estados.

Brainstorming

Threads clssico
Processos so usados para agrupar recursos
enquanto que threads so entidades escalonadas
para execuo sobre a CPU.
Threads acrescentam ao modelo de processo e
permite que mltiplas execues ocorram no
mesmo ambiente de processo, com um grande
grau de independncia uma da outra.

Compartilhamento e
questionamento

Questionamentos:
Theread pai fica aguardando um sinal, o filho tambem?
Thread percebe que a memoria esta ficando limitada,
aumenta pai e filho?
Sistema com threads tem que ser bem projetado.

Threads posix
IEEE definiu no
padro 1003.1.c, um
conjunto de mais de
60 chamadas de
funo.
Padro que foi
incorporado ao Unix.

Threads de usurio/ncleo
Se thread de usurio: aplicativo de usurio
gerencia, se thread do ncleo SO gerencia.
Cada thread gerencia sua prpria tabela de
thread para manter o controle da thread naquele
processo. A thread gerenciada pelo sistema de
tempo de execuo, exatamente como o ncleo
armazena as informaes dos processos na
tabela de processos.

Threads de usurio e ncleo

Os nus dos benefcios, pesquisa


Threads de usurio:
Executar chamadas de sistemas como operaces
de E/S, inaceitvel.
As threads de um processo podem executar
initerruptamente a no ser que voluntariamente
abra mo da CPU, inviabilidade de implementar
round-robin
Threads do ncleo:
Indefinio na execu de uma thread que se
reproduz;
Possibilidade que mais de uma thread recebe um
sinal externo;

Exerccios
Um servidor web multithread melhor que um servidor
de thread nica e um servidor de mquinas de estados
finitos. Ha circunstncia que um servidor de thread nica
poderia ser melhor, de exemplo.
O conjunto de registradores relacionado como um item
por thread e no por processo. Por qu? (afinal a
mquina tem somente um conjunto de registradores).
Quais as vantagens e desvantagens de se implementar
threads no espao de usurio e no de ncleo?

Grato,
Bibliografia:
Sistemas Operacionais, A. Tanembaum.
Redes de computadores, A. Tanembaum.
Sugesto para modelagem de processos:
www.bizagi.com
www.wikignome.org/Apps/Dia
referncia: http://www.sgc.goias.gov.br/upload/arquivos/2014-10/manualde-padronizacao-de-modelagem-de-processos-usando-bizagi---v3-1.pdf

Marco Aurlio Ferreira


marco.ferreira@ifms.edu.br

Вам также может понравиться