Você está na página 1de 47

PROCESSOS

Autor: Valeriano Messele 1


Área: DET
PROCESSOS 2

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 3

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 4

– Base para a multiprogramação – Programa alocar recursos


– Compartilhar dados
– Trocar informações
– Sincronizar sua execução
• Gerência de Processos – é a principal tarefa do SO

Um processo é caracterizado por um programa em execução.


Diferença entre processo e programa?
Um processo é uma instância de um programa e possui dados de entrada, dados de saída e
um estado (executando, bloqueado, pronto)

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 5

PROGRAMA VS. PROCESSOS


Um programa pode ter várias instancias em execução (em diferentes processos).
Algoritmo codificado.
Forma como o programador vê a tarefa a ser executada

Um Processo é único codigo acompanhado de dados e estado.


Forma pela qual o SO vê um programa e possibilita sua execução

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 6

PROCESSOS dos tipos FOREGROUND e BACKGROUND


•Um processo possui sempre dois canais de comunicação
•associados a ele:
• – Um canal de entrada de dados (Input)
• – Um canal de saída de dados (Output)
•Dependendo de do tipo desses canais os processos podem
ser classificados como Foreground ou Background.

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 7

PROCESSOS do tipo FOREGROUND (Primeiro Plano)


•– Permite a comunicação direta do usuário com o processo durante o seu
processamento.
•– Tem como base processamento interativo (teclado, mouse e monitor, etc)
Exemplos: Ler um arquivo; Iniciar um programa (linha de comando ou um duplo clique no
mouse)

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 8

PROCESSOS do tipo BACKGROUND – Não permite a comunicação com o usuário durante o


processamento.
– Tem como base processamento tipo batch (arquivos de E/S)
Exemplos: Recepção e envio de e-mails; serviços de impressão

Autor: Valeriano Messele


Ano Académico: 2023/2024
COMPONENTES DE UM PROCESSO 9

Cada Processo Possui:


1)Conjunto de Instruções
2)Espaço de endereçamento (espaço reservado para que o processo possa ler e escrever -0 até
máximo
3)Contexto de hardware (valores nos registradores, como PC, ponteiro de pilha, e registradores
de Proposito gerais
4)Contexto de Software (atributos em geral, como lista de arquivos abertos, variáveis, etc.)

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 10

Contexto de Hardware
– Armazena o conteúdo dos registradores da UCP, registradores de uso específico e
registrador de status

Contexto de Software
– Especifica as características e limites dos recursos que podem ser alocados pelo processo
Composto por 3 grupos de informações:
• Identificação
• Quotas
• Privilégios

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 11

Identificação
•PID (Process Identification) – Referência aos processos
•UI (User Identification) – Identificação do usuário
Quotas
• Limites de cada recurso do sistema que um processo pode alocar.
Exemplo: Número maquina de arquivos abertos
Privilégios
• Direitos que definem ações que um processo pode fazer em relação a ele mesmo ou a
outro processos do SO
– Exemplo: Conta root ou administrador
Autor: Valeriano Messele
Ano Académico: 2023/2024
PROCESSOS 12
Espaço de Endereçamento
• Área de memória pertencente ao processo onde instruções e dados do programa são
armazenados para execução.
• Cada processo possui seu próprio espaço de endereçamento que está divido em três
segmento:
1) Texto: código executável dos programas
2) Dados: variáveis
3) Pilhas de execução (Armazenamento das diferentes rotinas )
a) Controla a execução do processo
b) Empilhamento chamadas a procedimento, seus parâmetros e variáveis locais
Autor: Valeriano Messele
Ano Académico: 2023/2024
TABELA DE PROCESSOS 13

Como estamos em ambiente multiprogramado, então existe múltiplos processos em


execução
deste modo preciso uma tabela de processo para identificar cada processo.
1) Tabela de processo também chamada de BCP (Bloco de Controle de Processo)
2) Contém informações de contexto de cada processo ex: ponteiros de arquivos abertos,
Posição do próximo byte a ser lido em cada arquivo, etc.
3) Contém informações necessárias para trazer o processo de volta, caso o SO tenha que
tirá-lo de execução
4) Contém estados de um processo em determinado tempo

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 14

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 15

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 16

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 17

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 18

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 19

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 20

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 21

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 22

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 23

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 24

Autor: Valeriano Messele


Ano Académico: 2023/2024
CARACTERISTICAS DE PROCESSOS 25

PROCESSOS do tipo CPU-BOUND E I/O-BOUND


