ger ncia de processos
play

Gerncia de processos Requisitos fundamentais Implementar um modelo - PowerPoint PPT Presentation

Gerncia de processos Requisitos fundamentais Implementar um modelo de processo. Implementar facilidades para criao e destruio de processos por usurios Alocar recursos a processos Intercalar a execuo de um nmero


  1. Gerência de processos  Requisitos fundamentais – Implementar um modelo de processo. – Implementar facilidades para criação e destruição de processos por usuários – Alocar recursos a processos – Intercalar a execução de um número de processos para maximizar a utilização do processador, mantendo um tempo de resposta razoável

  2. Gerência de processos  Processo :programa em execução  Formado por: – Instruções – Recursos (ex: memória, arquivos abertos) – Informação de controle interna ao sistema operacional  O arquivo de programa contém informações necessárias para sua execução

  3. Gerência de processos  Processo não é o mesmo que programa !  Programa é como uma receita, com instruções para se resolver um problema  Processo é como alguém seguindo a receita  Processo precisa de recursos computacionais para trabalhar: memória, arquivos, tempo de processador, ...  Programa não trabalha: fica passivamente guardado em um arquivo

  4. Gerência de processos  Exemplo de execução a partir de um arquivo de programa

  5. Gerência de processos SO pode ser monoprogramado: apenas um processo executa por vez (começo ao fim):

  6. Gerência de processos . .. ou multiprogramado (mais de um processo pode executar ao mesmo tempo):

  7. Gerência de processos Por que existe multiprogramação ?  Processos alternam entre uso do processador ou espera por E/S:

  8. Gerência de processos Por que existe multiprogramação ?  Processos podem ser classificados quanto ao uso do processador: – Processos I/O bound  Passam mais tempo em estado de espera que usando de fato o processador – Processos CPU bound  Passam a maior parte do tempo usando de fato o processador

  9. Gerência de processos Por que existe multiprogramação ? Um histograma dos tempos de execução

  10. Gerência de processos Por que existe multiprogramação ?  Um processo típico passa mais tempo em espera que processando  Pode-se aproveitar os tempos de espera para executar outros processos  Assim se aproveita melhor o tempo de processador disponível !

  11. Gerência de processos  Multiprogramação – Capacidade do sistema operacional de manter vários processos ativos ao mesmo tempo – Timesharing : ilusão de que os processos executam ao mesmo tempo

  12. Gerência de processos  Multiprogramação no Linux – Listagem dos processos que mais usam processador

  13. Gerência de processos Processos usam recursos do computador

  14. Gerência de processos Como o SO controla os processos existentes ? – SO precisa decidir que processo deve usar o processador – Somente processos aptos a executar podem usar o processador – Processo apto : q ue não está esperando por E/S

  15. Gerência de processos Modelo de cinco estados Dispatch Termina Entra Novo Apto Rodando Terminado Time-out Espera Evento por evento Ocorre Esperando

  16. Gerência de processos Diagrama de fila Libera Despacha Admissão Processor Fila de aptos Tempo excedido ( timeout ) Fila de espera Espera um evento Evento ocorre

  17. Gerência de processos Escalonamento – Determinação da ordem em que processos alocam o processador – SO usa algum critério para escolher um processo apto para rodar – SO pode também tirar o processador de um processo que estiver rodando

  18. Gerência de processos Escalonamento  Escalonamento não-preemptivo – Processo só perde o processador se terminar ou entrar em estado de espera  Escalonamento preemptivo – Sistema operacional pode retomar o processador mesmo contra a vontade do processo

  19. Gerência de processos  Critérios para um bom escalonamento – Eficiência : ocupação do processador – Justiça : todos os processos têm chance de executar em um ciclo de escalonamento – Tempo de resposta : tempo entre a ocorrência de um evento e a reativação do processo que o aguarda ( IMPORTANTE !) – Throughput : número de processos concluídos por unidade de tempo

  20. Gerência de processos Escalonamentos não-preemptivos  FIFO ( First In First Out ) ou FCFS ( First Come First Served ) – Primeiro que entra é o primeiro que sai da fila – Ex: Processos P1, P2 e P3 têm tempo de CPU de 24, 3 e 3 unidades de tempo respectivamente, e chegam nesta ordem.

  21. Gerência de processos Escalonamentos não-preemptivos  FIFO (cont.) N T = 1 N ∑ – Tempo de execução médio:  N − i  1 ⋅ T i i = 1 – Minimização desse tempo: T i < T i+1 – FIFO é muito simples, mas não atende os requisitos de bom escalonamento (por que ?)

  22. Gerência de processos Escalonamentos preemptivos  RR ( Round Robin ) – Cada processo usa a CPU por até 1 quantum de tempo por ciclo – Fila de aptos segue FIFO

  23. Gerência de processos Escalonamentos preemptivos  RR (cont.) – quantum deve ser maior ou igual ao tempo de interação médio (tempo de CPU médio)

  24. Gerência de processos Escalonamentos preemptivos  RR (cont.) – Se quantum for muito curto, aumenta-se o tempo de execução total:

  25. Gerência de processos Escalonamentos preemptivos RR (cont.)  Casos limites: – q -> 0 : Cada um dos N processos enxerga um processador com 1/N de sua capacidade  Na verdade, overhead do chaveamento de contexto domina o processamento – q -> oo : Escalonamento degenera para FIFO

  26. Gerência de processos Escalonamentos preemptivos Com prioridades – Cada processo possui uma prioridade (um número inteiro) – A fila de aptos é ordenada de acordo com as prioridades

  27. Gerência de processos Escalonamentos preemptivos  Com prioridades (cont.) – Considerado o mais genérico – Qualquer outro algoritmo pode ser implementado usando prioridades  RR e FIFO : todos processos com igual prioridade – Prioridades podemvariar com o tempo  Podem se adaptar ao comportamento dos processos

  28. Gerência de processos Escalonamentos preemptivos  Com prioridades (cont.) – Prioridades dinâmicas: o que aconteceria se o histórico de uso do processador fosse usado como prioridade ?  Ex: prioridade = tempo de uso / tempo total – Que tipo de processo seria priorizado com prioridades assim ? – Que critérios de bom escalonamento seriam respeitados com isto ? E quais não seriam ?

  29. Gerência de processos Escalonamentos preemptivos  Com prioridades (cont.) – Muitos SO usam prioridades dinâmicas, dando maior prioridade para processos I/O bound – Ex: Linux, Windows Xp/Vista, Sun Solaris, MacOS X, ... – Com isto, priorizam processos interativos – Porém, o que dizer de processos que processam streams multimedia ?  Ex: MP3 player, Video player, ...

  30. Gerência de processos Operações sobre processos (Linux)  Descrição de processos – Processos possuem um ID único (PID) – Possuem um usuário dono (UID) e um usuário efetivo (EUID), assim como grupo dono (GID) e grupo efetivo (EGID) – Prioridade base ( nice ) pode ser alterada – Toda a memória e objetos de sua posse estão protegidos de outros processos

  31. Gerência de processos Operações sobre processos (Linux)  Proceso Linux na memória

  32. Gerência de processos Operações sobre processos (Linux)  Listagem de processos com comando ps

  33. Gerência de processos Operações sobre processos (Linux)  Criação de processos: – Um novo processo é idêntico ao processo que o criou – Processo filho compartilha código executável com o processo pai – Filho possui mesmos atributos que processo pai (ex: UID, GID, prioridade,...) – Toda a memória do pai é copiada para o filho – Processo filho começa a executar do ponto exato dentro da chamada fork em que houve a duplicação

  34. Gerência de processos Operações sobre processos (Linux)  Processos no Linux foram uma hierarquia:

Recommend


More recommend