O PROCESSAMENTO PARALELO E A TAXONOMIA DE FLYNN
Por: Salezio.Francisco • 22/8/2018 • 2.579 Palavras (11 Páginas) • 340 Visualizações
...
2.1.2 CONTEXTO DE PROCESSO
O ambiente necessário a execução de um processo é formado pelos contextos de hardware e de software. O contexto de hardware é fundamental para que os processos possam se revezar no controle (utilização) da UCP, podendo ser interrompidos pelo SO e, posteriormente, reinicializados do ponto onde haviam parado sem qualquer solução de continuidade, isto é, como se nada tivesse ocorrido. A operação que possibilita tal revezamento é chamada de troca de contexto (context switch) e consiste basicamente em salvar o conteúdo dos registradores e carregá-los com os valores referentes ao processo que esteja ganhando o controle da UCP. O contexto de software especifica características do processo que influem na execução do mesmo, tais como: o número máximo de arquivos abertos, o tamanho do buffer para operações de E/S, etc. O Sistema Operacional cria para cada processo uma estrutura chamada PCB - Process Control Block, onde ele mantém todas as informações de contexto (hardware e software) do processo. O conteúdo e a estrutura do PCB variam de sistema para sistema, sendo que no exemplo mostrado na figura VIII.2 a seguir, ele consiste do estado do processo, da sua identificação, do registrador PC, dos demais registradores da UCP, de informações de escalonamento, de informações de memória, de informações de contabilização e de informações de entrada e saída.
2.1.3 ESTADO DE UM PROCESSO.
O procedimento de execução de um processo tem início com a criação do mesmo, carga do mesmo em memória, para que de lá possa ser escalado para tomar o controle da UCP e realizar seu processamento e, finalmente, terminado, quando da sua conclusão. Quando em memória, o processo pode estar num dos três estados seguintes: em execução, em espera pela ocorrência de um evento previamente solicitado por ele mesmo ou, no estado de pronto para execução. Estados estes representados na figura VIII.3. Processos e Threads 41 Um processo para poder ser escalado para execução precisa estar no estado de pronto (ready). Um processo em execução pode perder o controle da UCP de forma voluntária (quando ele próprio realiza uma operação de E/S) ou de forma involuntária (quando por algum critério gerencial o próprio sistema operacional retoma o controle da UCP). Um processo em estado de espera fica nesta situação até que sua pendência seja satisfeita e de lá passa para o estado de pronto.
2.1.4 ESTADOS DE EXECUÇÃO DE UM PROCESSO
Dentro do estado de execução, para fins de proteção do sistema como um todo, são adotados níveis de prioridade que definem o que o processo está ou não autorizado a fazer. É a forma utilizada para evitar que processos dos usuários venham a danificar áreas do sistema operacional ou mesmo áreas reservadas a outros processos. Diversas são as estratégias de definição destes níveis de prioridade. A estratégia básica consiste na definição de dois estados, um supervisor e outro usuário. Sistemas mais complexos como o OS/2 por exemplo, adotam 4 níveis: 0 - kernel (supervisor), 1 - sistema de arquivos, comunicação entre processos e acionadores de dispositivos de E/S, 2 - subsistema de E/S e 3 - usuário. Um processo somente passa de um nível superior para um inferior com autorização do sistema operacional, que assim garante a integridade operacional.
2.2 O PROCESSAMENTO PARALELO E A TAXONOMIA DE FLYNN.
A taxonomia de Flynn abrange quatro classes de arquiteturas de computadores:
● SISD (Single Instruction Single Data): fluxo único de instruções sobre um único conjunto de dados.
● SIMD (Single Instruction Multiple Data): fluxo único de instruções em múltiplos conjuntos de dados.
● MISD (Multiple Instruction Single Data): fluxo múltiplo de instruções em um único conjunto de dados.
● MIMD (Multiple Instruction Multiple Data): fluxo múltiplo de instruções sobre múltiplos conjuntos de dados.
SISD (Single Instruction Single Data)
Nesta classe, um único fluxo de instruções opera sobre um único fluxo de dados. Isso corresponde ao processamento sequencial característico da máquina de Von Neumann e que compreende os computadores pessoais e estações de trabalho. Apesar dos programas estarem organizados por meio de instruções sequenciais, elas podem ser executadas de forma sobreposta em diferentes estágios (pipelining). Arquiteturas SISD caracterizam-se por possuírem uma única unidade de controle, podendo possuir mais de uma unidade funcional. Um exemplo seria seu computador pessoal com um processador convencional.
2.2.1 SIMD (SINGLE INSTRUCTION STREAM MULTIPLE DATA).
Esta classificação corresponde ao processamento de vários dados sob o comando de apenas uma instrução. Em uma arquitetura SIMD, o programa ainda segue uma organização sequencial. Para possibilitar o acesso a múltiplos dados é preciso uma organização de memória em diversos módulos. A unidade de controle é única, e existem diversas unidades funcionais. Nesta classe estão os processadores vetoriais e matriciais.
Quanto às facilidades de hardware para armazenamento, essas normalmente são classificadas como:
● Processor Array
● Vector Pipeline
Exemplo de computadores com a arquitetura processor array são as máquinas ILLIAC IV (Universidade de Illinois), Thinking Machine CM- 2 e MASPAR MP-1216.
Exemplo de computadores com a arquitetura vector pipeline são as máquinas IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10. As GPUs, também, estão sob essa classificação.
2.2.2 MISD (MULTIPLE INSTRUCTION STREAM SINGLE DATA STREAM).
Um conjunto de dados é colocado concorrente em múltiplas unidades de processamento. Cada UP opera de maneira independente via conjuntos independentes de instruções. Algumas utilizações de uma configuração MISD poderiam ser:
● Filtros de múltiplas frequências operando um mesmo sinal
● Múltiplos algoritmos de criptografia tentando a quebra de uma mensagem codificada
Não se tem conhecimento de arquitetura de máquinas comercial
...