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