CPU-Bound ( limitado pelo processamento)
– Ligado a CPU passa a maior parte do tempo usando o processador ( estado de execução)
e pouco utiliza as operação de E/S.
Exemplo: Programas de cálculo ou análise, próprias de programas científicos.
I/O-Bound ( limitado pelas entradas/saídas)
•– Esse tipo de processamento usa pouco a CPU e passa a maior parte do seu tempo no
estado de bloqueado (ou espera), pois realiza muita operações de E/S.
•– Exemplos: - Aplicações comerciais (leitura X gravação);
- Processos interativos ( logon e entrada de dados);
Autor: Valeriano Messele
•- Manipulação de Banco de Dados. Ano Académico: 2023/2024
PROCESSOS 26

PROCESSOS do tipo CPU-BOUND E I/O-BOUND

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 27

SINAIS
É um mecanismo que permite notificar processos de eventos gerados pelo SO ou por outros
processos.
O uso de sinais é fundamental para gerência de processos.
Exemplo: O uso do Ctrl+C para interromper um programa:
- Neste caso o SO gera um sinal informando ao processo o evento;
- No momento que o processo identifica a chegada do sinal, uma rotina específica de
tratamento
- é executada.

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 28

A maioria dos sinais são gerados pelo SO ou pelo Hardware, como a ocorrência de exceções,
interrupções de terminais, quotas excedidas e alarmes de tempo.
Em outras situações, os eventos são gerados a partir de outros processos com o propósito de
sincronizar suas exceções.

Um processo não responde instantaneamente a um sinal e os sinais ficam pendentes até que o
processo seja escalonado.
O tratamento de um sinal é semelhante ao de interrupção.
• Quando um sinal é tratado, o contexto do processo é salvo e a execução desviada para um
código de tratamento de sinal. Depois disso o programa volta a ser processado do ponto que
parou.
• O mecanismo de sinais está para o processo assim como as interrupções e exceções estão
para o SO.

Autor: Valeriano Messele


Ano Académico: 2023/2024
ESTADO DE PROCESSOS 29

Um processo pode estar em três estados


– Execução(Running)
•Quando está sendo utilizado pela UCP
•Somente um processo pode ser executado a cada instante
•– Pronto (Ready)
• Quando aguarda apenas para ser executado
– Espera / Bloqueado (Wait)
• Quando aguarda por algum evento externo ou por algum recurso para prosseguir seu
processamento

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 30

MUDANÇAS DE ESTADO DO PROCESSO


• Pronto -> Execução
– Quando um processo é criado, o sistema o coloca em uma fila de processos prontos, onde
aguardará uma oportunidade para ser executado.
– Cada SO tem seus próprios critérios e algoritmos para a escolha da ordem em que os
processos serão executados (escalonamento).
Esta transição também ocorre quando todos os processos já tiveram o seu tempo de execução
(fatia de tempo) e agora é novamente a vez do primeiro processo da fila de prontos ser
executado pela CPU.
– Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.
Autor: Valeriano Messele
Ano Académico: 2023/2024
PROCESSOS 31

Execução -> Espera( Bloqueado)


- Um processo executando pode passa para o estado bloqueado
por meio de eventos gerados pelo próprio processo . Ex: uma operação de E/S.
- Um processo, quando em execução, também pode passar para o estado bloqueado por
por eventos gerados pelo sistema .
Ex: S.O. suspende por um período a execução de um processo.

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 32

MUDANÇAS DE ESTADO DO PROCESSO


• Espera ( Bloqueado) -> Pronto
- Um processo no estado de bloqueado/espera passa para o estado de pronto quando a
operação solicitada é atendida ou o recurso esperado é concedido.
- Um processo no estado de bloqueado/espera sempre terá que passar pelo estado de pronto
antes de poder ser novamente selecionado para execução.
- Não existe mudança de estado de bloqueado/espera para o estado de execução diretamente.

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 33

MUDANÇAS DE ESTADO DO PROCESSO


•Execução->Pronto
– Um processo em execução pode passa para o estado de pronto quando ocorrer o término
da sua fatia de tempo, por exemplo.
– Nesse caso, o processo volta para a fila de processos prontos, onde aguarda uma nova fatia
de tempo;
– Causada por eventos gerados pelo sistema. Isto é de forma involuntária ao processo.

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 34

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 35

NOTA
- Um processo em estado “Pronto” ou “Espera” pode não se encontrar na memória principal !
- Isto ocorre quando não existe espaço suficiente para todos os processo na RAM e parte do
contexto do processo é levada para o HD.
- Uma técnica conhecida como swapping retira processos da RAM e os traz de volta seguindo
critérios de cada SO. Neste caso, os processos em estado bloqueado/espera e pronto podem
estar residentes ou não residentes na RAM.

