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

Trabalho De Processamento De Dado

Pesquisas Acadêmicas: Trabalho De Processamento De Dado. Pesquise 859.000+ trabalhos acadêmicos

Por:   •  19/9/2014  •  3.570 Palavras (15 Páginas)  •  880 Visualizações

Página 1 de 15

1 .Thread.

Com o intuito de reduzir o tempo gasto na criação/eliminação de processos e economizar recursos surgiu o conceito de thread.

Significado em português: LINHA DE EXECUÇÃO

Existem dois tipos:

Monothread - para ambiente que permita apenas um thread.

Multithread - usada em ambiente que permite vários threads, cada processo pode responder a várias solicitações. Havendo mais de um processador as threads podem operar simultaneamente.

Cada thread tem seu próprio PC (program counter) o registrador responsável por apontar a próxima instrução a ser executada.

Exemplo: enquanto um thread aguarda operação de E/S(no estado de espera), outra thread pode utilizar a CPU.

Os threads compartilham o mesmo espaço de endereçamento (do processo pai)

Passam pelos mesmos estados que um processo passa.

Principal diferença entre subprocesso e thread:

Subprocessos possuem cada, um endereçamento protegido.

Os threads compartilham o mesmo endereçamento sem proteção permintindo que uma altere os dados de outra. Threads trabalham cooperativamente, desempenhando tarefas em conjunto.

Existem duas categorias:

Uma em nível de usuário (ULT – User Level Thread)

A outra em nível de kernel (KLT – Kernel Level Thread)

Exemplo de thread em linguagem de alto nível:

Um CHAT, enquanto um thread lê o que é digitado outro thread apresenta o que foi digitado.

Um thread pode ser definido como uma sub-rotina de um programa que pode ser executada de forma assíncrona, ou executada concorrentemente ao programa chamador. O programador deve especificar os thread, associando-os as Sub rotina assíncronas. Desta forma o ambiente multithread se possibilita com a execução de corrente de sub-rotina dentro de um mesmo processo.

Tem um programa principal que realiza a chamada duas sub-rotinas assíncronas que são sub1 e sub2. O processo é criado apenas com o thread1 para executa o programa principal. E também quando o programa principal chama as sub-rotinas sub1 e sub2, ai é criado os thread2 e o thread3, e executados independente do programa principal.

Arquitetura de Sistemas Operacionais

Os Threads compartilham o processador da mesma maneira que processos e passam pelas mesmas mudanças de estado execução, espera e pronto. E também, enquanto um

thread espera por uma operação de E/S, outro thread também pode ser executado. Assim para permitir a troca de contexto entre os diversos threads, cada thread possui seu próprio contexto de hardware, com o conteúdo dos registradores gerais, PC e SP. E quando um thread está sendo executado, seu contexto de hardware esta armazenado nos registradores do processador. E no momento em que o thread perde a utilização da UCP, as informações são atualizadas no seu contexto de hardware.

E dentro de um mesmo processo, threads compartilham o mesmo contexto de software

e espaço de endereçamento com os demais threads, porém cada thread possui seu contexto de hardware individual.

E a grande diferença entre aplicações monothread e multithread está no uso do espaço de endereçamento. Processos independentes e subprocessos possuem espaços de endereçamento individuais e protegidos, enquanto threads compartilham o espaço dentro de um mesmo processo. Esta característica permite que o compartilhamento de dados entre threads de um mesmo processo seja mais simples e rápida, se comparado a ambientes monothread.

Threads passam a ter a mesma mudança de estado como: execução, espera e pronto. E também compartilham o processador. No momento que um Thread aguarda uma operação de E/S, outra pode ser executada.

Em um processo os Threads compartilham o mesmo contexto de software e espaço de endereçamento, mas texto de hardware cada thread possui seu texto individualmente com conteúdo dos registradores gerais PC e SP, assim permitindo a troca de contexto entre vários threads.

Os contextos de hardware ficam armazenados nos registradores do processador, assim quando o thread perder a utilização da UCP poderá ser utilizado pelo contexto de hardware.

Através de uma estrutura de dados o TCB (bloco de controle do thread) é que os threads são implementados internamente. Além de o TCB armazenar contexto de hardware, também armazena informações relacionadas exclusivamente ao thread, como prioridade, estado de execução e bits de estado.

Em ambiente multithread cada thread representa uma unidade de escalonamento independente, sendo executada pelo sistema um de seus threads e não todo processo, como em ambiente monothread que o processo é ao mesmo tempo unidade de escalonamento. Pois o ambiente multithread, compartilha o espaço de endereçamento, descritores de arquivo e dispositivos de E/S em um processo que é a unidade de alocação de recursos.

O ambiente multithread comparado ao monothread tem uma grande diferença, que esta no uso do espaço de endereçamento. Os processos independentes e subprocessos possuem espaços de endereçamento individuais e protegidos, enquanto os threads compartilham o espaço dentro de um mesmo processo sendo assim mais simples e rápido. Porém não há proteção no acesso a memoria, podendo assim um thread mudar dados de outros. É necessário que a aplicação programe mecanismos de comunicação e sincronização entre threads, para trabalharem de forma cooperativa e segura compartilhada na memoria.

Dividindo o mesmo espaço de endereçamento o uso de multithread é mais eficiente, pois geram menor overhead em operação de criação, troca de contexto e eliminação dos threads. Também a comunicação entre eles são realizadas de forma rápida, e podem compartilhar alguns recursos como descritores de arquivos, temporizadores, sinais, atributos de segurança em um mesmo processo.

Pode-se utilizar de forma concorrente pelos diversos threads a utilização dos processadores, discos e outros periféricos, tendo um desempenho melhor dos recursos computacionais disponíveis.

Algumas aplicações com base em thread são especialmente beneficiadas como editores de texto, planilhas, aplicativos gráficos e processadores de imagens. Também podem melhorar o desempenho apenas executando

...

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