Você está na página 1de 3

1

INSTITUTO FEDERAL DE CINCIA, EDUCAO E TECNOLOGIA DO TRINGULO MINEIRO

ANLISE E DESENVOLVIMENTO DE SISTEMAS

L U C AS LO P ES M AR I A E UG NI A D E V I L A F E R REI RA

THREADS: IMPLEMENTAO NO MODO NCLEO

Patrocnio, MG 2013

O uso de um tipo de processo dentro de um processo, tambm conhecido como mini-processos ou threads, pode ser questionvel. A justificativa que em vrias aplicaes ocorrem muitas atividades simultaneamente, que podem ser bloqueadas em alguns momentos. Alm disso, criar ou destruir um thread mais rpido que fazer isto com processos, que podem ter vrios recursos associados. Quando ocorre uma grande quantidade de computao e E/S, os threads permitem a sobreposio destas atividades, acelerando a aplicao. H dois mtodos de implementar um pacote de threads: no espao do usurio e no ncleo. O primeiro consiste em inserir o pacote de threads dentro do espao do usurio (threads de usurio), logo o ncleo no informado sobre eles e apenas executa o gerenciamento comum de processos monothread. J no modo ncleo, o ncleo sabe dos threads e os gerencia atravs de uma tabela de threads que acompanha todos os threads no sistema. Diante da necessidade de criar um novo thread ou destruir um existente, feita uma chamada ao ncleo que realiza o processo solicitado atualizando, ento, a tabela de threads. Esta tabela contm estados, registradores e outras informaes acerca de cada thread. Essas informaes constituem um subconjunto das informaes que os ncleos tradicionais mantm sobre cada um de seus processos monothreads, isto , o estado do processo. Alm disso, o ncleo tambm mantem a tradicional tabela de processos para o acompanhamento destes. Todas as chamadas que possam bloquear um thread so implementadas como chamadas de sistema. Quando um thread bloqueado, opo do ncleo executar outro thread do mesmo processo ou de outro processo. O sistema de tempo de execuo mantm os threads de seu prprio processo executando at que o ncleo retire a CPU dele ou at que no haja mais threads prontos para executar. A reciclagem de threads uma prtica adquirida por alguns sistemas devido ao custo relativamente maior de criar e destruir threads de ncleo. Durante a excluso de um thread, este marcado como no executvel, porm suas estruturas de dados no sofrem alteraes. Se for preciso criar um novo thread, um thread antigo reativo, economizando alguma sobrecarga. Os threads de ncleo, alm disso, no precisam de nenhuma chamada de sistema bloqueante. Se um thread em processo causa uma falta de pgina, o ncleo pode facilmente verificar se o processo tem threads para execuo e, em caso afirmativo, pode execut-los enquanto aguarda a pgina requisitada ser trazida do disco. A principal desvantagem que o custo de uma system call alto e, portanto, a ocorrncia frequente de operaes de um thread causar uma sobrecarga muito maior. Ainda que os threads de ncleo resolvam alguns problemas, no resolvem todos. Diante da bifurcao de um processo multithread h duas situaes que dependem do que o processo far em seguida. Caso chame exec para executar um novo programa, provavelmente apenas um thread ser mantido. Se continuar a executar, a replicao de todos os threads necessria. Outra questo so os sinais, enviados para processos e no para os threads. Os threads podem registrar seus interesses em certos sinais, assim quando este chegasse seria direcionado ao thread que o requisitasse. E se dois registrarem interesse ao mesmo sinal? Estes so apenas exemplos de alguns problemas apresentados pelos threads e no se deve descartar a existncia de outros.

REFERNCIAS TANENBAUM, A. S. Sistemas Operacionais Modernos. 3 ed. So Paulo: Pearson Education, 2010. 653p. TANENBAUM, A. S.; WOODHULL, A. S. Sistemas Operacionais, Projeto e Implementao. 3 ed. So Paulo: Bookman, 2008.

Você também pode gostar