Autor: Valeriano Messele


Ano Académico: 2023/2024
MUDANÇAS DE ESTADO DO PROCESSO COM Swapping 36

Autor: Valeriano Messele


Ano Académico: 2023/2024
CRIAÇÃO E ELIMINAÇÃO PROCESSOS 37

-Processos são criados e eliminados por vários motivos;


- Um processo é criado quando o SO adiciona um novo PCB ( Bloco de Controle de
Processo) à sua estrutura. A partir do PCB o SO já pode gerenciar o processo;
- Quando um processo é eliminado seus recursos associados são desalocados e o SO
elimina o PCB.
- A criação de um processo não o coloca na lista de processo no estado de pronto.

Além dos 3 estados de um processo, a maioria dos SO têm mais 2 estados (um para
criação e outro para eliminação).
- Criação (New) : O SO criou um novo PCB, porém o processo não está na lista de
prontos;
- Terminado (Exit): Não pode ser mais executado, porém o SO ainda mantém seu PCB e o
SO usa o PCB para contabilizar os recursos usados. Após isto, o processo pode deixar de
existir.
Autor: Valeriano Messele
Ano Académico: 2023/2024
CRIAÇÃO DE PROCESSOS 38

a)Inicialização do Sistema
b)Execução de uma chamada de sistema para a criação de processo, realizada por algum
processo em execução
c)Requisição de usuário para criar um novo processo (duplo clique do mouse, etc.)
d)Inicialização de um processo em batch (em sistemas mainframes com processos em
batch)

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 39

Autor: Valeriano Messele


Ano Académico: 2023/2024
CONCORRÊNCIA DENTRO DE UMA MESMA APLICAÇÃO 40

• Existem maneiras diferentes de implementar concorrência dentro de


uma aplicação. Uma delas é subdividir o código em partes para
trabalharem de forma cooperativa.
• Essa divisão pode ser de 3 formas:
- Processos Independentes;
- Subprocessos;
- Threads.
1) No UNIX com a função fork()
a) Cria clone do processo pai: copias exatas na memoria, mas com
identificadores diferentes
2) No Windows com CreateProcess
a) Cria processo filho, já carregando novo programa nele.

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 41

O uso de processo independentes é a forma mais simples de implementar a concorrência em


sistemas multiprogramáveis;
Neste caso não existe vínculo do processo criado com o seu criador;
A criação de um processo independente exige a alocação de um PCB.
SUBPROCESSOS
São processos criados dentro de uma estrutura hierárquica:
- Processo criador = processo pai;
- Novo processo = subprocesso ou processo filho.
Um subprocesso pode criar outros subprocessos.
Existe a dependência entre o processo pai e filho, ou seja, se o processo “pai” morre, o
“filho” morre automaticamente.
Os subprocessos também possuem seu próprio PCB.
Os subprocessos podem compartilhar quotas com seu pai.
Autor: Valeriano Messele
Ano Académico: 2023/2024
PROCESSOS 42

PROCESSOS x SUBPROCESSOS

Autor: Valeriano Messele


Ano Académico: 2023/2024
FINALIZANDO PROCESSOS 43

1) Término Normal (voluntário):


a)A tarefa a ser executada é finalizada;
b)Ao terminar, o processo executa uma chamada (comunicando ao SO que terminou):
exit (unix) e ExitProcess (Windows).
2 Termino por erro (voluntário):
a)O processo sendo executado não pode ser finalizado. Ex: gcc filename.c; o arquivo
filename.c não existe.
3) Término com erro fatal (involuntário);
a)Erro causado por algum erro no programa (bug); ex: Divisão por 0(zero);
referencia a memoria inexistente; execução de uma instrução ilegal
4) Termino (involuntário) causado por algum outro processo, via chamada
a)kill(unix)
b)terminateProcess (Windows)

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 44

PROCESSOS x SUBPROCESSOS
A criação e eliminação de processos independentes e subprocessos demanda recursos do
sistema (CPU, RAM,...).
Além disso, como cada processo tem seu espaço de endereçamento, a comunicação e
sincronização entre processos é pouco eficiente.

Autor: Valeriano Messele


Ano Académico: 2023/2024
CRIANDO PROCESSOS COM fork() 45

Autor: Valeriano Messele


Ano Académico: 2023/2024
PROCESSOS 46

Autor: Valeriano Messele


Ano Académico: 2023/2024
MUITO OBRIGADO PELA ATENÇÃO!

47
Volenti Nihil Difficili - “A quem quer, nada é difícil”

Você também pode gostar