- O documento discute o conceito de processo em sistemas operacionais, incluindo seu modelo, estados, tipos de processos e funções do sistema implementadas como processos.
- Um processo representa um programa em execução e é composto por contexto de hardware, software e espaço de endereçamento. O sistema mantém informações sobre cada processo em uma estrutura chamada Bloco de Controle de Processo.
- Processos podem estar em execução, pronto ou espera. Eles mudam de estado durante a execução e o sistema gerencia listas de processos nesses estados.
2. SUMÁRIO
• INTRODUÇÃO
• MODELO DE PROCESSO
– CONTEXTO DE HARDWARE
– CONTEXTO DE SOFTWARE
– ESPAÇO DE ENDEREÇAMENTO
• ESTADO DO PROCESSO
• MUDANÇAS DE ESTADO DO PROCESSO
• SUBPROCESSO E THREAD
• PROCESSOS DO SISTEMA
• TIPOS DE PROCESSO
• QUESTÕES
3. INTRODUÇÃO
O termo processo apareceu, de forma a
ser usado pelos autores, após o surgimento dos
sistemas multi-programáveis, sendo um dos
conceitos mais importantes em sistemas
operacionais.
4. INTRODUÇÃO
“Processo pode ser entendido como um
programa em execução, só que seu conceito é
mais abrangente. Este conceito torna-se mais
claro quando pensamos de que forma os
sistemas multiprogramáveis (multitarefa)
atendem os diversos usuários (tarefas) e
mantêm informações a respeito dos vários
programas que estão sendo executados
concorrentemente.” Machado, Francis Berenger
e Maia, Luiz Paulo pag. 65
5. MODELO DE PROCESSO
O conceito de processo pode ser definido como
sendo o ambiente onde se executa um
programa. Um mesmo programa pode produzir
resultados diferentes, em função do processo no
qual ele é executado.
6. MODELO DE PROCESSO
“O sistema operacional materializa o processo
através de uma estrutura chamada bloco de
controle do processo (Process Control Block –
PCB)” Machado, Francis Berenger e Maia, Luiz
Paulo pag.66
A partir do bloco de controle de processo o
sistema operacional mantém todas as
informações sobre o processo.
7. MODELO DE PROCESSO
• Identificação
• Prioridade
• Estado corrente
• Recursos alocados
9. MODELO DE PROCESSO
Os processos são gerenciados através de system
calls, realizando operações como criação,
eliminação sincronização, suspensão de
processos.
O processo pode ser dividido em três elementos
básicos: contexto de hardware, contexto de
software e espaço de endereçamento
10. MODELO DE PROCESSO: CONTEXTO DE
HARDWARE
“O contexto de hardware constitui-se, basicamente,
do conteúdo de registradores: program counter
(PC), stack pointer (SP) e bits de estado. Quando um
processo está em execução, o seu contexto de
hardware está armazenado nos registradores do
processador. No momento em que o processo perde
a utilização da UCP, o sistema salva suas
informações no seu contexto de hardware”
Machado, Francis Berenger e Maia, Luiz Paulo
pag.66
11. MODELO DE PROCESSO: CONTEXTO DE
HARDWARE
O contexto de hardware é fundamental,
implementa o time-sharing (sistema de tempo
compartilhado) onde os processos se revezam
no uso do processador, podendo sofrer
interrupções.
A troca de um processo por outro na UCP é
denominada context switching (mudança de
contexto).
12. MODELO DE PROCESSO: CONTEXTO DE
HARDWARE
Essa mudança de contexto consiste em salvar o
conteúdo dos registradores da UCP e carrega-los
com os valores referentes ao do processo que
esteja ganhando a utilização do processador.
Essa operação resume-se em substituir o
contexto de hardware de um processo pelo
outro
14. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
“Contexto de software especifica características
do processo que vão influir na execução de um
programa...” Machado, Francis Berenger e Maia,
Luiz Paulo pag.66
Contexto de software define três grupos de
informações sobre um processo: Identificação,
quotas e privilégios.
15. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
Identificação:
Os processos criados pelo sistemas
recebem um identificação única, PID( Process
Identification) que é representada por um
número.
Observação: Alguns sistemas identificam o
processo por um nome, além do PID.
16. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
Identificação:
É através do PID, que o sistema
operacional e outros processos podem fazer
referência a um determinado processo e
também podendo alterar uma de suas
características.
17. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
Identificação:
Owner, é o nome dado a identificação
gerada pelo usuário ou um processo
UID (user identification), cada usuário
possui uma identificação única atribuída ao
processo no momento de sua criação. A UID é
usada como modelo de segurança, onde apenas
objetos que possuem a mesma UID do usuário
podem ser acessados.
18. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
Quotas:
São os limites de cada recurso do sistema
que um processo pode alocar.
Quanto uma quota é insuficiente, o
processo será executado lentamente ou não
será executado.
19. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
Quotas:
Alguns exemplos de quotas
• Número máximo de arquivos abertos
simultaneamente;
• Tamanho máximo de memória que o processo
pode alocar;
• Número máximo de operações de E/S pendentes;
• Tamanho máximo do buffer de operações de E/S;
• Número máximo de processos e sub-processos
que podem ser criados.
20. MODELO DE PROCESSO: CONTEXTO DE
SOFTWARE
Privilégios:
Define o que o processo pode ou não fazer
em relação ao sistema e aos outros processos.
“... Existem privilégios associados à
segurança que permitem a um usuário eliminar
processos de outros usuários e ter acesso a
arquivos que não lhe pertencem.”Machado,
Francis Berenger e Maia, Luiz Paulo pag.68
21. MODELO DE PROCESSO: ESPAÇO DE
ENDEREÇAMENTO
É a área da memória do processo onde
o programa será executado.
Cada processo possui seu próprio
espaço de endereçamento.
22. ESTADOS DOS PROCESSOS
Um processo não é executado todo o
tempo pelo processador. Ele transita por uma
série de estados, sendo três mais básicos:
• Execução (running)
• Pronto (ready)
• Espera (wait)
23. ESTADOS DOS PROCESSOS
Execução:
Um processo é dito no estado de execução
quando está sendo processado pela UCP.
Os processos revezam a utilização do
processador seguindo uma politica estabelecida
pelo sistema operacional.
24. ESTADOS DOS PROCESSOS
Pronto:
Quando aguarda para ser executado, ou
seja espera a UCP executar.
O sistema operacional é responsável por
determinar a ordem dos processos em estado
de pronto para ganhar a UCP.
“... Normalmente existem vários processos no
sistema no esta de pronto.”Machado, Francis
Berenger e Maia, Luiz Paulo pag.69
25. ESTADOS DOS PROCESSOS
Espera:
Quando aguarda um evento externo ou
algum recurso para poder prosseguir seu
processamento.
Em alguns sistemas esse estado pode assumir
uma subdivisão em função ao tipo de evento que
processo aguarda. Quando o recurso não se
encontra disponível é dito que o processo esta em
estado de bloqueado (blocked).
26. ESTADOS DOS PROCESSOS
“O sistema operacional gerencia os processos
através de lista encadeadas, onde cada PCB tem
um ponteiro para seu sucessor. Como podem
existir vários processos nos estados de pronto ou
de espera, o sistema implementa listas, onde os
processos aguardam seu processamento... Ou
esperam por algum evento....” Machado, Francis
Berenger e Maia, Luiz Paulo pag.69
27. MUDANÇAS DE ESTADO DO PROCESSO
Um processo muda de estado varias vezes
em função de eventos originados por ele próprio
ou pelo sistema operacional.
28. MUDANÇAS DE ESTADO DO PROCESSO
Pronto para execução
Quando um processo é criado o sistema o
coloca em uma lista de processos no “estado
pronto” aguardando para ser executado.
Cada sistema operacional tem seus
critérios e algoritmos para escolha da ordem de
execução dos processos.
29. MUDANÇAS DE ESTADO DO PROCESSO
Execução para espera
Passa-se para o estado de espera por
eventos gerados pelo próprio processo.
30. MUDANÇAS DE ESTADO DO PROCESSO
Espera para pronto
Passa-se para o estado de pronto quando a
operação solicitada é atendida ou o recurso é
concedido.
Um processo no estado de espera sempre
terá de passar pelo estado de pronto antes de
poder ser novamente selecionado para
execução.
31. MUDANÇAS DE ESTADO DO PROCESSO
Execução para pronto
Passa-se para o estado de pronto por
eventos gerados pelo sistema.
33. SUBPROCESSO E THREAD
“Um processo pode criar outros processo de
maneira hierárquica. Quando um processo
(processo pai) cria um outro, chamamos o
processo criado de subprocesso ou processo
filho.” Machado, Francis Berenger e Maia, Luiz
Paulo pag.71
34. SUBPROCESSO E THREAD
Usar subprocessos permite dividir uma aplicação
em partes que podem trabalhar de forma
concorrente.
O uso de subprocessos no desenvolvimento de
aplicações concorrentes demanda consumo de
diversos recursos do sistema.
Na tentativa de diminuir o tempo gasto na
criação/eliminação de processos, bem como
economizar recursos do sistema como um todo, foi
introduzido o conceito de thread
35. SUBPROCESSO E THREAD
Em ambientes com múltiplos threads
(multithread), não é necessário haver vários
processos para se implementar aplicações
concorrentes. Cada processo pode responder a
várias solicitações concorrentemente ou mesmo
simultaneamente, se houver mais de um
processador.
36. SUBPROCESSO E THREAD
A diferença entre subprocessos e threads é em
relação ao espaço de endereçamento. Enquanto
processos possuem, cada um, espaços
independentes e protegidos as threads
compartilham o mesmo espaço de endereçamento
do processo, sem nenhuma proteção, permitindo
assim que um thread possa alterar dados de outro
thread.
Threads são desenvolvidas para trabalhar de forma
cooperativa.
37. PROCESSOS DO SISTEMA
“O conceito de processo, além de estar
associado a aplicações de usuário, pode também
ser implementado na própria estrutura do
sistema operacional.” Machado, Francis
Berenger e Maia, Luiz Paulo pag.73
38. PROCESSOS DO SISTEMA
“Quando se usa processos para a
implementação de funções do sistema, estamos
retirando código do seu núcleo, tornando-o
menos e mais estável.” Machado, Francis
Berenger e Maia, Luiz Paulo pag.73
39. PROCESSOS DO SISTEMA
Algumas funções do sistema operacional implementadas
através de processos
• Auditoria e segurança
• Serviço de rede
• Contabilização de recursos
• Contabilização de erros
• Gerencia de impressão
• Gerencia de jobs batch
• Temporização
• Comunicação de eventos
• Interface de comandos (shell)
40. TIPOS DE PROCESSOS
• CPU- bound
quando o processo passa a maior parte do
tempo no estado de execução
• I/O-bound
Quando passa a maior parte do tempo em
estado de espera, pois realiza um elevado
número de operações de entrada e saída.
41. QUESTÕES
1. Defina conceito de processo.
2. A partir do bloco de controle de processo, quais
informações o sistema operacional mantem sobre o
processo?
3. Em contexto de hardware como é chamado a troca
de um processo por outro na UCP?
4. Em contexto de software, qual os três grupos de
informação de um processo?
5. Defina PID (contexto de software).
6. O que é espaço de endereçamento?
7. Quais os três estados de um processo?
42. REFERÊNCIAS
MACHADO, Francis Berenger e MAIA, Luiz Paulo.
Arquitetura de Sistemas Operacionais. Rio de
Janeiro, RJ. Editora LTC, 1994.