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