Aula 4 processosx

30
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.

TAGS:

description

 

Transcript of Aula 4 processosx

Page 1: Aula 4   processosx

Processos

Processos

Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programaPara 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.

Page 2: Aula 4   processosx

Processos

Processos

Processos: Programa em execucaoSistema Operacional e responsavel por assegurar que processos independentes nao afetem (modos intencional, malicioso ou acidental) a correcao do comportamento dos outros processos sendo executadosTransparencia no compartilhamento da mesmaCPU e outros recursos de hardware

Page 3: Aula 4   processosx

Processos

ProcessosTransparência implica em custo:

Criacao de espaco de enderecos completamente independenteChavear a CPU entre dois processosSalvar o contexto da CPUTroca de informacoes entre disco e memoria

principal

Page 4: Aula 4   processosx

Processos

Em sistemas tradicionais, cada processo possui o seu próprio espaço de endereçamento e um único fluxo de execução

Page 5: Aula 4   processosx

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

Page 6: Aula 4   processosx

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

Page 7: Aula 4   processosx

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 fluxoaguarda a resposta do disco

MELHOR VAZAO (THROUGHPUT) E GANHO DE DESEMPENHO

Page 8: Aula 4   processosx

Processos

Threads

Cada um dos fluxos de execucao de umprocesso e chamado de thread Threads podem ser vistas como mini-processos Cada thread executa sua propria porcao decodigo Threads compartilham a CPU do mesmo modoque diferentes processos (timesharing)

Page 9: Aula 4   processosx

Processos

Threads em sistemas não distribuidos Threads que fazem parte de um mesmoprocesso nao sao independentes como o casode diferentes processos TODOS threads em um mesmo processopossuem mesma regiao de memoria,compartilhando as mesmas variaveis globais Um determinado thread pode ler, escrever oumudar a pilha de dados de um outro thread Protecao deve ser feita pela 'aplicacao'

Page 10: Aula 4   processosx

Processos

Threads em sistemas naodistribuidos

Threads podem estar em diferentes estados:executando, bloqueado, pronto ou finalizado

Page 11: Aula 4   processosx

Processos

Threads em sistemas naodistribuidosPrincipais Vantagens:1) Explorar paralelismo ao executar um programa em um sistema multiprocessadorEx.: Cada thread e designado a uma CPU, enquanto dados compartilhados são armazenados em memoria compartilhada2) Grandes aplicacoes, desenvolvidas como um conjunto de programas cooperativos Evita chaveamento entre diferentes processos – devido comunicação através de Interprocess Communication (IPC)

Page 12: Aula 4   processosx

Processos

Implementacao de Threads emSistemas nao-distribuidos Implementacao no nivel usuario– Threads rodam sobre o runtime system –coleção de procedimentos que gerenciamas threads– Quando um thread executa uma chamadade sistema, 'dorme', opera um semaforo oumutex, o runtime system verifica se othread deve ser suspenso

Page 13: Aula 4   processosx

Processos

Implementação de Threads em Sistemas não-distribuídos

Nível usuário– Custo da criação custo de alocar memória para a pilhaChaveamento 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 (TranslationLookaside Buffer) »Ex.: Threads que precisam entrar em sincronia

Page 14: Aula 4   processosx

Processos

IImplementacao de Threads emSistemas nao-distribuidos

Desvantagem de threads de nivel de usuario:– Problema esta em como chamadas desistemas bloqueantes sao implementadasEx.: ler um pipe vazio → chamada de sistema →bloqueio– Todos os threads sao bloqueados !

Page 15: Aula 4   processosx

Processos

Implementacao de Threads em Sistemas Distribuidos

Importante propriedade de threads e que eles podem proporcionar um meio conveniente de permitir chamadasbloqueantes 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

Page 16: Aula 4   processosx

Processos

Clientes Multithreads

Sistemas distribuidos que operam em redes delonga distancia → escondem longos tempos depropagacao de mensagens entre processos A maneira de ocultar latencias de comunicacao einiciar a comunicacao e imediatamenteprosseguir com outra atividade

