Você está na página 1de 30

Processos

Processos Sistemas operacionais modernos criam vrios 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.

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

Processos
Processos
Transparncia 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

Processos
Em sistemas tradicionais, cada processo possui o seu prprio espao de endereamento e um nico fluxo de execuo

Processos
No entanto, em alguns casos e desejvel haver diversos fluxos de execuo compartilhando um nico espao de endereamento,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 fluxo aguarda a resposta do disco MELHOR VAZAO (THROUGHPUT) E GANHO DE DESEMPENHO

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)

Processos
Threads em sistemas no 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'

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

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 so armazenados em memoria compartilhada 2) Grandes aplicacoes, desenvolvidas como um conjunto de programas cooperativos Evita chaveamento entre diferentes processos devido comunicao atravs de Interprocess Communication (IPC)

Processos
Implementacao de Threads em Sistemas nao-distribuidos Implementacao no nivel usuario Threads rodam sobre o runtime system coleo 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

Processos
Implementao de Threads em Sistemas nodistribudos Nvel usurio Custo da criao custo de alocar memria para a pilha Chaveamento de contexto de thread pode ser feito em apenas algumas instrues: no h necessidade de mudar mapas de memria, descarregar o TLB (Translation Lookaside Buffer) Ex.: Threads que precisam entrar em sincronia

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 !

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

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

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

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

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!

Processos
Servidores Multithreads Servidor de arquivos normalmente espera pela entrada de uma requisio para uma operao de arquivo e, na sequncia, executa a requisio e ento devolve a resposta. Como aumentar o desempenho?

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

Processos
Servidores Multithreads Se o servidor inteiramente CPU bound, no existe necessidade de diversos threads. Aumento de complexidade sem ganho de desempenho

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

Processos
Virtualizacao Estende ou substitui uma interface existente de modo a imitar o comportamento de um outro sistema

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

Processos
Virtualizacao Essncia da virtualizao imitar o comportamento das interfaces (instrues de mquina, chamadas de sistema)

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

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