Início > Conceitos, Virtualização > Tipos básicos de processamento

Tipos básicos de processamento

12/05/2010

1.1. Virtualização

Virtualização é um método de multiplicação independente de sistemas operacionais virtuais em um computador físico. Esta é uma abordagem que maximiza o retorno de investimento em um computador. O termo ‘virtualização’foi cunhado nos anos 60, no século passado, em referencia a uma máquina virtual (algumas vezes chamada de pseudo-machine). A criação e o gerenciamento de máquinas virtuais é frequentemente chamada de Virtualização de Plataforma (Platform Virtulization). Esta plataforma cria um sistema de controle por software em um hardware, estabelecendo um ambiente simulado, um computador virtual, e proporcionando o uso de softwares específicos para este ambiente. É também chamado de guest software.

O guest software , sendo um sistema operacional completo, roda exatamente como se estivesse instalado em um computador padrão. Mais de um computador virtual pode estar funcionando em um computador físico, limitando-se somente à capacidade de recursos do hardware. Porque o guest software frequentemente requer acesso a determinados dispositivos periféricos. Exemplos destes dispositivos são o disk drive, CD-ROM, DVD e um cartão de interface à rede. A tecnologia da virtualização é uma maneira de reduzir, em sua maioria, os custos de aquisição de hardware e de manutenção, resultando em significativas economias para a companhia.

1.2. Processamento paralelo

Processamento paralelo é realizado pela execução simultânea de instruções de programas que foram alocados em múltiplos processadores com o simples objetivo de rodar um programa em menos tempo. Nos computadores da primeira geração, somente era possível rodar um programa por vez. Para incrementar sua performance, formas primitivas de processamento paralelo foram desenvolvidas para permitir que dois programas fossem rodados ao mesmo tempo.

O computador começaria a rodas uma operação I/O (que é mensurada em milésimos de segundo), e enquanto espera completar este operação, executaria o programa de processamento-intensivo (mensurado em nanosegundos). O total do tempo de execução para as duas tarefas é apenas um pouco mais longo do que os minutos requeridos para completar a operação I/O.

O próximo avanço em processamento paralelo foi a multiprogramação, em que muitos programas submetidos pelos usuários usam, cada um, o processador por um curto período de tempo (para a rodar e executar as instruções). Esta abordagem é conhecida como “round-robin scheduling”(RR scheduling). É um dos sistemas mais antigo, simples, justo e altamente utilizado de algaritmos, especificamente desenhados para sistemas de compartilhamento.

Em RR scheduling, a unidade menor de tempo é chamada de tempo fatiado (ou quantum). Todos os processamentos executáveis são mantidos em uma fila circular. E o tempo fatiado é calculado pelo números de processamentos executáveis na fila. Por exemplo, se há cinco processos mantidos na fila e o tempo para sua execução total é de 1 segundo, cada processo tem um tempo fatiado alocado de 200 milésimos de segundo de execução no CPU.

Problemas de contenção de recursos sempre surgem nestes tipos de sistemas (principalmente, os mais primitivos), levando a condição de impasse. E a competição por recursos em uma máquina, sem uma quebra de tempo para a execução das instruções, leva para uma rotina crítica de problemas. A contenção acontece quando muitos processos requerem o mesmo recurso. Para detectar situações de impasse, um contados para cada processo faz o rastreamento do número de processos solicitados consecutivamente a partir de processos que foram rejeitados.

1.3. Processamento Vetor

O próximo passo rumo à evolução do processamento paralelo foi a introdução do multiprocessamento. Aqui, dois ou mais processadores compartilham uma carga de trabalho comum. As primeira versões do multiprocessamento foram desenhadas como um modelo master/slave, no qual um processador (o master) é responsável por todas as tarefas a serem realizadas, mas repassa ao processador secundário (o slave), com base em um limar pré-determinado, para aumentar a performance. O processamento Vetor foi desenvolvido para incrementar a performance de processamento, operando em um formato de multi-perguntas. Operações Matrix foram adicionadas para permitir a uma simples instrução manipular duas matrizes de operações com números aritméticos. Esta foi uma contribuição valiosa para certos tipos de aplicações nos quais dados foram processados sob a forma de vetores e matrizes. Em aplicações com dados de menor formato, o processamento Vetor é menos valioso.

1.4. Sistema Simétrico de Multiprocessamento

Seguindo com o avanço, foi desenvolvido o sistema simétrico de multiprocessamento (SMP) para resolver o problema de gerenciamento de recursos nos modelos master/ slave. Nos sistemas SMP, cada processador é igualmente capaz e responsável por gerenciar o fluxo de trabalho. O mais importante foi alcançar uma sequential consistency, para criar uma aparência exatamente igual como um processador simples, em uma plataforma de multiprogramação. Engenheiros descobriram que o sistema de performance poderia ter um incremento de 10 a 20% executando algumas instruções fora de ordem.

No entanto, programadores tiveram de lidar com o aumento também da complexidade e com a situação em que dois ou mais programas poderiam ler e escrever as mesmas operações simultaneamente. A dificuldade, porém, está limitada para alguns poucos programas, pois isto acontece muito raramente. Nestes casos, a questão é como as máquina SMP devem se comportar quando o acesso aos dados compartilhados permanecer sem solução.

O tempo de propagação de dados aumenta na proporção do número de processadores adicionados ao sistema SMP. Após um certo número (normalmente, algo como 40 ou 50 processadores), não há ganho em performance que justifique um investimento na adição de novos processadores. Para resolver o problema do longo tempo de propagação de dados, um sistema de mensagens foi criado. Nestes sistemas, programas que compartilham dados enviam mensagens para cada outro programa para comunicar que aquela operação ganhou um outro status/ valor. Ao contrário de uma mensagem global, é apenas comunicada às áreas de interesse, que necessitam saber da mudança de status. Existe uma rede desenhada para suportar a troca de mensagens entre aplicativos, permitindo que um bom número de processadores (milhares) trabalhem em conjunto em um mesmo sistema. Estes sistemas são chamados de Sistemas massivo de processamento paralelo (MPP).

1.5. Sistemas Massivos de Processamento Paralelo (MPP)

Este sistema é usado em computadores com arquiteturas em círculos para se referir a um sistema de computador com muitas unidades aritméticas independentes e com microprocessadores, que correm em paralelo. Massivo conota a centenas, e talvez milhares, das tais unidades. Neste formato de computação, todos os elementos do processamento estão interconectados para atuar como um computador enorme.

O primeiro sistema massivo de processamento paralelo usou computadores em série como unidades de processamento individual para maximizar o números de unidades disponíveis para a dar tamanho e custo de implementação de matrizes e de futuros avanços em circuitos de tecnologia integrados.

Alguns exemplos de sistemas massivos de processamento paralelo estão nos campos da inteligência artificial ou em ambientes científicos com simulações complexas e problemas matemáticos que podem dividir cada parte do processo simultaneamente. Máquinas MPP não são fáceis de se programar, mas para certos aplicativos, como data mining, são a melhor solução.

Anúncios