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.