2. conceito de processos

58
Conceito de Processos

Upload: vinicampos

Post on 28-Jan-2018

939 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 2. conceito de processos

Conceito de Processos

Page 2: 2. conceito de processos

O que esperar do SO?

� Alternar a execução de processos de forma a maximizar autilização da CPU e fornecer tempo de resposta razoável;

� Alocar recursos a processos;

� Suportar criação de processos pelo usuário;

� Suportar comunicação entre processos.

2

Page 3: 2. conceito de processos

Introdução� Podemos descrever um processo com uma instância de

um programa em execução;

� Um processo inclui : Contador de programas, Pilha,segmento (área de dados );

� Os processos representam tarefas em execução, mas nemtodas têm relação direta com algum aplicativo;

� Muitas delas são executadas em plano de fundo emantêm o sistema trabalhando - gerenciando redes,memória, disco, checagem antivírus, etc.

3

Page 4: 2. conceito de processos

Introdução

� Nos sistemas multiprogramáveis, os processos sãoexecutados concorrentemente, compartilhando, entreoutros recursos, a utilização do processador, da memóriaprincipal e dos dispositivos de E/S.

� Além disso, em sistemas com múltiplos processadores, nãosó existe a concorrência de processos pelo uso doprocessador, como também a execução simultânea deprocessos nos diferentes processadores;

4

Page 5: 2. conceito de processos

Introdução

� Ao executar um programa, o usuário tem a impressão depossuir o processador e os demais recursos de hardwarede forma exclusiva. Na verdade, todos esses recursosestão sendo compartilhados;

� Nesse caso, o sistema operacional faz com que umprocesso de usuário seja executado durante certointervalo de tempo e, após esse intervalo, o processo éinterrompido para que outro possa ser executado.

5

Page 6: 2. conceito de processos

Estrutura do Processo� Para que a troca de processos ocorra sem problemas, é

necessário salvar as informações do processo interrompido,para que possam ser recuperadas quando aquele processovoltar a executar;

� Todas as informações relevantes e necessárias à execuçãode um programa fazem parte do processo. Essas informaçõessão chamadas de contexto do processo;

� Além disso, é necessário haver áreas de memória (paraarmazenamento de instruções e dados) alocadas para oprocesso, chamado de espaço de endereçamento. 6

Page 7: 2. conceito de processos

Contexto do Processo

O contexto do processo pode ser dividido em duas partes: o contexto de software e contexto de hardware:

� O contexto de hardware armazena o conteúdo de todos os registradores.

� O contexto de software armazena informações sobre a identificação, as quotas e os privilégios do processo.

7

Page 8: 2. conceito de processos

Contexto do Processo

8

Page 9: 2. conceito de processos

Contexto de Hardware� O contexto de hardware armazena o conteúdo dos registradores

gerais da CPU, além dos registradores de uso específico, comocontador de programas (PC), stack pointer (SP) e registrador destatus;

� Quando um processo está em execução, o conteúdo de algunsregistradores é alterado a cada nova instrução executada. Nomomento em que o processo perde a utilização da CPU, o sistemasalva as informações no contexto de hardware do processo;

� A troca de um processo por outro no processador, comandada pelosistema operacional, é denominada chaveamento (mudança ) decontexto. 9

Page 10: 2. conceito de processos

Contador de Programas

� Contém o endereço da memória cujo conteúdo deve serinterpretado como a próxima instrução;

� É um registrador de uma Unidade Central deProcessamento que indica qual é a posição atual nasequência de execução de um computador.

10

Page 11: 2. conceito de processos

Stack Pointer (Ponteiro da Pilha)� Um registrador que contém o endereço atual do

elemento superior da pilha. Uma Stack Pointer (ouPonteiro da Pilha, Pilha de Execução) é uma pilha quearmazena informações sobre as sub-rotinas ativas numprograma de computador. Seu principal uso éregistrar o ponto em que cada sub-rotina ativa deveretornar o controle de execução quando termina deexecutar.

11

Page 12: 2. conceito de processos

Registrador de Status

�Armazena informações sobre o status da execuçãodas instruções para possíveis detecções deproblemas;

� Indica o modo de acesso corrente;

�Por intermédio desse registrador, o hardware verificase a instrução pode ou não ser executada.

12

Page 13: 2. conceito de processos

Registradores� Quando o processador executa as instruções, os dados são armazenados,

