Gerência de Processos: Processos

2,435 views
2,225 views

Published on

Definir formalmente o conceito de processo

Descrever as várias funcionalidades relacionadas à manipulação de processos pelo sistema operacional, incluindo escalonamento, criação, terminação e comunicação

Apresentar as principais formas de comunicação utilizadas por sistemas cliente-servidor

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,435
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
205
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Está solução só consegue utilizar BUFFER_SIZE -1 posições do buffer e não trata problemas de sincronização
  • Gerência de Processos: Processos

    1. 1. Gerências de Processos: ProcessosSistemas Operacionais IProf. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da ParaíbaEstes slides são baseados no material que acompanha o livro OperatingSystems Concepts de Silberschatz, Galvin and Gagne
    2. 2. Objetivos Definir formalmente o conceito de processo Descrever as várias funcionalidades relacionadasà manipulaç ão de processos pelo sistemaoperacional, incluindo escalonamento, criaç ão,terminaç ão e comunicaç ão Apresentar as principais formas de comunicaç ãoutilizadas por sistemas cliente-servidor
    3. 3. O conceito de processo Um sistema operacional executa uma variedade de programas: Sistemas Batch: jobs Sistemas de compartilhamento de tempo: programas dousuário Usaremos os termos job e processo como sinô nimos Processo: um programa em execução Sua execução avança de forma sequencial Um processo inclui: Contador de programa Pilha Seção de dados
    4. 4. Um processo na memória
    5. 5. Estados de um processo Durante sua execuç ão um processo muda deestado inúmeras vezes novo: O processo estásendo criado executando: Instruç ões do processo estãosendo executadas esperando: O processo aguarda que algumevento ocorra pronto: O processo aguarda ser escalonadopara um processador finalizado: A execuç ão do processo foiconcluída
    6. 6. Diagrama de transição entre os estados deum processo
    7. 7. Bloco de Controle de Processo (PCB) Informaç ões associadas a cada processo Estado do processo Contador de programa Registradores da CPU Informaç ões para escalonamento da CPU Informaç ões para gerência de memó ria Informaç ão para contabilidade Estados das operaç ões de E/S
    8. 8. Alternando a CPU entre dois processos
    9. 9. Filas de escalonamento de processos Fila de jobs: conjunto de todos os processos dosistema Fila de prontos: fila com todos os processosaguardando apenas pelo escalonamento da CPU Filas de dispositivo: conjunto de processosesperando por um dispositivo de E/S Os processo migram entre as diferentes filas
    10. 10. Representação do escalonamento deprocessos
    11. 11. Escalonadores Escalonador de longo prazo (ouescalonador de jobs): seleciona qual processodeve ser trazido para a fila de prontos Escalonador de curto prazo (ouescalonador de CPU): seleciona qualprocesso deve ser executado e aloca a CPU
    12. 12. Escalonador de médio prazo
    13. 13. Escalonadores O escalonador de curto prazo é invocado muitofrequentemente (milissegundos) ⇒ precisa ser rápido O escalonador de longo prazo é invocado ocasionalmente(segundos, minutos) ⇒ pode ser lento O escalonador de longo prazo controle o grau demultiprogramação Processos podem ser descritos como: Processos limitados por E/S: passam mais temporealizando operaç ões de E/S do que computaç ão – várias rajadascurtas de CPU Processos limitados por CPU: passam mais tempo fazendocomputaç ão – poucas rajadas muito longas de CPU
    14. 14. Criação de processos Um processo Pai cria processos filho, que, por sua vez,podem criar outros processos, formando uma árvore deprocessos Geralmente, processos são gerenciados através de umidentificador de processo (pid) Compartilhamento de recursos Processos pai e filho compartilham tudo O processo filho tem acesso a uma parte dos recursos do pai Pai e filho não compartilham nada Execução Pai e filho executam concorrentemente Pai aguarda até a conclusão da execuç ão do filho
    15. 15. Criação de processos Espaç o de endereç amento O filho duplica o espaç o do pai O filho tem um outro programa carregado em seuespaç o de endereç amento Exemplos no UNIX a chamada de sistema fork cria um novo processo a chamada de sistema exec é utilizada apó s o forkpara substituir o espaç o de memó ria do processocom um novo programa
    16. 16. Programa em C criando um novoprocesso
    17. 17. Encerramento de processos Um processo executa a sua última instruç ão e solicitaao sistema operacional que o remova (exit) Envio de dados da saída de um processo filho para o pai(via wait) Os recursos utilizados pelo processo são desalocados O pai pode finalizar a execuç ão de um processo filho(abort) O filho excedeu o limite de recursos alocados A tarefa atribuída ao filho não é mais necessária O pai estásendo encerrado Alguns SOs não permitem processos ó rfãos Todos os filhos são finalizados: terminaç ão em cascata
    18. 18. Processos cooperativos Processos independentes não podem afetar ouserem afetados pela execuç ão de outros processos Processos cooperativos podem afetar e seremafetados pela execuç ão de outros processos Vantagens da utilizaç ão de processos cooperativos Compartilhamento de informação Velocidade de computação Modularidade Conveniência
    19. 19. O problema do Produtor/Consumidor Um paradigma para processos cooperativos Processos produtores produzem informaç ão queé consumida por processos consumidores Buffer-ilimitado não impõem nenhum limite práticoao tamanho do buffer Buffer-limitado assume que háum tamanho fixopara o buffer
    20. 20. Buffer limitado: solução com memóriacompartilhada
    21. 21. Processo Produtor
    22. 22. Processo Consumidor
    23. 23. Comunicação entre processos Processos cooperativos precisam de mecanismos paracomunicaç ão entre processos (IPC) Dois modelos: Troca de mensagens x Memó ria compartilhada
    24. 24. Troca de Mensagens Processos se comunicam sem fazer uso de variáveiscompartilhadas O sistema de IPC oferece duas operações: send(message) receive(message) Se P e Q desejam se comunicar, eles precisam: estabelecer um canal de comunicaç ão entre si trocar mensagens utilizando send/receive Os canais de comunicação podem ser: físicos (ex., região de memó ria compartilhada, barramento dehardware) ló gicos
    25. 25. Questões de implementação Como os canais são estabelecidos? Um canal pode ser associado a mais de doisprocessos? Quantos canais de comunicaç ão podem serestabelecidos entre todos os pares deprocessos em comunicaç ão? Qual é a capacidade de um canal? O tamanho da mensagem é fixo ou variável? O canal é unidirecional ou bi-direcional?
    26. 26. Comunicação Direta Os processos precisam ser identificadosexplicitamente send (P, message) receive(Q, message) Propriedades do canal de comunicaç ão Estabelecimento automático Um único canal exclusivo para cada par de processos O canal pode ser unidirecional mas geralmente ébidirecional
    27. 27. Comunicação Indireta As mensagens são enviadas e recebidas de caixas demensagens Cada caixa de mensagem tem um identificador único Processos só podem se comunicar se compartilharemuma mailbox Propriedades do canal de comunicaç ão Canal estabelecido se os processos compartilham umamailbox Um canal pode ser associado com vários processos Cada par de processo pode compartilhar diversos canaisde comunicação Canais podem ser unidirecionais ou bidirecionais
    28. 28. Comunicação Indireta Operaç ões criar uma nova mailbox enviar e receber mensagens através de umamailbox destruir uma mailbox Primitivas definidas como send(A, message) receive(A, message)
    29. 29. Comunicação Indireta Compartilhamento de mailbox P1, P2, e P3 compartilham a mailbox A P1, envia; P2 e P3 executam o receive ao mesmo tempo. Quem ficou com a mensagem? Soluç ões Permitir que um link só possa ser associado a no máximodois processos Permitir que apenas um processo execute o receive emum dado instante Permitir que o sistema escolha arbitrariamente o receptore notificar o emissor da escolha.
    30. 30. Sincronização Troca de mensagens pode ser tanto bloqueante quanto não-bloqueante Bloqueante é considerada síncrona send bloqueante faz o emissor esperar até que amensagem seja recebida receive bloqueante faz o receptor esperar até que umamensagem esteja disponível Não-bloqueante é considerada asíncrona send não-bloqueante faz o emissor enviar a mensagem econtinuar sua execuç ão receive não-bloqueante faz o receptor receber umamensagem válida ou null
    31. 31. Buffering Fila de mensagens associada ao canal Três opç ões de implementaç ão Capacidade nula: emissor precisar aguardar peloreceptor (rendezvous) Capacidade limitada: emissor precisar aguardarse o canal estiver cheio Capacidade ilimitada: emissor nunca aguarda
    32. 32. Comunicação em sistemas cliente-servidor Sockets Chamada remota de procedimentos (RPC) Chamada remota de métodos (RMI - Java)
    33. 33. Sockets Um socket é definido como um ponto finalpara comunicaç ão Concatenaç ão de endereç o IP e porta O socket 161.25.19.8:1625 se refere aporta 1625 na máquina 161.25.19.8 A comunicaç ão se dápor meio de pares desockets
    34. 34. Comunicação via sockets
    35. 35. Chamada remota de procedimentos Abstrai o conceito de chamada deprocedimentos entre processos em umsistema conectado via rede Stubs: proxies no lado cliente para oprocedimento real no servidor O stub no lado cliente localiza o servidor eempacota os parâmetros do procedimento O stub no lado servidor desempacota osparâmetros e invoca a chamada localmente
    36. 36. Invocação remota de métodos (RMI) RMI é a soluç ão Java para RPC Permite que um programa Java em uma JVMinvoque um método em um objeto criado em umaoutra JVM

    ×