Page 17: Aula 4   processosx

Processos

Clientes Multithreads –Browsers Web

Documento Web consiste em: texto, imagens,icones, etc. A cada elemento, browser esttabelece umaconexao TCP/IP, para ler os dados e passar aomonitor do usuario Operacoes bloqueadoras: estabelecimento daconexao, leitura de dados

Page 18: Aula 4   processosx

Processos

Clientes Multithreads –Browsers Web

Browsers comecam a exibir dados enquanto amedida em que novas informacoes chegam Enquanto o texto esta sendo disponibilizado parao usuario, incluindo as facilidades de rolamento,p.ex., o browser continua buscando outrosarquivos, como imagens Vantagem: usuario nao precisa esperar ate quetodos os componentes sejam buscados

Page 19: Aula 4   processosx

Processos

Clientes Multithreads –Browsers Web

Browser como clientes multithread simplifica Threads separados sao ativados para se

encarregar de buscar diferentes partes de umapagina

Caso o servidor esteja em sobrecarga, ter umcliente multithread possibilita estabelecerconexoes com diferentes servidores, permitindotransmissao dos dados em paralelo

Cliente pode manipular fluxos de dados deentrada em paralelo → Threads!

Page 20: Aula 4   processosx

Processos

Servidores Multithreads

Servidor de arquivos normalmente espera pelaentrada de uma requisição para uma operação dearquivo e, na sequência, executa a requisição eentão devolve a resposta. Como aumentar odesempenho?

Page 21: Aula 4   processosx

Processos

Servidores Multithreads

Funcionamento de servidores multithreads:– requisicoes sao enviadas por clientes para umaporta no servidor– Thread despachante le requisicoes que entrampara uma operacao de arquivo– Servidor escolhe um thread operario– Se o thread escolhido estiver suspenso, outrothread e selecionado para ser executado: p.ex.,o thread despachante pode ser selecionadopara adquirir mais trabalho

Page 22: Aula 4   processosx

Processos

Servidores Multithreads

Se o servidor é inteiramente CPU bound, nãoexiste necessidade de diversos threads.Aumento de complexidade sem ganho dedesempenho

Page 23: Aula 4   processosx

Processos

Virtualizacao

Threads e processos podem ser vistos como ummodo de fazer diversas tarefas ao mesmo tempo

Em computadores monoprocessador, execucaosimultanea e uma ilusao → unica CPU, somenteuma instrucao de um unico thread ou processosera executada por vez

Virtualizacao de recursos: “fingir” que umdeterminado recurso esta replicado no sistemaServidores Multithreads

Page 24: Aula 4   processosx

Processos

Virtualizacao

Estende ou substitui uma interface existente demodo a imitar o comportamento de um outrosistema

Page 25: Aula 4   processosx

Processos

Virtualizacao

Softwares em nivel mais alto sao mais estaveisque o hardware e sistemas de software de baixonivel → virtualizacao pode ajudar transportandoas interfaces de softwares para novas plataformas.Novas plataformas sao capazes de executarsoftwares existentes anteriormente

Page 26: Aula 4   processosx

Processos

Virtualizacao

Essência da virtualização éimitar o comportamento dasinterfaces (instruções demáquina, chamadas de sistema)

Page 27: Aula 4   processosx

Processos

Virtualizacao

Maquina virtual de processoAplicacoes desenvolvidas para um SO saoexecutadas em outro SOVirtualizacao feita somente para um unicoProcesso

emuladores → imitar chamadas de sistema →Nao e trivial

Page 28: Aula 4   processosx

Processos

Virtualizacao

Monitor de maquina virtualFornece o conjunto de instrucoes completodo hardwareVarios sistemas operacionais diferentesexecutando independente e concorrentemente namesma plataformaImportantes no contexto de confiabilidade eseguranca → isolamento de uma aplicacao e seuambiente → falhas nao afetam a maquina inteiraEx.: VMware

Page 29: Aula 4   processosx
Page 30: Aula 4   processosx