Agenda
•Multiprogramação
•Modelo de Processos
•Criação de Processos
•
Finalização de Processos
•
Finalização de Processos
•Hierarquia de Processos
•Estados de um Processo
•Implementação de Processos
•Processos no Linux
Multiprogramação
•Execução simultânea de vários aplicativos
•Troca de Contexto de Execução
•Quais são as implicações da multiprogramação
para o projetista de SO?
Modelo de Processos
•Processo
–Programa em execução, incluindo seu espaço de
endereçamento e todos os recursos alocados,
como: arquivos, dispositivos de E/S,... como: arquivos, dispositivos de E/S,...
–Processos executam independentes uns dos
outros
–Algoritmo de escalonamento decide a ordem de
execução dos processos
–Qual é a diferença entre processo e programa?
Criação de Processos
•Eventos que causam a criação de um processo
–Inicialização do sistema
–Execução de uma chamada de sistema de criação
de processo por um processo em execução de processo por um processo em execução
–Requisição do usuário
–Inicialização de um batch job
Terminação de Processos
•Eventos que causam a finalização de um
processo
–Finalização voluntária
–
Erro de execução
–
Erro de execução
–Recebimento de um sinal de killde outro processo
Hierarquia de Processos
•O processo A que cria um novo processo B é
dito como processo pai, e B como processo
filho
•
Um grupo de processos é formado
•
Um grupo de processos é formado
•Presente em sistemas UNIX
•No Windows, os processos não possuem
hierarquia
Estados de um Processo
•Cite os eventos causadores das transições
Estados de um Processo
•Organização Básica
•Eventos E/S são tratados pelo SO
•Escalonador ordena a execução dos processos
Implementação de Processos
•Tabela de Processos
–Informações armazenadas para cada processo
Processos no Linux
•Obtendo o ID do processo e do pai do
processo
Processos no Linux
•Criação de Processos
–fork()
•Duplica um processo
•
Um processo filho é criado, com as mesmas
•
Um processo filho é criado, com as mesmas características do processo pai
–Espaço de Endereçamento
–Descritores de Arquivos
–PID diferente
–Um processo chama fork, dois processos recebem o re torno
Processos no Linux
•Executando um novo programa
–forkduplica um processo
–Como executar um novo programa no processo
recém criado? recém criado?
•Família exec
–Termina a execução do programa corrente, e começa a
execução de um novo programa do início
Processos no Linux
•Esperando pela finalização de um processo
–Em alguns casos, é interessante que o processo
pai espere pela finalização do processo filho
–
A chamada
wait
–
A chamada
wait
•Bloqueia um processo até que um de seus filhos
termine ou um erro aconteça
Processos no Linux
•Processos Zumbis
–O processo pai tem a obrigação de receber o
status da finalização de seus filhos
–
Processo zumbi é um processo finalizado cujo
–
Processo zumbi é um processo finalizado cujo status não foi lido pelo processo pai
Criando um Zumbi
Exercícios
•Implemente os exemplos de código mostrados
na apresentação
•Implemente uma versão simplificada de um
shell
, utilize o pseudocódigo mostrado no livro
shell
, utilize o pseudocódigo mostrado no livro
texto e as chamadas de sistema Linux
apresentadas
•Faça uma pesquisa sobre as outras chamadas
de sistemas das famílias exece wait. Descreva
a função de cada uma.
Exercícios
•Suponha que você está projetando um sistema
operacional para um arquitetura de
computadores avançada que faz a troca de
contexto do processo em hardware. Quais contexto do processo em hardware. Quais informações a CPU iria precisar?
•Quando uma interrupção ou chamada de sistema
transfere o controle para o sistema operacional,
uma área de pilha do kernelseparada da pilha do
processo é usada. Por quê?
Exercícios
•Sugira outros estados possíveis que um
processo pode assumir.
•Discuta sobre o overhead existente na
operação de troca de contexto entre operação de troca de contexto entre processos. Como podemos diminuí-lo?
Referências
•TANENBAUM, Andrew S., SistemasOperacionais
Modernos, 2°ed., Ed. Pearson Education, 2003.
•MITCHEL, M., OLDHAM J. e SAMUEL A., Advanced
Linux Programming, 1
°
ed.,
New
Riders
Publisher,
2001.