Agenda Threads Modelo de Threads Exemplos 2 Threads Contextualizao Os antigos S.O. suportavam apenas uma tarefa por processo. Fator limitante devido a complexidade das novas aplicaes.
Surge a necessidade de suportar mais de uma tarefa operando no mesmo contexto, ou seja, dentro do mesmo processo 4 Threads Cada tarefa associado a um processo ou ao interior do ncleo denominada thread.
Threads de usurio so executadas dentro de um processo. Cada thread de usurio corresponde a uma tarefa a ser executada dentro de um processo. 5 Threads Threads de usurio 6 Threads Threads de usurio so gerenciadas atravs de bibliotecas no nvel de usurio.
Vantagem: rapidez
Limitaes Bloqueio nas chamadas ao sistema No tira proveito de multiprocessadores 7 Threads Threads de ncleo representam as tarefas em execuo pelo ncleo do sistema Essas tarefas podem corresponder execuo dos processos no espao de usurio ou a atividades internas do prprio ncleo, como drivers de dispositivos ou tarefas de gerncia. 8 Threads Threads de ncleo 9 Threads Threads de ncleo tem como vantagens Bloqueio apenas da thread que faz a chamada Tira proveito dos multiprocessadores
Inconvenientes lentido (entrada no sistema) 10 Modelos de Thread Modelo de Thread SOs antigos no tinham threads.
Desenvolvedores usavam bibliotecas para criar e gerenciar threads dentro de cada processo, sem usar o ncleo.
Assim, uma aplicao podia lanar vrias threads, mas o ncleo do sistema sempre percebia apenas um fluxo de execuo dentro de cada processo. 12 Modelo de Thread Esta forma de implementao de threads nomeada Modelo de Threads N:1
N threads no processo correspondem a uma nica thread de ncleo.
Usado em sistemas que no suportam kernel threads.
13 Modelo de Thread Modelo de Threads N:1 14 Modelo de Thread O modelo de threads N:1 muito utilizado (leve e fcil de implementar) Carga de gerncia do ncleo mnima
til na construo de aplicaes que exijam muitos threads Jogos, simulaes de grandes sistemas
Exemplo: biblioteca GNU Portable Threads. 15 Modelo de Thread A principal desvantagem do modelo N:1 diz respeito a operaes de E/S. Suspenso do ncleo at a concluso
Outro problema diviso de recursos. Tempo do processador divido entre os processos que gerencia. Aplicao com 100 threads de usurio = 1 tempo de processador. 16 Modelo de Thread Necessidade de suporte a aplicaes multithreaded.
Cada thread de usurio tem uma thread dentro do ncleo. Operaes de E/S suspendem apenas o respectivo thread de ncleo
Essa forma de implementao, denominada Modelo de Threads 1:1 17 Modelo de Thread Modelo de Threads 1:1 18 Modelo de Thread Exemplos Windows 95/98/NT/2000 Pthreads sobre LinuxThreads
O modelo 1:1 adequado para a maioria da situaes
Desvantagem: Pouco escalvel 19 Modelo de Thread O Modelo de Threads N:M, onde N threads de usurio so mapeados em M N threads de ncleo.
um modelo hibrido que agrega caractersticas dos outros modelos usando uma biblioteca de usurio.
Exemplos Solaris 2 e Windows NT/2000 com o pacote ThreadFiber
20 Modelo de Thread Modelo N:M 21 Exemplos de Threads em SO 22 Threads no Linux Os kernel threads no Linux so conhecidos por tasks.
A criao de tasks feita pela chamada ao sistema clone().
Clone() permite que a task filha partilhe recursos com task me ( por exemplo o espao de endereamento) Threads no Windows 2000 Mapping 1 : 1 (kernel threads).
Cada thread thread id Registros stacks utilizador e kernel rea privativa de dados 24 Atividade 25 Atividade Descrever as chamadas a API do Linux relativa a threads (pthreads)
Descobrir o comportamento (modelo) de threads em sistemas operacionais de dispositivos mveis 26