2. conceito de processos

559 visualizações

Publicada em

Sistemas Operacionais

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
559
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
23
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

2. conceito de processos

  1. 1. Conceito de Processos
  2. 2. O que esperar do SO? Alternar a execução de processos de forma a maximizar a utilizaçã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
  3. 3. 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 nem todas têm relação direta com algum aplicativo; Muitas delas são executadas em plano de fundo e mantêm o sistema trabalhando - gerenciando redes, memória, disco, checagem antivírus, etc. 3
  4. 4. Introdução Nos sistemas multiprogramáveis, os processos são executados concorrentemente, compartilhando, entre outros recursos, a utilização do processador, da memória principal e dos dispositivos de E/S. Além disso, em sistemas com múltiplos processadores, não só existe a concorrência de processos pelo uso do processador, como também a execução simultânea de processos nos diferentes processadores; 4
  5. 5. Introdução Ao executar um programa, o usuário tem a impressão de possuir o processador e os demais recursos de hardware de forma exclusiva. Na verdade, todos esses recursos estão sendo compartilhados; Nesse caso, o sistema operacional faz com que um processo de usuário seja executado durante certo intervalo de tempo e, após esse intervalo, o processo é interrompido para que outro possa ser executado. 5
  6. 6. 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 processo voltar a executar; Todas as informações relevantes e necessárias à execução de um programa fazem parte do processo. Essas informações são chamadas de contexto do processo; Além disso, é necessário haver áreas de memória (para armazenamento de instruções e dados) alocadas para o processo, chamado de espaço de endereçamento. 6
  7. 7. 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
  8. 8. Contexto do Processo 8
  9. 9. Contexto de Hardware O contexto de hardware armazena o conteúdo dos registradores gerais da CPU, além dos registradores de uso específico, como contador de programas (PC), stack pointer (SP) e registrador de status; Quando um processo está em execução, o conteúdo de alguns registradores é alterado a cada nova instrução executada. No momento em que o processo perde a utilização da CPU, o sistema salva as informações no contexto de hardware do processo; A troca de um processo por outro no processador, comandada pelo sistema operacional, é denominada chaveamento (mudança ) de contexto. 9
  10. 10. Contador de Programas Contém o endereço da memória cujo conteúdo deve ser interpretado como a próxima instrução; É um registrador de uma Unidade Central de Processamento que indica qual é a posição atual na sequência de execução de um computador. 10
  11. 11. Stack Pointer (Ponteiro da Pilha) Um registrador que contém o endereço atual do elemento superior da pilha. Uma Stack Pointer (ou Ponteiro da Pilha, Pilha de Execução) é uma pilha que armazena informações sobre as sub-rotinas ativas num programa de computador. Seu principal uso é registrar o ponto em que cada sub-rotina ativa deve retornar o controle de execução quando termina de executar. 11
  12. 12. Registrador de Status Armazena informações sobre o status da execução das instruções para possíveis detecções de problemas; Indica o modo de acesso corrente; Por intermédio desse registrador, o hardware verifica se a instrução pode ou não ser executada. 12
  13. 13. 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 que chamamos registros. Conforme o tipo do processador, o número global de registros pode variar entre uma dezena e várias centenas. Os principais registros são: o registrador de dados ou acumulador (ACC), armazenando os resultados das operações aritméticas e lógicas; o registrador de status (PSW, Processador Status Word), armazenando os indicadores 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 da próxima instrução a ser processada; o registro reserva, que armazena, temporariamente, um dado vindo da memória. 13
  14. 14. Contexto de Hardware 14
  15. 15. Contexto de Software Armazena as informações sobre características e limites dos recursos que podem ser alocados pelo processo, como número máximo de arquivos abertos simultaneamente e a prioridade de execução e tamanho do buffer para operação de E/S; É composto por três grupos de informações sobre o processo: identificação, quotas e privilégios. 15
  16. 16. Buffer (retentor) Uma região de memória física utilizada para armazenar temporariamente os dados enquanto eles estão sendo movidos de um lugar para outro; Contudo, um buffer pode ser utilizado quando movem-se dados entre processos dentro de um computador; Normalmente são utilizados quando existe uma diferença entre a taxa em que os dados são recebidos e a taxa em que eles podem ser processados, ou no caso em que essas taxas são variáveis. 16
  17. 17. 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 e outros processos podem fazer referência a qualquer processo existente, consultando seu contexto ou alterando uma 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 ou do processo que criou (owner). Cada usuário possui uma identificação única no sistema (UID – User identification), atribuída ao processo no momento de sua criação. 17
  18. 18. Owner (UID) Identificação do usuário que o criou. 18
  19. 19. 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 entra na fila para receber o tempo do processador; Se um processo tem prioridade alta, o Windows irá fazer com que ele seja executado mais vezes em um determinado intervalo de tempo. Quando a prioridade do processo é muito baixa, ele é executado menos vezes. 19
  20. 20. Prioridade de Execução 20
  21. 21. Data/Hora de Criação Grava Data e hora da criação do processo. 21
  22. 22. 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 tempo durante a qual ela está sendo ocupada; throughput que são números de processos terminados por unidade de tempo; turnaround que é o tempo transcorrido desde o momento em que o software entra e o instante em que termina sua execução; tempo de resposta: intervalo entre a chegada ao sistema e inicio de sua execução; tempo de espera: soma dos períodos em que o programa estava no seu estado pronto; Responsáveis por essa tarefa são algoritmos que são entendidos mais facilmente, estudados separadamente, mas na prática os sistemas operacionais utilizam combinações deles para melhor escalonar os processos. 22
  23. 23. 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
  24. 24. Privilégios Definem as ações que um processo pode fazer em relação a ele mesmo, aos demais processos e ao sistema operacional; Privilégios que afetam o próprio processo permitem que suas características possam ser alteradas, como prioridade de execução, limites alocados na memória principal e secundária, etc; Já os privilégios que afetam os demais processos permitem, além da alteração de suas próprias características, a alteração de outros processos. 24
  25. 25. Privilégios Privilégios que afetam o sistema são os mais amplos e poderosos, pois estão relacionados à operação e gerência do ambiente, como a desativação do sistema, alteração de regras de segurança, criação de outros processos privilegiados, modificação de parâmetros de configuração do sistema, entre outros; A maioria dos sistemas operacionais possui uma conta de acesso com todos esses privilégios disponíveis, com o proposito de o administrador gerenciar o sistema operacional. 25
  26. 26. Espaço de endereçamento O espaço de endereçamento é a área de memória pertencente ao processo onde às instruções e os dados do programa são armazenados para execução; Cada processo possui seu próprio espaço de endereçamento, que deve ser devidamente protegido do acesso dos demais processos. 26
  27. 27. Espaço de endereçamento 27
  28. 28. 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 um parâmetro do sistema operacional que permite especificar o número máximo de processos possíveis de serem suportados simultaneamente pelo sistema; Toda gerência dos processos é realizada por meio de chamadas de sistema, que realizam operações como criação, alteração de características, visualização, eliminação, sincronização e suspensão de processos, entre outros. 28
  29. 29. Bloco de controle de processo Cada processo é representado no Sistema operacional por um bloco 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 as informações sobre o contexto de hardware, o contexto de software e o espaço de endereçamento de cada processo; Contém muitas informações associadas a um processo específico, incluindo; 29
  30. 30. 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ço da próxima instrução a ser executada para esse processo; Registradores de CPU: Juntamente com o contador do programa , essas informações de estado devem ser salvas quando ocorre uma interrupção, para permitir que o processo continue corretamente depois disso; 30
  31. 31. Bloco de controle de processo Informações de escalonamento de CPU: Essas informações incluem prioridade de processo, ponteiros para filas de escalonamento e outros parâmetros; Informações de gerência de memória: Essas informações podem incluir dados como o valor dos registradores de base(menor endereço válido de memória fisica ) e limite(tamanho da area indereçavel) , as tabelas de páginas ou as tabelas de segmentos, dependendo do Sistema de memória usado pelo Sistema operacional; 31
  32. 32. 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 a lista de dispositivos de I/O alocados para este processo; O bloco de controle de processo serve simplesmente como repositório de informações que podem variar de processo a processo. 32
  33. 33. Bloco de controle de processo 33
  34. 34. Estado do Processo Em sistemas multiprogramáveis, é comum haver vários processos compartilhando a utilização do processador. Para evitar que algum processo monopolize o processador, o sistema operacional determina quando cada processo tem direito a executar; Assim, quando um processo executa, os demais aguardam em uma fila pela sua vez. Se um processo estiver executando e solicitar uma operação de E/S, ele deverá liberar o processador e aguardar até que a operação seja concluída. Só então ele estará apto novamente a disputar a utilização do processador com os outros processos. 34
  35. 35. Estado do Processo Para saber em que situação se encontra cada processo, o sistema operacional implementa o conceito de estados do processo. Ao longo do seu processamento, os processos passam por diferentes estados, em função de eventos gerados pelo próprio processo ou pelo sistema operacional. 35
  36. 36. 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
  37. 37. 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 em um dado momento. O sistema operacional alterna (escalona) a utilização do processador entre os processos, segundo alguma política estabelecida por ele; Em sistemas com múltiplos processadores, existe a possibilidade de mais de um processo estar sendo executado ao mesmo tempo. Nesse tipo de sistema, também é possível um mesmo processo ser executado simultaneamente, em mais de uma CPU ( processamento paralelo). 37
  38. 38. 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 de pronto, organizados em uma fila. Por meio dessa fila, chamada de fila de aptos ou fila de prontos, o sistema operacional determina a ordem e os critérios pelos quais os processos em estado de pronto devem utilizar o processador. Esse mecanismo é conhecido como escalonamento. 38
  39. 39. Bloqueado ou espera (wait) Um processo no estado bloqueado ou espera guarda por algum evento externo ou por algum recurso para prosseguir seu processamento; Como exemplo. Podemos citar um processo que aguarda o término de uma operação de E/S ou espera de uma determinada data e/ou hora para continuar sua execução. 39
  40. 40. Estado de criação e destruição de um processo Para um processado entrar na fila de aptos e aguardar sua vez de executar, é necessário que seja criado pelo (loader) do sistema operacional; Primeiro o sistema operacional deve alocar na memória principal as áreas de código, dados e pilha. Em seguida, o programa deve ser transferido da memória secundária para a memória principal nas áreas alocadas. Por último, o PCB é criado e inicializado apropriadamente, com as informações do processo; A partir desse momento, o sistema operacional já reconhece a existência do processo. 40
  41. 41. Estado de criação e destruição de um processo Após criar o processo, o sistema operacional normalmente o coloca na fila de aptos para que ele concorra à utilização do processador. No entanto, algumas vezes, podem falar recursos ( por exemplo: número máximo de processos ativos alcançados); nesse caso, o sistema operacional manterá o processo no estado de criação, até que haja recursos para ele se tornar ativo. 41
  42. 42. Estado de criação e destruição de um processo 42
  43. 43. Estado de criação e destruição de um processo Quando um processo é finalizado, todos os recursos do processo devem ser 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
  44. 44. 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) ou pelo sistema operacional ( eventos involuntários). Basicamente, existem quatro mudanças de estado que podem ocorrer a um processo. 44
  45. 45. Transições de estado do processo 45
  46. 46. Apto Executando A transferência de um processo do estado apto para o estado de execução indica que o outro processo saiu do estado de execução ( perdeu processador); Um processo perde o processador quando sua fatia de tempo ( time slice) termina, quando faz uma chamada de sistema ou quando chega ao fim de sua execução ( normal ou forçada); Isso faz com que o sistema operacional selecione um processo no estado apto para ser executado. 46
  47. 47. Execução Apto Um processo em execução passa para o estado de apto por eventos gerados pelo sistema, como término da sua fatia de tempo (time slice) ou para ceder a vez a um processo de maior prioridade; Nesse caso, o processo volta para a fila de aptos, onde aguarda por uma nova oportunidade para continuar seu processamento. 47
  48. 48. Execução Bloqueado Um processo em execução pode passar para o estado de bloqueado, por eventos gerados pelo próprio processo. Por exemplo, quando um processo em execução necessita realizar uma operação de E/S; Além disso, um processo em execução também pode passar para o estado de bloqueado em função de eventos externos. Um evento externo é gerado, por exemplo, quando o sistema operacional suspende, por um período de tempo, a execução de um processo. 48
  49. 49. Bloqueado Apto Um processo no estado bloqueado passa para o estado de apto quando a operação solicitada é atendida ou o recurso esperado é concedido; Em geral, um processo no estado bloqueado sempre terá de passar pelo estado de apto antes de passar poder ser novamente selecionado para execução. Normalmente não existe a mudança do estado bloqueado para o estado de execução diretamente. Em casos raros, um processo poderá fazer isso, caso a chamada de sistema seja extremamente rápida como a leitura da hora do sistema. 49
  50. 50. Transição de estado com swapping Um processo no estado apto ou bloqueado pode não se encontrar residente na memória principal; Essa condição ocorre quando não existe espaço suficiente para todos os processo na memória principal e parte do contexto do processo é levada para a memória secundária; Uma técnica conhecida como swapping retira o processo da memória principal e o traz de volta, seguindo os critérios de cada sistema operacional. Nesse caso, os processos em estado bloqueado e apto podem estar residentes ou não-residentes na memória principal. 50
  51. 51. Transição de estado com swapping 51
  52. 52. Estado do Processo À medida que o processo executa, ele muda de estado; O estado de um processo é definido em partes pela atividade atual desse processo. 52
  53. 53. Estado do Processo Diagrama de Estado. 53
  54. 54. Estado do Processo Cada 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 ou recepção de um sinal). Pronto: o processo está esperando para ser atribuído a um processador. Encerrado: o processo terminou a execução. 54
  55. 55. Processos: CPU-Bound É um processo que utiliza muita CPU. O seu tempo de execução é definido principalmente pelo tempo dos ciclos(clocks) do processador. Esse tipo de processo realiza poucas operações de leitura e gravação e é encontrado em aplicações cientificas e de muito cálculo. Por exemplo um processo que executa um programa de inversão de matriz é cpu-bound. Após ler alguns poucos dados, ele precisa apenas de processador. 55
  56. 56. 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 de execução é definido principalmente por estas operações. Por exemplo, um processo que executa um programa de cópia de arquivo é i/o-bound. Ele praticamente não utiliza processador, apenas acessa disco. Este tipo de processo é encontrado principalmente em aplicações comerciais, que se baseiam em leitura, processamento e gravação.Os processos interativos também são bons exemplos de processos I/O-bound, pela forma de comunicação entre o usuário e o sistema, normalmente lenta, devido à utilização de terminais. 56
  57. 57. 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, o processador será o gargalo do sistema. Se todos forem i/o-bound, o processador ficará parado enquanto todos os processos tentam acessar os periféricos; Quando um ou mais processos estão prontos para serem executados, o sistema operacional deverá decidir qual deles que irá ser executado primeiro. Para saber essa prioridade, existe uma parte do sistema operacional responsável chamada de escalonador. O algoritmo usado para isso é chamado de algoritmo de escalonamento. 57
  58. 58. 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

×