Veja o post completo, tem muito mais sobre processo.
Em sistema
operacional Ć© conveniente diferenciar um programa
de sua execução. Assim, podemos dizer que:
Programa: Ć© uma entidade
estÔtica e permanente composto por uma seqüência de instruções:
passivo sob o ponto de vista do sistema
operacional.
Processo: Ć© uma entidade
dinâmica e efêmera,
que altera seu estado a medida que avança sua execução. Assim, o processo
é uma abstração que representa um programa em execução.
Um processo Ć© composto por: programa, dados, contexto (valores).
Um processo Ć© composto por: programa, dados, contexto (valores).
Ciclos de um processo
SĆ£o vĆ”rias as razƵes para que um processo seja criado e/ou destruĆdo. O momento e a forma como
isso acontece pode depender do sistema operacional considerado. Por exemplo:
Criação de Processos:
* Momento da execução;
* Chamadas de sistemas;
* Podem
ser associados a uma sessão de trabalho,
exemplo: login + senha _ shell (processo).
Finalização de Processos:
* Término da execução;
* Chamadas de sistemas;
* Por outros processos.
Os processos
podem executar programas de usuÔrios ou rotinas de sistema (daemons). Basicamente, os processos apresentam dois ciclos de operação:
1. Ciclo de processador: tempo que ocupa a CPU executando algum programa.
2. Ciclo de entrada e saĆda: tempo em espera pela conclusĆ£o
de um evento (E/S).
O primeiro
ciclo Ć© sempre de processador, pois para entrar
em um ciclo de E/S necessariamente Ć© preciso
executar pelo menos uma instrução.
As trocas de ciclos podem acontecer
atravƩs:
1. Chamada de sistema (CPU >> E/S)
2. Interrupção (CPU >> E/S ou E/S >> CPU)
3. OcorrĆŖncia de evento (E/S >> CPU)
Dessa forma, os processos podem ser classificados de acordo com taxa de utilização da CPU ou E/S
em:
1. Processos CPU bound:
Ciclo de processador >> ciclo de E/S
Exemplo: processo que faz multiplicação de matrizes.
2. Processos I/O bound:
Ciclo de E/S >> ciclo de processador
Exemplo: processo que faz cópia de arquivos
ou um processo de Banco de Dados.
Relacionamento entre
processos
Os
processos
podem,
ou
não,
apresentar
alguma
forma
de
relacionamento
ou
dependĆŖncia
em
relação a sua criação e execução no sistema.
Por
isso,
os
processos
ativos
dentro
do
sistema
computacional podem ser:
1. Independentes
* NĆ£o apresentam relacionamentos com outros processos;
* NĆ£o existe nenhum vĆnculo entre o processo que acabou de ser criado com seu criador;
* A criação exige uma nova entrada na PCB.
2. Subprocessos
* Criados em uma estrutura hierƔrquica;
* O processo
criador Ć© chamado de pai e o novo de filho ou subprocesso;
* Apresentam algum tipo de relacionamento: dependência do processo filho em relação ao pai;
* Podem compartilhar recursos;
* A criação do filho também exige uma nova entrada na PCB.
A representação da estrutura hierÔrquica acontece através de uma Ôrvore,
semelhante a estrutura
de diretórios e representa a evolução dinâmica
dos processos com o tempo.
Estados de um processo
Inicialmente, após ser criado
o processo necessita
entrar em ciclo de processador para começar a execução das instruções que compõem
o
programa.
No
entanto,
devemos
entender
que
vƔrios
processos são criados e todos irão disputar
o uso da CPU. Neste caso, o que o SO deve fazer?
* Criar uma fila com os processos
aptos a disputar o uso do processador: Fila de Aptos
(ready queue).
* Gerenciar o escalonamento atravĆ©s de polĆticas implementadas pelo SO para que todos possam ser executados.
Modelo simplificado de Dois Estados
Este
diagrama de
estado representa o modelo inicial para ilustrar
os
possĆveis
estados
que um processo pode alcançar, desde a sua criação até o seu término.
Dois estados são destacados: apto e
executando. Apto
representa o processo
em memória aguardando o escalonador para
entrar em execução; e executando caracteriza a aplicação utilizando a CPU.
O escalonador de processos é um módulo do SO que deve realizar as seguintes funções bÔsicas:
* Atribui o processador a um processo
da fila de aptos;
* Prevenir que um Ćŗnico processo
monopolize o processador.
Criação de Processos
Os processos
podem ser criados atravƩs das seguintes aƧƵes:
* Inicialização de um programa;
* Logon de usuƔrios;
* Processo criado para execução
de um determinado serviƧo do SO;
* Chamadas de sistemas, como o fork no Linux.
TƩrmino de processos
Os processos
podem ser finalizados pelas seguintes
aƧƵes:
* Final de execução (normal);
* SituaƧƵes āanormaisā: Exceder tempo limite de espera, Falta de memória, Erros de
proteção (Ex.
escrita
em
arquivo
read-only,
acesso
a
Ɣreas
de
memória
não
autorizadas), Erros aritméticos (Ex. divisão por zero, overflow, underflow);
* Erro em perifƩricos de E/S;
* Execução de instruções invÔlidas
(Ex. tentativa de executar
Ɣrea de dados, instruƧƵes
privilegiadas);
* Intervenção do sistema operacional;
* Ex. ocorrĆŖncia de blocagens (deadlocks);
* Log off de usuƔrios.
Modelo de 5 Estados
Este modelo
cria
novos
estados
de
forma
a
representar
diferentes
momentos
de
execução
dos
processos.
Estados do diagrama:
* Executando (Running)
* Apto (Ready)
* Bloqueado
(Blocked)
* Criação (New)
* Destruição (Exit)
Processos suspensos
1. Processador Ʃ mais rƔpido que operaƧƵes de E/S:
Possibilidade de todos processos
estarem bloqueados esperando
por E/S
2. Liberar memória ocupada
por estes processos:
Transferidos para o disco (swap)
3. Estado bloqueado assume duas situações: Bloqueado com processo em memória
Bloqueado com processo no disco
4. Necessidade de novos estados:
Bloqueado, suspenso
(Blocked, suspend) Apto, suspenso
(Ready, suspend)
RazƵes para suspender um processo
Swapping
SO necessita liberar memória para executar um novo processo
Solicitação do usuÔrio
Comportamento tĆpico de depuradores
Temporização
Processo deve ter sua interrupção interrompida por um certo perĆodo de tempo
Processo suspende
outro processo
Ex. Sincronização
Diagrama de Estados Ampliado
Neste
modelo,
novos
estados
foram
inseridos
para
representar
com precisão a localização dos processos durante
seu ciclo de vida, diferenciando memória e disco.
Os estados com o atributo suspenso indica o processo em disco.
Suporte de hardware à multiprogramação
A implementação da multiprogramação explora caracterĆsticas do hardware dos processadores.
Mecanismos bƔsicos:
Mecanismos bƔsicos:
* Interrupção;
* Dois modos de operação:
modo protegido (supervisor) e modo usuƔrio;
* Proteção de periféricos, memória e
processador.
Proteção entre processos
O compartilhamento
de
recursos
comuns
implica
em
garantir
que
a execução incorreta de um
programa não influencie a execução de outro programa.
Mecanismos de proteção:
* Modos de operação do processador;
* Proteção de periféricos;
* Proteção de memória.
Modos de
operação do processador
Modo supervisor (protegido):
* Possibilita a execução de todas as instruções do processador;
* Modo de execução sistema operacional.
Modo usuƔrio:
* Certas instruƧƵes
não podem ser executadas;
* Modo de execução dos processos usuÔrios.
Chaveamento:
* Interrupção (modo usuÔrio * modo protegido);
* Instrução (modo protegido * modo usuÔrio).
Proteção de periféricos
Como processos usuÔrios realizam operações de E/S jÔ que estas são instruções privilegiadas? Ou ainda,
como os processos solicitam serviƧos
para o SO?
Resposta: AtravƩs de Chamadas de sistema
* Normalmente baseada em interrupƧƵes de software;
* Aciona a rotina de tratamento de interrupção:
1. Identifica serviƧo requisitado
2. Verifica validade dos parâmetros
3. Executa o serviƧo
4. Retorna ao processo do usuƔrio
Exercicios
1. Defina
o conceito de processo e explique quais partes o compƵe.
2. Como
uma aplicação pode implementar concorrência em um ambiente monothread?
3. Como
o SO implementa o conceito
de processo? Quais as estruturas de dados indicada
para organizar os diversos
processos na memória
principal?
4. Explique as diferenƧas entre
processos foreground, background, cpu-bound e i/o-bound. DĆŖ exemplos de cada um.
5. Por que não faz sentido manter a lista de processos bloqueados
em ordem de prioridade?
6. Comente sobre as funƧƵes do escalonador e do dispatcher.
7. Apresente situaƧƵes reais presentes
na execução dos processos que justifiquem cada uma das transições apresentadas no diagrama
de estados mais completo dos processos.
Nenhum comentƔrio:
Postar um comentƔrio