Escolar Documentos
Profissional Documentos
Cultura Documentos
Processos
Maria João Viamonte / Luis Lino Ferreira
Fevereiro de 2006
Processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 2
1
Conceito de Processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 3
Processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 4
2
O Sistema Operativo
Um SO multi-tarefa deve:
Alternar a execução de processos de forma a
maximizar a utilização da UCP
Fornecer tempo de resposta razoável
Alocar recursos a processos
Suportar a criação de processos pelo utilizador
Suportar a comunicação entre processos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 5
Criar Processos
Por ex.:
Quando o utilizador abre uma sessão de shell
Quando gerado por outro processo
…
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 6
3
Terminar Processos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 7
Modelo Simples
despacho
entra sai
ready running
pausa
pausa
4
Problemas com o Modelo Simples
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 9
interrompido
evento
espera
ocorre
evento
waiting
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 10
5
Modelo Mais Elaborado
interrompido
fila evento 1
ocorre evento 1 espera evento 1
fila evento 2
ocorre evento 2 espera evento 2
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 11
Primitivas de Despacho
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 12
6
Primitivas de Despacho
New
O processo está a ser criado
Ready
O processo está pronto para ser executado
Running
O código referente a um processo está a ser
executado
Sistemas multi-processador podem executar vários
processo em paralelo, um em cada processador
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 13
Primitivas de Despacho
Waiting
O processo está à espera que um evento específico
ocorra (por ex. operação de I/O ou recepção de um
sinal)
Terminated
O processo finalizou a sua execução
Nota:
Em máquinas com apenas uma UCP só um processo
pode estar no estado running
Pode haver vários processos no estado ready e no
estado waiting
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 14
7
Processos
Nota:
Os estados definidos atrás apenas
representam os casos mais habituais num SO
A implementação do modelo de processo pelo
SO pode necessitar de outros estados, como
por ex.:
Em LINUX é definido o estado de Zombie para os
processo que já terminaram mas cujos recursos
ainda não foram totalmente libertados
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 15
Comutação de Processos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 16
8
Comutação de Processos
Dados
Pilhas(s)
Atributos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 17
Representação do Processo
Cada processo é representado perante o SO
por uma estrutura contendo a sua informação,
o Process Control Block (PCB)
O PCB é o conjunto de atributos do processo
e pode ser dividido em três partes:
Identificação do processo
Informação de estado do processador
Informação de controle do processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 18
9
Identificação do Processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 19
Informação de Estado do
Processador
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 20
10
Informação de controle do
processo (1)
Estado e escalonamento, de acordo com a
máquina de estados definida anteriormente,
que inclui:
Estado do processo (por ex. ready)
Prioridade
Suporte ao escalonamento (por ex. há quanto
tempo está à espera)
Evento (por ex. identificação do evento que o
processo está à espera)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 21
Informação de controle do
processo (2)
Estrutura dos dados (por ex. relação pai-filho)
Comunicação entre processos
Privilégios (por ex. tipos de instruções que podem ser
executadas)
Gestão da memória
Valores do registo base e limite
ponteiro para a tabela de páginas
Propriedade e uso de recursos (por ex. ficheiros
abertos)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 22
11
Process Control Block (PCB)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 23
Exemplos
Lançar Processos
Uma forma de lançar processos é executar
comandos numa shell
Exemplo: > ls
A shell cria um novo processo que executa o programa
‘ls’, espera que termine e volta a aceitar comandos
Exemplo: > ls &
A shell cria um novo processo que executa o programa
‘ls’ e retorna imediatamente para aceitar comandos
O processo é lançado em background
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 24
12
Exemplos
Consultar Processos
O comando ps mostra os processos existentes:
Exemplo: > ps
PID: identificador do processo
TTY: terminal
STAT: estado do processo
- R ‘running’, S ‘sleeping’, D ‘uninterruptible sleep’
TIME: tempo de processador já consumido
O comando ‘top’ mostra estatísticas gerais do sistema
e processos com maior actividade
Exemplo: > top
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 25
Exemplos
Parar ou suspender Processos
O comando kill permite enviar um sinal
assíncrono ao processo
Exemplo: > kill 143
Existem combinações de teclas que enviam
sinais específicos:
CTRL+C ‘signal interrupt’ (sigint)
CTRL\ ‘signal quit’ (sigquit)
CTRL+Z ‘signal stop’ (sigstop)
> bg – coloca o processo suspenso a executar-se
em segundo plano
> fg – coloca o processo suspenso a executar-se em
primeiro plano
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 26
13
Exemplos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 27
Sugestão de Estudo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 28
14
Comutação entre Processos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 29
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 30
15
Escalonamento
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 31
Filas de Escalonamento
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 32
16
Filas de Escalonamento
Ready queue – esta fila
contém os PCBs dos
processos residentes
em memória que estão
no estado ready, isto é
processos que estão
prontos e à espera de
serem executados
Device queue – lista dos
PCBs dos processos à
espera dum dispositivo
I/O
Exemplo: Disk unit 0
queue
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 33
Filas de Escalonamento
Processo emite
um pedido de
I/O
Processo cria
um novo sub-
processo
Processo
removido em
Processos no consequência de
estado de uma interrupção
Waiting
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 34
17
Filas de Escalonamento
Escalonadores
Um processo migra entre várias filas de escalonamento durante o seu
tempo de vida
O SO deve seleccionar processos destas filas com base em algum
método ou algoritmo
Há três tipos de escalonadores:
curto prazo
médio prazo
longo prazo
Os processos podem ser caracterizados como ou:
I/O-bound process – despende mais tempo a fazer operações I/O do que
cálculos na UCP; consequentemente, há bastantes UCP bursts de curta
duração
UCP-bound process – despende mais tempo a fazer cálculos na UCP;
consequentemente, há poucos UCP bursts de longa duração
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 36
18
Escalonadores
multiprogramação
Utilizado essencialmente em sistema batch
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 37
Escalonadores
Escalonador de curto-prazo (ou escalonador da
UCP):
Selecciona que processos devem ser executados de
seguida e reserva, consequentemente, a UCP
Escalonador de curto-prazo é invocado com bastante
frequência
(milli-segundos) ⇒ (ser rápido)
Exemplos:
Linux
Windows
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 38
19
Escalonadores
Escalonador de médio-prazo
Permite remover processos da memória
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 39
ou fork()
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 40
20
Árvore de Processos (UNIX)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 41
Criação de Processos
21
Criação de Processos (UNIX)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 43
Terminação de um Processo
Terminação normal: um processo termina quando acaba a
execução da sua última instrução, e pede ao SO para eliminá-lo
via a chamada ao sistema exit().Nesta altura:
O processo devolve eventualmente dados ao seu progenitor
através da evocação da função wait()
O SO liberta todos os recursos utilizados pelo processo (filho)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 44
22
Processo Cooperativos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 45
Processo Cooperativos
Razões para a cooperação
Partilha de informação
De modo a requerer serviços a outros processos
Performance
O programa é partido em vários processos executadas em
paralelo (vários processadores)
Modularidade
Separar o programa em módulos diferentes. Por ex. separar a
interface gráfica das rotinas do programa
Conveniência
Por ex. de modo a que seja possível realizar várias tarefas em
simultâneo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 46
23
Paradigma Produtor/Consumidor
Paradigma Produtor/Consumidor
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 48
24
Paradigma Produtor/Consumidor
Produtor
Próximo item a
item nextProduced; ser produzido
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 49
Paradigma Produtor/Consumidor
Consumidor
Próximo item a
item nextConsumed; ser consumido
while (1) {
Se in==out significa que não
while (in == out)
existem elementos no buffer
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
25
Comunicação entre Processos
Através de mensagens
Permite a comunicação entre processos através
das primitivas de mensagens:
send(): envia mensagem
receive(): recebe mensagem
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 51
ou a fonte
send(p, msg), p processo de destino
Propriedades
A ligação entre os pares é estabelecida
automaticamente
A ligação está associada apenas a dois processos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 52
26
Comunicação entre Processos
Indirecta
As mensagens são enviadas para caixas de correio
send(mailboxA, msg), coloca uma mensagem na caixa de correio
A
receive(mailboxA, msg), lê uma mensagem na caixa de correio A
Propriedades
Não existe ligação entre processos, apenas ligação à caixa
A caixa de correio pode estar associada a mais do que 1
processo
A caixa de correio pode ser unidireccional ou bidireccional
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 53
Sincronização
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 54
27
Buffering
Fila de mensagens associadas a uma
ligação; é implementada numa das três
formas:
Capacidade nula – 0 mensagens. O emissor
tem de esperar pelo receptor (rendezvous)
Capacidade limitada – comprimento finito de n
mensagens. O emissor tem de esperar se a
ligação está saturada
Capacidade ilimitada – comprimento infinito. O
emissor nunca espera
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 55
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 56
28
Sistemas Operativos I
Processos
Maria João Viamonte / Luis Lino Ferreira
Fevereiro de 2006
Gestão de Processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 58
29
Process Control Block
Estado do processo
De acordo com a máquina de estados definida
anteriormente
Program Counter
Indica o endereço da próxima instrução que irá
ser executado pelo processo
Registos da UCP
O número e tipo dos registos depende da UCP
(por ex: acumuladores, stack pointers, flags...)
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 59
Informação de escalonamento
Prioridade
Apontadores para as filas de escalonamento
Outros parâmetros
Informação sobre a memória
Áreas de memória utilizáveis pelo processo
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 60
30
Process Control Block
Informação de monitorização
Tempo de UCP gasto
Limites para o processo
Número do processo
Informação de I/O
Lista de dispositivos de I/O atribuídos ao
processo
Lista de ficheiros abertos
Sistemas Operativos I
05/06 Maria João Viamonte / Luis Lino Ferreira 61
31