TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Gerenciamento De Processos E Threads

Artigo: Gerenciamento De Processos E Threads. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  27/5/2013  •  1.331 Palavras (6 Páginas)  •  849 Visualizações

Página 1 de 6

INTRODUÇÃO

As threads são definidas como processos de pouco peso. São a unidade básica do processador central de um programa sendo um córrego seqüencial da execução dentro de um processo. Com o intuito de mostrar uma visão geral sobre o assunto, abordaremos conceito, benefícios, utilizações, gerenciamento e características de threads em alguns Sistemas Operacionais, bem como algumas aplicações.

CONCEITO

Processo com entidade própria, com próprio contexto de escalonamento, mas que compartilha a estrutura de dados com seu pai. Thread ou processo leve é uma unidade básica de utilização de CPU que consiste em: apontador de instruções, conjunto de registradores e espaço de pilhas. Uma thread compartilha com threadsirmãs: a área do código, a área de dados e recursos do sistema operacional. Em uma tarefa dotada de múltiplos fluxos de execução, enquanto um fluxo está bloqueado esperando, um outro fluxo na mesma tarefa pode continuar rodando. Cooperação de múltiplas threads em uma mesma tarefa aumenta o throughput e performance. O mecanismo de threads permite que processos seqüenciais sejam executados paralelamente, apesar de poderem fazer chamadas ao sistema que bloqueiam processos. Na programação é um processo que faz parte de um processo maior ou programa. Em uma estrutura de dados em forma de árvore, um ponteiro que identifica o nó imediatamente superior (Pai) sendo usado para facilitar o percurso da árvore (CASTRO, 1998). As threads operam de forma semelhante a processos quanto ao seu estado, podem ser pronto, bloqueado, executando e terminado, apenas uma thread de cada vez em execução na CPU, executa seqüencialmente e pode criar threads filhas.E se diferem de processos, por exemplo, quando uma thread bloqueia, outra da mesma task pode ser executada, não são independentes umas das outras, podendo invadir o espaço de outra a invalidando, não são protegidas umas das outras. Threads múltiplas em um único Espaço de Endereçamento podem ser utilizadas para implementar concorrência dentro de um processo. Imagine que você tem um processo que serve requisições de I/O (por exemplo, um servidor lê arquivos ou um

sistema de bancos de dados):

a) Quando uma thread solicita uma

leitura, ela fica bloqueada até que os dados

fiquem disponíveis;

b) Um único processo com uma única

thread não pode executar nada de útil

enquanto o disco está sendo acessado;

c) Com threads múltiplas, uma thread

pode continuar a executar enquanto a outra

espera pelo I/O;

d) compartilham memória, arquivos

abertos e variáveis globais;

e) mantém cópias privadas de pilhas,

contador de programa e estado de

processador.

CARACTERÍSTICAS

a) Variáveis locais da thread sãoalocadas em memória estática própria

b) Todas as threads de um processo compartilham a memória e os recursos desse processo

BENEFÍCIOS

Criar/terminar uma thread é mais rápido que criar/terminar um processo O chaveamento de duas threads (do mesmo processo) gasta menos tempo que o chaveamento entre dois processos diferentes As threads de um processo compartilham memória e arquivos e podem se comunicar sem a intermediação (invocação) do núcleo Aplicações que requerem o compartilhamento de buffers (por exemplo, produtores e consumidores) se beneficiam da utilização de threads.

UTILIZAÇÕES

Permitir a exploração do paralelismo real oferecido por máquinas multiprocessadores. Aumentar número de atividades executadas por unidade de tempo (throughput). Aumentar tempo de resposta, possibilidade de associar threads a dispositivos de entrada/ saída. Sobrepor operações de cálculo com operações de entrada e saída.

GERENCIAMENTO DE THREADS

Suspender um processo acarreta a suspensão de todas as suas threads, considerando que elas compartilham o mesmo espaço de endereçamento A terminação de um processo termina todas as threads dentro do processo. Podem ser implementadas em dois níveis diferentes:.nível do usuário e nível do núcleo

Nível do Usuário:

Todo o gerenciamento é feito pela aplicação; o núcleo não conhece a existência de threads; o chaveamento não requer a intervenção do núcleo (execução em modo privilegiado); o escalonamento é específico da aplicação não passa pelo Kernel; chamadas de sistema normalmente bloqueiam o processo e não pode fazer uso de um processador

Nível do Núcleo:

O núcleo gerência threads (incluindo criação e escalonamento) e o processo mantêm a informação de contexto; o chaveamento de threads requer a intervenção do núcleo; se uma thread bloqueia, o núcleo pode executar outra thread do mesmo processo e o núcleo pode escalonar várias threads de um mesmo processo em processadores diferentes. Gerenciamento Misto: A criação de threads é realizada no espaço do usuário, a maior parte do escalonamento e sincronização de threads também é feita no espaço do usuário, chamadas bloqueantes das threads não bloqueiam o processo e combina as vantagens e minimiza as desvantagens das técnicas puras.

MULTITHREADING

É a execução de vários processos em uma seqüência rápida (multitarefa) dentro de um mesmo programa. Os sistemas operacionais podem suportar várias threads de execução em um único processo / espaço de endereçamento,

...

Baixar como (para membros premium)  txt (8.8 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com