140 likes | 266 Views
Sistemas Operacionais. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Threads. 27/08/2013. Tópicos abordados. Introdução; Ambiente Monothread ; Ambiente Multithread ; Arquitetura de implementação de threads;. Introdução.
E N D
Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Threads 27/08/2013
Tópicos abordados • Introdução; • Ambiente Monothread; • Ambiente Multithread; • Arquitetura de implementação de threads; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Introdução • Criado em meados da década de 1980, o conceito de threads serviu para melhorar a comunicação e sincronização de processos; • Como as threads compartilham o mesmo espaço de endereçamento do processo essa comunicação é melhorada; • Porém a introdução do conceito trouxe uma série de problemas a serem resolvidos pelo SO; • Atualmente a maioria dos SOs são multithreads. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente monothread • Em um ambiente monothread existe apenas um programa no espaço de endereçamento do processo; • Aplicações concorrentes só podem existir com múltiplos processos independentes ou subprocessos; • Nesse ambiente a criação e eliminação de processos demanda maior custo computacional; • Outro problema é na comunicação e sincronização de processos que depende de sinais e mensagens do SO; • Cada funcionalidade a mais na aplicação demanda a criação de um novo processo independente ou subprocesso; • Sistemas monothread: • MS-Dos, Os primeiros MS-Windows, VAX e as primeiras versões Unix. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente monothread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread • Em um ambiente multithread não existe a ideia de programas associados ao processo, mas sim de threads; • Um thread é uma sub-rotina do programa que pode roda de forma paralela ao programa chamador; • Isso permite a execução concorrente de sub-rotinas dentro de um mesmo processo; • Um processo deve ter no mínimo um thread mas pode criar inúmeros threads que compartilham o mesmo espaço de endereçamento; • O uso de threads diminui o overhead na criação, troca e eliminação de processos, bem como na alocação de recursos. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread • Threads compartilham o uso do processador da mesma forma que processos, e possuem os mesmos estados dos processos: • Execução; • Espera; • Bloqueado; • Para haver a troca de contexto entre os threads, estes possuem as informações do contexto de hardware; • Threads são implementados por uma estrutura chamada de BCT (bloco de controle do thread); • Além do contexto de hardware, o BTC armazena informações como prioridade, estado de execução e bits de estado. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread • Em ambiente monothread não existe separação entre unidade de alocação de recursos e unidade de escalonamento; • Quando ocorre um escalonamento, este se dá de processo para processo; • Em ambiente multithread existe uma separação entre unidade de alocação de recursos e unidade de escalonamento; • O processo é uma unidade de alocação de recursos; • A thread é uma unidade de escalonamento, portando em ambiente multithread quem é escalonado é um thread de um processo; • A grande vantagem do uso de threads é o espaço de armazenamento único compartilhado entre os threads de um mesmo processo. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread • Compartilhando o mesmo espaço de endereçamento, não há necessidade de proteção de memória entre os threads e eles podem alterar toda a área de memória do processo; • Para isso deve existir mecanismos de comunicação e sincronização entre threads para garantir acesso seguro a memória compartilhada; • Em ambientes cliente-servidor o uso de threads é fundamental, garantindo a melhora do desempenho do sistema; • Núcleos de SOstambém fazem uso de threads para serem implementados. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Ambiente multithread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Arquitetura de implementação • Fazer atividades pg 89 Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013