sexta-feira, 24 de fevereiro de 2012

Sistemas Operacionais: Processos

E aĆ­, vamos iniciar com um videozinho?!




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).


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:
*  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

Sejam bem vindos!


EspaƧo destinado Ć s novidades sobre o mundo da tecnologia, experiĆŖncias (idĆ©ias, protĆ³tipos, soluƧƵes, dentre outros), jogos e principalmente materiais de TI (apostilas, artigos, projetos, provas, etc).

A maioria do material postado aqui serĆ” de tutoriais garimpados ou comprados na net, e terĆ” um toque feminino (o meu, Ć© claro :-D), mas podem ficar tranquilos, todos terĆ£o os devidos crĆ©ditos.


Viu algum material seu e nĆ£o teve crĆ©dito? Avise!!! "Creditarei" com o maior prazer.