Trabalho De Processamento De Dado
Pesquisas Acadêmicas: Trabalho De Processamento De Dado. Pesquise 862.000+ trabalhos acadêmicosPor: pauloarcanjo • 19/9/2014 • 3.570 Palavras (15 Páginas) • 934 Visualizações
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
...