temporariamente, nas pequenas memórias rápidas de 8, 16, 32 ou 64 bits quechamamos registros. Conforme o tipo do processador, o número global deregistros pode variar entre uma dezena e várias centenas.

Os principais registros são:

� o registrador de dados ou acumulador (ACC), armazenando os resultados dasoperações aritméticas e lógicas;

� o registrador de status (PSW, Processador Status Word), armazenando osindicadores sobre o estado do sistema (retenção, excesso, etc.);

� o registrador de instrução (RI), com a instrução de processamento em curso;

� o contador de programa (CO ou PC para Program Counter), com o endereço dapróxima instrução a ser processada;

� o registro reserva, que armazena, temporariamente, um dado vindo da memória. 13

Page 14: 2. conceito de processos

Contexto de Hardware

14

Page 15: 2. conceito de processos

Contexto de Software

�Armazena as informações sobre características elimites dos recursos que podem ser alocados peloprocesso, como número máximo de arquivosabertos simultaneamente e a prioridade deexecução e tamanho do buffer para operação deE/S;

�É composto por três grupos de informações sobre oprocesso: identificação, quotas e privilégios.

15

Page 16: 2. conceito de processos

Buffer (retentor)

� Uma região de memória física utilizada para armazenartemporariamente os dados enquanto eles estão sendomovidos de um lugar para outro;

� Contudo, um buffer pode ser utilizado quando movem-sedados entre processos dentro de um computador;

� Normalmente são utilizados quando existe uma diferençaentre a taxa em que os dados são recebidos e a taxa emque eles podem ser processados, ou no caso em que essastaxas são variáveis. 16

Page 17: 2. conceito de processos

Identificação (PID)� Cada processo criado pelo sistema, recebe uma

identificação única (PID – Process identification),representada por um número. Por meio do PID, o SO eoutros processos podem fazer referência a qualquerprocesso existente, consultando seu contexto ou alterandouma de suas características. Alguns sistemas, além do PID,identificam o processo através de um nome;

� O processo também possui a identificação do usuário oudo processo que criou (owner). Cada usuário possui umaidentificação única no sistema (UID – User identification),atribuída ao processo no momento de sua criação. 17

Page 18: 2. conceito de processos

Owner (UID)

�Identificação do usuário que o criou.

18

Page 19: 2. conceito de processos

Prioridade de Execução� O escalonador de processos do Windows, sempre executa

os processos que possuem a maior prioridade base;

� Quanto mais importante é o processo, mais vezes ele entrana fila para receber o tempo do processador;

� Se um processo tem prioridade alta, o Windows irá fazercom que ele seja executado mais vezes em umdeterminado intervalo de tempo. Quando a prioridade doprocesso é muito baixa, ele é executado menos vezes.

19

Page 20: 2. conceito de processos

Prioridade de Execução

20

Page 21: 2. conceito de processos

Data/Hora de Criação

�Grava Data e hora da criação doprocesso.

21

Page 22: 2. conceito de processos

Tempo de Processador� O escalonador do SO utiliza alguns critérios de escalonamento,

como: a taxa de utilização de CPU, que é a fração de tempodurante a qual ela está sendo ocupada; throughput que sãonúmeros de processos terminados por unidade detempo; turnaround que é o tempo transcorrido desde o momentoem que o software entra e o instante em que termina suaexecução; tempo de resposta: intervalo entre a chegada aosistema e inicio de sua execução; tempo de espera: soma dosperíodos em que o programa estava no seu estado pronto;

� Responsáveis por essa tarefa são algoritmos que são entendidosmais facilmente, estudados separadamente, mas na prática ossistemas operacionais utilizam combinações deles para melhorescalonar os processos.

22

Page 23: 2. conceito de processos

Quotas

São limites de cada recurso do sistema que um processo pode alocar. Alguns exemplos de quotas presentes na maioria dos sistemas operacionais são:

� Tamanho máximo de memória principal e secundária que o processo pode alocar;

� Número máximo de arquivos abertos simultaneamente;

� Número máximo de operações de E/S pendentes;

� Tamanha máximo de processo, subprocessos e threads que podem ser criados.

� Caso uma quota seja insuficiente, o processo poderá ser executado lentamente, interrompido durante seu processamento, ou mesmo, não ser executado. 23

Page 24: 2. conceito de processos

Privilégios

� Definem as ações que um processo pode fazer em relaçãoa ele mesmo, aos demais processos e ao sistemaoperacional;

