Você está na página 1de 28

Sistemas Operacionais

Processos e Threads

Prof. Humberto Caetano


Humberto.ccs@gmail.com
Objetivos
● Definição de Processos
● Modelo de processo
● Criação de processos
● Término de processos
● Hierarquias de processos

2/28
Processos
● Todos os computadores modernos são
capazes de realizar várias tarefas ao mesmo
tempo. Esse comportamento já está tão
presente na utilização diária dos computadores
que é quase comum.

3/28
Processos
● Em sistemas modernos existem uma infinidade
de processos sendo executados. Tanto em
primeiro plano, quanto em segundo plano.
– Em primeiro plano são os processos que o usuário
“vê” rodando. Navegador, editor de texto, player de
música, etc
– Em segundo plano são os processos que o usuário
não tem conhecimento da sua execução. Antivírus,
ferramentas de atualização, servidores, etc.

4/28
Processos
● Em um sistema multiprogramado, ou seja um
sistema que executa várias operações ao
mesmo tempo, cada CPU executa apenas uma
operação por vez, mas alterna entre os vários
programas que estão em execução, dando ao
usuário a ilusão que tudo está sendo
executado de uma só vez.
● Isto pode ser chamado de pseudoparalelismo.

5/28
Modelo de Processo
● Um processo é um programa em execução.
– Contador de programa
– Registradores
– Variáveis
● O sistema operacional “cria” para o processo
uma CPU virtual. Assim o processo acredita
que ele está sempre usando a CPU.

6/28
Modelo de Processo
● O mecanismo de trocas rápidas de processos
para que o sistema funcione como se todos os
processos estivessem sendo executados de
uma só vez é chamado de multiprogramação.

7/28
Modelo de Processo
● Processo e Programa
– Cozinhar um bolo:
● Programa → Receita
● Cozinheiro → Processador
● Dados de entrada → Ingredientes
● Processo → Ler a receita, usar os ingredientes e assar o
bolo

8/28
Modelo de Processo
● Monoprocessamento
● Monoprocessamento com compartilhamento de
tempo da CPU
● Multiprogramação
● Multiprocessamento

9/28
Criação de Processos
● Eventos que podem gerar a criação de
processos
– Inicio do sistema
– Execução de uma chamada de sistema de criação
de processo por um processo em execução
– Requisição do usuário para criar um novo processo
– Uma tarefa em lote.

10/28
Criação de Processos
● Eventos que podem gerar a criação de
processos
– Inicio do sistema
– Execução de uma chamada de sistema de criação
de processo por um processo em execução
– Requisição do usuário para criar um novo processo
– Uma tarefa em lote.

11/28
Criação de Processos
● Início do sistema
– Processos carregados durante o boot. Estes dão
sustentação a operação da máquina, ou iniciam
servidores.
– Em geral, processos que ficam em background,
que tratam de serviços, como servidor Web,
servidor de e-mail, são chamados de daemons.

12/28
Criação de Processos
● Processos criando processos
– Durante a execução de alguma tarefa, pode ser
interessante, do ponto de vista de processamento,
o programa criar vários processos para tratar
coisas diferentes, como por exemplo, um processo
para copiar um arquivo e outro para processar os
dados copiados.

13/28
Criação de Processos
● Requisição do usuário
– Em todos os sistemas modernos a requisição do
usuário para criação de arquivos é um dos
principais meios de inicialização de novos
processos.

14/28
Criação de Processos
● Em todos os casos, o processo aberto é
sempre filho do processo que foi utilizado para
gerá-lo. Herdando variáveis de ambiente,
permissões, etc.
● Em Unix a chamada de sistema para criarmos
um novo processo é fork.

15/28
Criação de Processos
● Ao executar o “fork” o processo pai gera um
processo filho que têm a mesma imagem de
memória, as mesmas variáveis de ambiente, e
os mesmos arquivos abertos.
● Depois o processo filho executa um execve,
para mudar a imagem que está na memória e
executar seu programa.

16/28
Término de Processos
● Razões para encerramento de processos:
– Saída normal
– Saída por erro
– Erro fatal
– Cancelamento por um outro processo

17/28
Término de Processos
● Saída normal
– É quando encerramos um processo normalmente e
o mesmo é fechado.
● Saída por erro
– Quando um programa apresenta um erro e é
encerrado. Este erro pode ser uma divisão por
zero, um erro de instrução, etc.

18/28
Término de Processos
● Erro fatal
– É um erro que impede a execução de um
programa. Por exemplo, se pedirmos para o
sistema listar um arquivo que não existe.
● Cancelamento por um outro processo
– Existem meios, no sistema operacional, de
encerrarmos um processo. No Unix utilizamos o
comando “kill” para finalizarmos um processo no
sistema.

19/28
Hierarquias de Processos
● Em sistemas Unix existe uma hierarquia entre
processos, onde um processo é pai de outro.
● Em ambientes Windows não existe a hierarquia
de processos. Todos os processos estão no
mesmo nível, não havendo nenhuma relação
entre eles.

20/28
Estados de Processos
● Em execução → Está no processador.
● Pronto → Está pronto para ser executado, mas
aguarda por sua vez na fila para ir ao
processador.
● Parado → Algum outro processo o está
impedindo de ser executado. Pode ser uma
E/S, o resultado de um outro programa, etc.

21/28
Estados de Processos

22/28
Estados de Processos

Instruções do Stack
Programa
Curse function
Stack overflow

Segmentation fault
Dados Alteráveis Heap
New String()
Dados não Data
alteráveis
Informações Text
De texto carregadas

23/28
Implementação de Processos
● Para implementar o modelo de processos os
sistemas operacionais mantém uma tabela
chamada de “tabela de processos”.
● Cada entrada na tabela de processos contém
informações sobre o estado do processo,
contador de programa, ponteiro na pilha,
alocação de memória, arquivos,
escalonamento, etc.

24/28
Utilização da CPU
● Se um processo ocupasse 20% da CPU
durante o tempo em que está na memória 5
processos fariam a CPU trabalhar a 100% do
tempo.
● Mas isso não traduz a realidade. Grande parte
dos processos sempre estão esperando por
dispositivos de E/S.

25/28
Utilização da CPU
● Estatisticamente falando, podemos podemos
estimar o uso de CPU através de uma função.
– Uso de CPU = 1 – pn
● Onde p é a probabilidade de um processo estar
esperando uma E/S e n é o número de
processos.

26/28
Utilização da CPU

27/28
Utilização da CPU

28/28

Você também pode gostar