1 / 14

Sistemas Operacionais

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.

garnet
Download Presentation

Sistemas Operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari

  2. Threads 27/08/2013

  3. Tópicos abordados • Introdução; • Ambiente Monothread; • Ambiente Multithread; • Arquitetura de implementação de threads; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  4. 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

  5. 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

  6. Ambiente monothread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

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

  8. Ambiente multithread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  9. 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

  10. Ambiente multithread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  11. 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

  12. 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

  13. Ambiente multithread Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  14. Arquitetura de implementação • Fazer atividades pg 89 Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

More Related