� Privilégios que afetam o próprio processo permitem que suascaracterísticas possam ser alteradas, como prioridade deexecução, limites alocados na memória principal esecundária, etc;

� Já os privilégios que afetam os demais processos permitem,além da alteração de suas próprias características, aalteração de outros processos. 24

Page 25: 2. conceito de processos

Privilégios

� Privilégios que afetam o sistema são os mais amplos epoderosos, pois estão relacionados à operação e gerênciado ambiente, como a desativação do sistema, alteraçãode regras de segurança, criação de outros processosprivilegiados, modificação de parâmetros de configuraçãodo sistema, entre outros;

� A maioria dos sistemas operacionais possui uma conta deacesso com todos esses privilégios disponíveis, com oproposito de o administrador gerenciar o sistemaoperacional.

25

Page 26: 2. conceito de processos

Espaço de endereçamento

� O espaço de endereçamento é a área de memóriapertencente ao processo onde às instruções e os dados doprograma são armazenados para execução;

� Cada processo possui seu próprio espaço deendereçamento, que deve ser devidamente protegido doacesso dos demais processos.

26

Page 27: 2. conceito de processos

Espaço de endereçamento

27

Page 28: 2. conceito de processos

Bloco de controle de processo� Os PCB`s de todos os processos residem na memória

principal, em uma área exclusiva do sistema operacional.O tamanho dessa área geralmente é limitado por umparâmetro do sistema operacional que permite especificaro número máximo de processos possíveis de seremsuportados simultaneamente pelo sistema;

� Toda gerência dos processos é realizada por meio dechamadas de sistema, que realizam operações comocriação, alteração de características, visualização,eliminação, sincronização e suspensão de processos, entreoutros. 28

Page 29: 2. conceito de processos

Bloco de controle de processo

� Cada processo é representado no Sistema operacional por umbloco de controle de processo ( Process Control Block – PCB),também chamado de bloco de controle de tarefa;

� A partir do PCB, o Sistema operacional mantém todas asinformações sobre o contexto de hardware, o contexto desoftware e o espaço de endereçamento de cada processo;

� Contém muitas informações associadas a um processoespecífico, incluindo;

29

Page 30: 2. conceito de processos

Bloco de controle de processo� Estado do processo: O estado pode ser novo, pronto, em

execução, em espera, suspenso, e assim por diante;

� Contador do programa: O contador indica o endereçoda próxima instrução a ser executada para esseprocesso;

� Registradores de CPU: Juntamente com o contador doprograma , essas informações de estado devem sersalvas quando ocorre uma interrupção, para permitirque o processo continue corretamente depois disso;

30

Page 31: 2. conceito de processos

Bloco de controle de processo� Informações de escalonamento de CPU: Essas informações

incluem prioridade de processo, ponteiros para filas deescalonamento e outros parâmetros;

� Informações de gerência de memória: Essas informaçõespodem incluir dados como o valor dos registradores debase(menor endereço válido de memória fisica ) elimite(tamanho da area indereçavel) , as tabelas depáginas ou as tabelas de segmentos, dependendo doSistema de memória usado pelo Sistema operacional;

31

Page 32: 2. conceito de processos

Bloco de controle de processo� Informações de contabilização: Essas informações incluem

a quantidade de CPU e o tempo real usado;

� Informações de status de I/O: As informações incluem alista de dispositivos de I/O alocados para este processo;

� O bloco de controle de processo serve simplesmentecomo repositório de informações que podem variar deprocesso a processo.

32

Page 33: 2. conceito de processos

Bloco de controle de processo

33

Page 34: 2. conceito de processos

Estado do Processo� Em sistemas multiprogramáveis, é comum haver vários

processos compartilhando a utilização do processador. Paraevitar que algum processo monopolize o processador, osistema operacional determina quando cada processo temdireito a executar;

� Assim, quando um processo executa, os demais aguardamem uma fila pela sua vez. Se um processo estiverexecutando e solicitar uma operação de E/S, ele deveráliberar o processador e aguardar até que a operação sejaconcluída. Só então ele estará apto novamente a disputar autilização do processador com os outros processos. 34

Page 35: 2. conceito de processos

Estado do Processo

� Para saber em que situação se encontra cada processo, osistema operacional implementa o conceito de estados doprocesso. Ao longo do seu processamento, os processospassam por diferentes estados, em função de eventosgerados pelo próprio processo ou pelo sistema operacional.

35

Page 36: 2. conceito de processos

Estados de um processo ativo� Um processo ativo pode se encontrar em três

diferentes estados: execução( running), pronto(ready) e espera (wait).

36

Page 37: 2. conceito de processos

Executando (running)� Considera-se que um processador está no estado de execução,

quando ele está sendo processado pela CPU. Em sistemas com umúnico processador, somente um processo pode ser executado emum dado momento. O sistema operacional alterna (escalona) autilização do processador entre os processos, segundo algumapolítica estabelecida por ele;

� Em sistemas com múltiplos processadores, existe a possibilidade demais de um processo estar sendo executado ao mesmo tempo.Nesse tipo de sistema, também é possível um mesmo processo serexecutado simultaneamente, em mais de uma CPU ( processamentoparalelo).

37

Page 38: 2. conceito de processos

Apto ou pronto (ready)� Um processo está no estado apto ou pronto, quando

aguarda sua vez de ser executado;

� Em geral, existem vários processos no sistema em estado depronto, organizados em uma fila. Por meio dessa fila,chamada de fila de aptos ou fila de prontos, o sistemaoperacional determina a ordem e os critérios pelos quais osprocessos em estado de pronto devem utilizar oprocessador. Esse mecanismo é conhecido comoescalonamento.

38

Page 39: 2. conceito de processos

Bloqueado ou espera (wait)

� Um processo no estado bloqueado ou espera guarda poralgum evento externo ou por algum recurso paraprosseguir seu processamento;

� Como exemplo. Podemos citar um processo queaguarda o término de uma operação de E/S ou esperade uma determinada data e/ou hora para continuar suaexecução.

39

Page 40: 2. conceito de processos

Estado de criação e destruição de um processo

� Para um processado entrar na fila de aptos e aguardar sua vez deexecutar, é necessário que seja criado pelo (loader) do sistemaoperacional;

� Primeiro o sistema operacional deve alocar na memória principal asáreas de código, dados e pilha. Em seguida, o programa deve sertransferido da memória secundária para a memória principal nas áreasalocadas. Por último, o PCB é criado e inicializado apropriadamente,com as informações do processo;

� A partir desse momento, o sistema operacional já reconhece aexistência do processo.

40

Page 41: 2. conceito de processos

Estado de criação e destruição de um processo

� Após criar o processo, o sistema operacional normalmente o coloca nafila de aptos para que ele concorra à utilização do processador. Noentanto, algumas vezes, podem falar recursos ( por exemplo: númeromáximo de processos ativos alcançados); nesse caso, o sistemaoperacional manterá o processo no estado de criação, até que hajarecursos para ele se tornar ativo.

41

Page 42: 2. conceito de processos

Estado de criação e destruição de um processo

42

Page 43: 2. conceito de processos

Estado de criação e destruição de um processo

Quando um processo é finalizado, todos os recursos do processo devemser desalocados e o PCB deve ser eliminado pelo sistema operacional.O término de um processo pode ocorrer pelas seguintes razões:

� Término normal de execução;

� Eliminação forçada por erros de proteção;

� Eliminação por outro processo;

� Eliminação forçada por ausência de recursos disponíveis no sistema.

43

Page 44: 2. conceito de processos

Transições de estado do processo� Um processo muda de estado durante seu processamento, em

função de eventos originados por ele próprio ( evento voluntários) oupelo sistema operacional ( eventos involuntários). Basicamente,existem quatro mudanças de estado que podem ocorrer a umprocesso.

44

Page 45: 2. conceito de processos

Transições de estado do processo

45

Page 46: 2. conceito de processos

Apto � Executando� A transferência de um processo do estado apto para o

estado de execução indica que o outro processo saiu doestado de execução ( perdeu processador);

� Um processo perde o processador quando sua fatia detempo ( time slice) termina, quando faz uma chamada desistema ou quando chega ao fim de sua execução ( normalou forçada);

� Isso faz com que o sistema operacional selecione umprocesso no estado apto para ser executado.

46

Page 47: 2. conceito de processos

Execução � Apto

� Um processo em execução passa para o estado de apto poreventos gerados pelo sistema, como término da sua fatia detempo (time slice) ou para ceder a vez a um processo demaior prioridade;

� Nesse caso, o processo volta para a fila de aptos, ondeaguarda por uma nova oportunidade para continuar seuprocessamento.

47

Page 48: 2. conceito de processos

Execução � Bloqueado� Um processo em execução pode passar para o estado de

bloqueado, por eventos gerados pelo próprio processo. Porexemplo, quando um processo em execução necessitarealizar uma operação de E/S;

� Além disso, um processo em execução também pode passarpara o estado de bloqueado em função de eventosexternos. Um evento externo é gerado, por exemplo, quandoo sistema operacional suspende, por um período de tempo,a execução de um processo.

48

Page 49: 2. conceito de processos

Bloqueado � Apto� Um processo no estado bloqueado passa para o estado de

apto quando a operação solicitada é atendida ou orecurso esperado é concedido;

� Em geral, um processo no estado bloqueado sempre teráde passar pelo estado de apto antes de passar poder sernovamente selecionado para execução. Normalmente nãoexiste a mudança do estado bloqueado para o estado deexecução diretamente. Em casos raros, um processopoderá fazer isso, caso a chamada de sistema sejaextremamente rápida como a leitura da hora do sistema.

49

Page 50: 2. conceito de processos

Transição de estado com swapping

� Um processo no estado apto ou bloqueado pode não se encontrarresidente na memória principal;

� Essa condição ocorre quando não existe espaço suficiente paratodos os processo na memória principal e parte do contexto doprocesso é levada para a memória secundária;

� Uma técnica conhecida como swapping retira o processo damemória principal e o traz de volta, seguindo os critérios de cadasistema operacional. Nesse caso, os processos em estadobloqueado e apto podem estar residentes ou não-residentes namemória principal.

50

Page 51: 2. conceito de processos

Transição de estado com swapping

51

Page 52: 2. conceito de processos

Estado do Processo

�À medida que o processo executa, ele muda deestado;

�O estado de um processo é definido em partes pelaatividade atual desse processo.

52

Page 53: 2. conceito de processos

Estado do ProcessoDiagrama de Estado.

53

Page 54: 2. conceito de processos

Estado do ProcessoCada processo pode estar em um dos seguintes estados:

� Novo: O processo está sendo criado.� Em execução: as intruções estão sendo executadas.� Em espera: o processo está esperando a ocorrência de

algum evento (como conclusão de operação de I/O ourecepção de um sinal).

� Pronto: o processo está esperando para ser atribuído aum processador.

� Encerrado: o processo terminou a execução.

54

Page 55: 2. conceito de processos

Processos: CPU-Bound� É um processo que utiliza muita CPU. O seu tempo de execução é

definido principalmente pelo tempo dos ciclos(clocks) doprocessador. Esse tipo de processo realiza poucas operações deleitura e gravação e é encontrado em aplicações cientificas ede muito cálculo. Por exemplo um processo que executa umprograma de inversão de matriz é cpu-bound. Após ler alguns poucosdados, ele precisa apenas de processador.

55

Page 56: 2. conceito de processos

IO-Bound(ligado à E/S)� Passa a maior parte do tempo no estado de espera, pois realiza um

elevado número de operações de E/S. Nesse caso, o tempo deexecução é definido principalmente por estas operações. Porexemplo, um processo que executa um programa de cópia dearquivo é i/o-bound. Ele praticamente não utiliza processador,apenas acessa disco. Este tipo de processo é encontradoprincipalmente em aplicações comerciais, que se baseiamem leitura, processamento e gravação.Os processos interativostambém são bons exemplos de processos I/O-bound, pela forma decomunicação entre o usuário e o sistema, normalmente lenta,devido à utilização de terminais.

56

Page 57: 2. conceito de processos

CPU-Bound/ I/O-Bound� O ideal é ter no sistema uma mistura de processos cpu-bound com

processos i/o-bound. Se todos os processos forem cpu-bound, oprocessador será o gargalo do sistema. Se todos forem i/o-bound, oprocessador ficará parado enquanto todos os processos tentamacessar os periféricos;

� Quando um ou mais processos estão prontos para seremexecutados, o sistema operacional deverá decidir qual deles que iráser executado primeiro. Para saber essa prioridade, existe uma partedo sistema operacional responsável chamada de escalonador. Oalgoritmo usado para isso é chamado de algoritmo deescalonamento.

57

Page 58: 2. conceito de processos

Bibliografia

Silberschatz, Abraham

Sistemas Operacionais: conceitos e aplicações / Abraham

Silberschatz, Peter Galin, Greg Gagne ; tradução de Adriana

Rieche. – Rio de Janeiro: Elsvier, 2000 – 8 Reimpressão.

58Vinicius Campos