Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto Educacional Santo Agostinho – IESA Faculdade de Ciências Exatas e Tecnológicas Santo Agostinho – FACET Siste m as d e In fo rm ação - FA SA Mar / 2016 Rafael Antonio Gonçalves Lima Sistemas Operacionais 2 – Processos e Threads (continuação) Sumário 2.1. Programas, processos e threads; 2.2. Estados de um processo.Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Ambiente Monothread • Um programa é uma sequencia de instruções, composta por desvios, repetições e chamadas a procedimentos e funções. • Em um ambiente monothread, um processo suporta apenas um programa no seu espaço de endereçamento. • Neste ambiente, aplicações concorrentes são implementadas apenas com o uso de múltiplos processos independentes ou subprocessos. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Ambiente Monothread • A utilização de processos independentes e subprocessos permite dividir uma aplicação em partes que podem trabalhar de forma concorrente. • No entanto, demanda consumo de diversos recursos do sistema. Sempre que um novo processo é criado, o sistema deve alocar recursos para cada processo, consumindo tempo de processador neste trabalho. • A comunicação entre processos também é mais difícil e lenta, pois utiliza mecanismos como pipes, sinais, semáforos, memória compartilhada ou troca de mensagens. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Ambiente Monothread • 3 processos monothread • Cada um com seu próprio contexto de hardware, contexto de software e espaço de endereçamento. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Processo Multithread • O processo, neste ambiente, tem pelo menos um thread de execução, mas pode compartilhar o seu espaço de endereçamento com inúmeros outros threads. • Um thread pode ser definido como uma sub-rotina de um programa que pode ser executada de forma assíncrona, ou seja, executada paralelamente ao programa chamador. • Assim, um ambiente multithread possibilita a execução concorrente de sub-rotinas dentro de um mesmo processo. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Processo Multithread Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Aplicação Multithread Multithread • Inicialmente, o processo é criado apenas com o Thread_1 para a execução do programa principal. • Quando o programa principal chama as sub-rotinas Sub_1 e Sub_2 são criados os Thread_2 e Thread_3, respectivamente, e executado independentemente do programa principal. • A grande vantagem no uso de threads é a possibilidade de minimizar a alocação de reursos do sistema, além de diminuir o overhead na criação, troca e eliminação de processo. • Veja a figura a seguir. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Aplicação Multihread Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Aplicação Multithread • Threads compartilham o processador da mesma maneira que os processos e passam pelas mesmas mudanças de estado. • Dentro de um mesmo processo, threads compartilham o mesmo contexto de software e espaço de endereçamento com os demais threads, porém cada thread possui seu próprio contexto de hardware individual. • Threads são implementados internamente através de uma estrutura de dados denominada bloco de controle de thread (Thread Control Block – TCB). O TCB armazena, além do contexto de hardware, mais algumas informações exclusivas ao thread, como prioridade e estado de execução. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Aplicação Multithread Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Aplicação Multithread Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Usuário (TMU) • TMU são implementados pela aplicação e não pelo sistema operacional. Para isso, deve existir uma biblioteca de rotinas que possibilite à aplicação realizar tarefas como criação/eliminação de threads, troca de mensagens entre threads e uma política de escalonamento. • Vantagem deste modelo é a possibilidade de implementar aplicações multithreads mesmo em sistemas operacionais que não suportam threads, no entanto possuem a limitação pois o S.O. gerencia cada processo como se existisse apenas um único thread. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Usuário (TMU) Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Kernel (TMK) • TMK são implementados diretamente pelo núcleo do S.O., através de chamadas a rotinas do sistema que oferecem todas as funções de gerenciamento e sincronização. • O S.O. sabe da existência de cada thread e pode escaloná-los individualmente. • No caso de múltiplos processadores, os threads de um mesmo processo podem ser executados simultaneamente. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Kernel (TMK) Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Kernel (TMK) • O grande problema para pacotes em modo kernel é o baixo desempenho devido a mudança dos modos de acesso (usuário- kernel-usuário). • Veja a tabela abaixo de comparação de desempenho de duas operações distintas envolvendo a criação, escalonamento, execução e eliminação de um processo/thread. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Híbrido • Combina as vantagens de threads implementados em TMU e TMK. • O programador desenvolve a aplicação em termos de TMU e especifica quantos TMK estão associados aos processo. Os TMU são mapeados em TMK enquanto o processo está sendo executado. O programador pode utilizar apenas TMK, TMU ou uma combinação de ambos. • O modo híbrido, apesar da maior flexibilidade, apresenta problemas herdados de ambas as implementações. Por exemplo, quando um TMK realiza uma chamada bloqueante, todos os TMU são colocados no estado de espera. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Threads em Modo Híbrido Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Scheduler Activations • Os problemas apresentados no pacote de threads em modo híbrido existem devido à falta de comunicação entre os threads em modo usuário e em modo kernel. • O modelo ideal deveria utilizar as facilidades do pacote em modo kernel como o desempenho e flexibilidade do modo usuário. Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Scheduler Activations • Introduzido no início de 1990, este pacote combina o melhor das duas arquiteturas. • O núcleo do sistema troca informações com a biblioteca de threads utilizando uma estrutura de dados chamada scheduler activations. • A maneira de alcançar um melhor desempenho é evitar as mudanças de modos de acesso desnecessárias. Caso um thread utilize uma chamada ao sistema que o coloque no estado de espera, não é necessário que o kernel seja ativado, bastando que a própria biblioteca em modo usuário escalone outro thread.Siste m as d e In fo rm ação - FA SA 2.1. Programas, processos e threads. Scheduler Activations Siste m as d e In fo rm ação - FA SA Exercícios de Fixação 1. Como uma aplicação pode implementar concorrência em um ambiente monothread? 2. Quais os problemas de aplicações concorrentes desenvolvidas em ambientes monothread? 3. O que é um ambiente multithread e quais as vantagens de sua utilização? 4. Qual a vantagem do scheduler activations comparado ao pacote hibrido? 5. Dê exemplos do uso de threads no desenvolvimento de aplicativos como editores de textos e planilhas eletrônicas. 6. Como o uso de threads pode melhorar o desempenho de aplicações paralelas em ambientes com múltiplos processadores? 7. Quais os benefícios do uso de threads em ambientes cliente-servidor? Siste m as d e In fo rm ação - FA SA 7. Bibliografia 1. MACHADO, Francis B. Arquitetura de Sistemas Operacionais. 4 ed. Rio de Janeiro: LTC, 2007. 2. TANENBAUM, Andrew S. Sistemas operacionais modernos. 2 Ed. Rio de Janeiro: Prentice-Hall, 2005. Siste m as d e In fo rm ação - FA SA Conteúdo da Próxima Aula • Operações sobre processos. Obrigado ! Rafael A. G. Lima (rafaelg@fasa.edu.br) Siste m as d e In fo rm ação - FA SA
Compartilhar