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

O PROCESSAMENTO PARALELO E A TAXONOMIA DE FLYNN

Por:   •  4/5/2017  •  Trabalho acadêmico  •  2.602 Palavras (11 Páginas)  •  366 Visualizações

Página 1 de 11

UNIVERSIDADE ANHANGUERA - UNIDERP

LUCAS ROZENDO VIANA

RA 1299142340

TRABALHO DE ARQUITETURAS PARALELAS E DISTRIBUÍDAS

PROCESSOS, THREADS E TAXONOMIA DE FLYNN

CAMPO GRANDE – MS

2017

SUMÁRIO

1 INTRODUÇÃO..........................................................................................................3

2 DESENVOLVIMENTO..............................................................................................4

2.1PROCESSOS E THREADS....................................................................................4

2.1.2  CONTEXTO DE PROCESSO............................................................................5

2.1.3  ESTADO DE UM PROCESSO...........................................................................5

2.1.4  ESTADOS DE EXECUÇÃO DE UM PROCESSO..............................................5

2.2  O PROCESSAMENTO PARALELO E A TAXONOMIA DE FLYNN.......................6

2.2.1  SIMD (SINGLE INSTRUCTION STREAM MULTIPLE DATA)……………….….6

2.2.2  MISD (MULTIPLE INSTRUCTION STREAM SINGLE DATA STREAM)………7

2.2.3  MISD (MULTIPLE INSTRUCTION STREAM SINGLE DATA STREAM)………7

2.2.4  APLICAÇÃO DO USO DA ARQUITETURA PARALELA...................................8

2.2.5   MULTIPROCESSADORES SIMÉTRICOS........................................................8

2.2.6 MÁQUINAS MACIÇAMENTE PARALELAS........................................................8

2.2.7   MÁQUINAS COM MEMÓRIA COMPARTILHADA DISTRIBUÍDA....................9

2.2.8   REDE DE ESTAÇÕES DE TRABALHO...........................................................9

2.2.9  CLUSTER..........................................................................................................9

3 CONCLUSÃO.........................................................................................................10

REFERÊNCIAS......................................................................................................11

1 INTRODUÇÃO

O grande interesse por problemas cada vez mais complexos tem levado à necessidade de computadores cada vez mais potentes para resolvê-los. Entretanto, limitações físicas e econômicas têm restringido o aumento da velocidade dos computadores sequenciais, ou seja, computadores que executam instruções em série, uma após a outra pela CPU. Por outro lado, os problemas computacionais usualmente podem ter algumas de suas partes divididas em pedaços que teriam como ser solucionados ao mesmo tempo ou processadas em paralelo. Processamento paralelo é então uma forma pela qual a demanda computacional é suprida por meio do uso simultâneo de recursos computacionais como processadores para solução de um problema. A computação paralela é caracterizada pelo uso de várias unidades de processamento ou processadores para executar uma computação de forma mais rápida. É baseada no fato de que o processo de resolução de um problema pode ser dividido em tarefas menores, realizadas simultaneamente por meio de algum tipo de coordenação. O conceito foi originalmente introduzido no CDC 6600 em 1964 pela CDC (control data corporation).

2 DESENVOLVIMENTO

2.1 PROCESSOS E THREADS.

Processo é geralmente entendido como um programa em execução porém, na realidade, trata-se de uma estrutura mais complexa que contém, além do programa no seu formato executável, todas as informações necessárias (contexto) à execução e ao controle da execução do mesmo, como por exemplo: o contador de programa, pilhas, registradores e área de dados. O programa é uma entidade passiva, que pode ser visto como o conteúdo de um arquivo em disco, enquanto que o processo é uma entidade ativa, possuindo um contador de programa (PC), que especifica a próxima instrução a ser executada, e um conjunto de recursos a ele alocados. Nos sistemas operacionais mais antigos, cada processo possuia um único fluxo de controle, ou seja, as instruções são executadas seqüencialmente, uma de cada vez. Já nos sistemas mais modernos, um processo pode, por sua vez, dar início a um ou mais subprocessos, que são executados em paralelo ou de forma concorrente com o processo pai e, para todos os efeitos, apresentam as mesmas características e particularidades de um processo qualquer, no tocante a contexto e fluxo de controle. Threads, por outro lado, representam uma nova concepção na forma de um processo paralelizar a execução de partes do seu código. Os threads, conceitualmente, se assemelham a subprocessos porém, diferentemente destes, não possuem identidade própria e, portanto, não são independentes. Cada thread possui seu próprio contador de programa, sua pilha e seus registradores porém compartilham todos o mesmo espaço de endereçamento, isto é, como se fossem uma única entidade . Nos sistemas tradicionais, cada processo tem seu próprio contexto e apenas um fluxo de controle - são do tipo single thread. Freqüentemente, no entanto, é desejado ter-se múltiplos fluxos de controle que compartilhem do mesmo espaço de endereçamento e sejam executados de forma paralela (no caso de multiprocessamento) ou de forma concorrente (no caso de monoprocessamento), como se fossem processos separados. Threads satisfazem estes requisitos, pois compartilham do mesmo espaço de endereçamento com o processo pai e com os demais threads, e podem ser executados de forma concorrente ou paralela (fig. VIII.1). O esquema de threads, no entanto, só pode ser utilizado quando for especificamente suportado pelo sistema operacional ou quando da existência de um gerenciador de threads. Os threads não são tão independentes como os processos e os subprocessos, uma vez que compartilham de um mesmo espaço de endereçamento e, por conseguinte, compartilham das mesmas variáveis globais, dos mesmos arquivos, das mesmas tabelas, etc. Uma vez que todo thread pode acessar todo o espaço virtual de endereçamento do processo pai e dos demais threads, ele pode “ler e escrever” em qualquer local, mesmo na pilha dos outros threads - o que significa que não há qualquer forma de proteção de acesso entre os threads. Os threads compartilham a UCP da mesma forma que os processos o fazem, isto é, podem criar outros threads e podem ficar suspensos aguardando (em block waiting) pelo término de uma P Processos e Threads 39 operação qualquer (system call).

...

Baixar como (para membros premium)  txt (19 Kb)   pdf (147.2 Kb)   docx (21.6 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com