Você está na página 1de 11

Processos e Threads

Escalonamento das Linhas de Execuo Modelo de Gerao de Multithreads

Escalonamento das Linhas de Execuo


Da mesma forma que os processos sofrem escalonamento as threads tambm tem a mesma necessidade. Quando vrios processos so executados em uma CPU eles do a impresso que esto sendo executados simultaneamente, com as threads ocorre o mesmo, elas esperam at serem executadas e como esta alternncia muito rpida h impresso de que todas as threads so executadas paralelamente.

04/05/11

Elaborado por: dr. Ivo Passe

Escalonamento das Linhas de Execuo ao Nvel do Usurio


As ULT so escalonadas pelo programador, tendo a grande vantagem de cada processo usar um algoritmo de escalonamento que melhor se adapte a situao, o Sistema Operativo neste tipo de thread no faz o escalonamento, em geral ele no sabe que elas existem. Neste modo o programador responsvel por criar, executar, escalonar e destruir a thread.

04/05/11

Elaborado por: dr. Ivo Passe

Escalonamento das Linhas de Execuo ao Nvel do Usurio


Um exemplo prtico de processo chamado P1 que contm tais threads: P1T1,

P1T2 e P1T3, quando o Sistema Operativo entrega a CPU para o processo


P1 cabe a ele destinar qual thread ser executada, caso esta thread use todo processo do quantum, o Sistema Operativo chamar outro processo,

e quando o processo P1 voltar a executar, P1T1 voltar a ser executada e


continuar executando at seu trmino ou interveno de P1, este comportamento no afectar outros processos pois o sistema continua escalonando os processos normalmente.

04/05/11

Elaborado por: dr. Ivo Passe

Escalonamento das Linhas de Execuo ao Nvel do Ncleo


As KLT so escalonadas directamente pelo Sistema Operativo, comumente so mais lentas que as Threads ULT pois a cada chamada elas necessitam consultar o sistema, exigindo assim a mudana total de contexto do processador, memria e outros nveis necessrios para alternar um processo. Vejamos o exemplo seguinte:

04/05/11

Elaborado por: dr. Ivo Passe

Escalonamento das Linhas de Execuo ao Nvel do Ncleo


Temos um processo chamado P2 que contm as threads P2T1, P2T2 e P2T3 e um processo chamado P3 que contm as threads P3T1, P3T2 E P3T3.

O Sistema Operativo no entregar a CPU ao processo mas sim a uma thread deste processo, note agora que o sistema responsvel por

escalonar as threads e este sistema tem que suportar threads.

04/05/11

Elaborado por: dr. Ivo Passe

Escalonamento das Linhas de Execuo ao Nvel do Ncleo


A cada interrupo de thread necessrio mudar todo o contexto de CPU e memria, porm as threads so independentes dos processos, podendo ser executadas P3T2, P2T1, P2T2, P2T1, P3T1,P2T3,P3T3, ou seja a ordem em que o escalonador do sistema determinar.

04/05/11

Elaborado por: dr. Ivo Passe

Modelo de Gerao de Multithreads


Modelo Muitos-Para-Um

O modelo muitos-para-um mapeia muitos threads de nvel de usurio para threads do kernel. O gerenciamento dos threads realizado no espao do usurio e assim eficiente, mas o processo inteiro ficar bloqueado. Alm disso, como somente um thread pode acessar o kernel de cada vez, mltiplos threads so incapazes de executar em paralelo em multiprocessadores.

04/05/11

Elaborado por: dr. Ivo Passe

Modelo de Gerao de Multithreads


Modelo Muitos-Para-Muitos
O modelo muitos-para-muitos multiplexa muitos threads de nvel de usurio para um nmero menor ou igual de threads de kernel. O nmero de threads de kernel pode ser especfico tanto para uma aplicao em particular quanto para uma mquina em particular. Os desenvolvedores podem criar tantos threads de usurio quantos forem necessrios, e os correspondentes threads de kernel podem executar em paralelo em um multiprocessador. Alm disso, quando um thread realiza uma chamada de sistema de bloqueio, o kernel pode agendar um outro thread para execuo.

04/05/11

Elaborado por: dr. Ivo Passe

Modelo de Gerao de Multithreads


Modelo Um-Para-Um

O modelo um-para-um mapeia cada thread de usurio para um thread de kernel, gera mais concorrncia do que o modelo muitos-para-um. Permite a um outro thread ser executado, enquanto um thread realiza uma chamada de sistema de bloqueio, ele tambm permite que mltiplos threads executem em paralelo em multiprocessadores. A nica desvantagem deste modelo que a criao de um thread de usurio requer a criao do correspondente thread de kernel.

04/05/11

Elaborado por: dr. Ivo Passe

10

FIM

04/05/11

Elaborado por: dr. Ivo Passe

11