Aula 4 processosx

Post on 01-Nov-2014

364 views 0 download

Tags:

description

 

Transcript of 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.

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

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

Processos

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

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

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

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

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)

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'

Processos

Threads em sistemas naodistribuidos

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

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)

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

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

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 !

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

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

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

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

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!

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?

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

Processos

Servidores Multithreads

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

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

Processos

Virtualizacao

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

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

Processos

Virtualizacao

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

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

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