Aula 4 processosx

414 visualizações

Publicada em

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
414
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 4 processosx

  1. 1. Processos Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa Para monitorar os processadores virtuais o sistema operacional tem uma tabela de processos que contem entradas para armazenar valores de registradores de CPU, mapas de memoria, arquivos abertos, etc.
  2. 2. Processos Processos Processos: Programa em execucao Sistema Operacional e responsavel por assegurar que processos independentes nao afetem (modos intencional, malicioso ou acidental) a correcao do comportamento dos outros processos sendo executados Transparencia no compartilhamento da mesma CPU e outros recursos de hardware
  3. 3. Processos Processos Transparência implica em custo: Criacao de espaco de enderecos completamente independente Chavear a CPU entre dois processos Salvar o contexto da CPU Troca de informacoes entre disco e memoria principal
  4. 4. Processos Em sistemas tradicionais, cada processo possui o seu próprio espaço de endereçamento e um único fluxo de execução
  5. 5. Processos No entanto, em alguns casos e desejável haver diversos fluxos de execução compartilhando um único espaço de endereçamento,ou seja, mesma regiao de memoria
  6. 6. Processos Unico fluxo de execucao ? Um servidor de arquivos deve esperar por requisicoes feitas ao disco. O fluxo de execucao que fez a requisicao e bloqueado aguardando a resposta. PERDA DE DESEMPENHO
  7. 7. Processos Solucao – Varios Fluxos de Execucao Se o servidor de arquivos e implementado usando diferentes fluxos de execucao, outras requisicoes de clientes podem ser processadas, enquanto o primeiro fluxo aguarda a resposta do disco MELHOR VAZAO (THROUGHPUT) E GANHO DE DESEMPENHO
  8. 8. Processos Threads Cada um dos fluxos de execucao de um processo e chamado de thread  Threads podem ser vistas como mini-processos  Cada thread executa sua propria porcao de codigo  Threads compartilham a CPU do mesmo modo que diferentes processos (timesharing) 
  9. 9. Processos Threads em sistemas não distribuidos  Threads que fazem parte de um mesmo processo nao sao independentes como o caso de diferentes processos  TODOS threads em um mesmo processo possuem mesma regiao de memoria, compartilhando as mesmas variaveis globais  Um determinado thread pode ler, escrever ou mudar a pilha de dados de um outro thread  Protecao deve ser feita pela 'aplicacao'
  10. 10. Processos Threads em sistemas naodistribuidos Threads podem estar em diferentes estados: executando, bloqueado, pronto ou finalizado 
  11. 11. Processos Threads em sistemas naodistribuidos Principais Vantagens: 1) Explorar paralelismo ao executar um programa em um sistema multiprocessador Ex.: Cada thread e designado a uma CPU, enquanto dados compartilhados são armazenados em memoria compartilhada 2) Grandes aplicacoes, desenvolvidas como um conjunto de programas cooperativos Evita chaveamento entre diferentes processos – devido comunicação através de Interprocess Communication (IPC)
  12. 12. Processos Implementacao de Threads em Sistemas nao-distribuidos  Implementacao no nivel usuario – Threads rodam sobre o runtime system – coleção de procedimentos que gerenciam as threads – Quando um thread executa uma chamada de sistema, 'dorme', opera um semaforo ou mutex, o runtime system verifica se o thread deve ser suspenso
  13. 13. Processos Implementação de Threads em Sistemas nãodistribuídos Nível usuário – Custo da criação custo de alocar memória para a pilha Chaveamento de contexto de thread pode ser feito em apenas algumas instruções: não há necessidade de mudar mapas de memória, descarregar o TLB (Translation Lookaside Buffer) »Ex.: Threads que precisam entrar em sincronia
  14. 14. Processos IImplementacao de Threads em Sistemas nao-distribuidos Desvantagem de threads de nivel de usuario: – Problema esta em como chamadas de sistemas bloqueantes sao implementadas Ex.: ler um pipe vazio → chamada de sistema → bloqueio – Todos os threads sao bloqueados ! 
  15. 15. Processos Implementacao de Threads em Sistemas Distribuidos Importante propriedade de threads e que eles podem proporcionar um meio conveniente de permitir chamadas bloqueantes de sistema sem bloquear o processo inteiro Threads sao particurlamente atraentes para utilizacao em sistemas distribuidos →facilitam muito expressar comunicacao na forma de manter multiplas conexoes logicas ao mesmo tempo
  16. 16. Processos Clientes Multithreads Sistemas distribuidos que operam em redes de longa distancia → escondem longos tempos de propagacao de mensagens entre processos  A maneira de ocultar latencias de comunicacao e iniciar a comunicacao e imediatamente prosseguir com outra atividade 
  17. 17. Processos Clientes Multithreads –Browsers Web Documento Web consiste em: texto, imagens, icones, etc.  A cada elemento, browser esttabelece uma conexao TCP/IP, para ler os dados e passar ao monitor do usuario  Operacoes bloqueadoras: estabelecimento da conexao, leitura de dados 
  18. 18. Processos Clientes Multithreads –Browsers Web Browsers comecam a exibir dados enquanto a medida em que novas informacoes chegam  Enquanto o texto esta sendo disponibilizado para o usuario, incluindo as facilidades de rolamento, p.ex., o browser continua buscando outros arquivos, como imagens  Vantagem: usuario nao precisa esperar ate que todos os componentes sejam buscados 
  19. 19. Processos Clientes Multithreads –Browsers Web  Browser como clientes multithread simplifica  Threads separados sao ativados para se encarregar de buscar diferentes partes de uma pagina  Caso o servidor esteja em sobrecarga, ter um cliente multithread possibilita estabelecer conexoes com diferentes servidores, permitindo transmissao dos dados em paralelo  Cliente pode manipular fluxos de dados de entrada em paralelo → Threads!
  20. 20. Processos Servidores Multithreads Servidor de arquivos normalmente espera pela entrada de uma requisição para uma operação de arquivo e, na sequência, executa a requisição e então devolve a resposta. Como aumentar o desempenho?
  21. 21. Processos Servidores Multithreads Funcionamento de servidores multithreads: – requisicoes sao enviadas por clientes para uma porta no servidor – Thread despachante le requisicoes que entram para uma operacao de arquivo – Servidor escolhe um thread operario – Se o thread escolhido estiver suspenso, outro thread e selecionado para ser executado: p.ex., o thread despachante pode ser selecionado para adquirir mais trabalho
  22. 22. Processos Servidores Multithreads Se o servidor é inteiramente CPU bound, não existe necessidade de diversos threads. Aumento de complexidade sem ganho de desempenho
  23. 23. Processos Virtualizacao Threads e processos podem ser vistos como um modo de fazer diversas tarefas ao mesmo tempo  Em computadores monoprocessador, execucao simultanea e uma ilusao → unica CPU, somente uma instrucao de um unico thread ou processo sera executada por vez  Virtualizacao de recursos: “fingir” que um determinado recurso esta replicado no sistemaServidores Multithreads 
  24. 24. Processos Virtualizacao  Estende ou substitui uma interface existente de modo a imitar o comportamento de um outro sistema
  25. 25. Processos Virtualizacao Softwares em nivel mais alto sao mais estaveis que o hardware e sistemas de software de baixo nivel → virtualizacao pode ajudar transportando as interfaces de softwares para novas plataformas. Novas plataformas sao capazes de executar softwares existentes anteriormente
  26. 26. Processos Virtualizacao Essência da virtualização é imitar o comportamento das interfaces (instruções de máquina, chamadas de sistema)
  27. 27. Processos Virtualizacao Maquina virtual de processo Aplicacoes desenvolvidas para um SO sao executadas em outro SO Virtualizacao feita somente para um unico Processo emuladores → imitar chamadas de sistema → Nao e trivial
  28. 28. Processos Virtualizacao Monitor de maquina virtual Fornece o conjunto de instrucoes completo do hardware Varios sistemas operacionais diferentes executando independente e concorrentemente na mesma plataforma Importantes no contexto de confiabilidade e seguranca → isolamento de uma aplicacao e seu ambiente → falhas nao afetam a maquina inteira Ex.: VMware

×