2. conceito de processos

Preview:

Citation preview

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

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

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

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

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

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

Contexto do Processo

8

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

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

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

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

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

Contexto de Hardware

14

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

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

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

Owner (UID)

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

18

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

Prioridade de Execução

20

Data/Hora de Criação

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

21

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

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

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

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

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

Espaço de endereçamento

27

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

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

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

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

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

Bloco de controle de processo

33

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

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

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

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

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

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

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

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

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

42

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

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

Transições de estado do processo

45

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

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

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

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

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

Transição de estado com swapping

51

Estado do Processo

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

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

52

Estado do ProcessoDiagrama de Estado.

53

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

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

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

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

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

Recommended