Sistemas operacionais
Marco Aurlio Ferreira
Objetivo
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.
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
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.
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.
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