SO - MultiProcessadores
Autor: Tiago Faller | Publicado: 2009-03-10T10:09:00-07:00

O sistema multiprocessado tem a característica de poder possuir mais de um processador, sendo que eles podem compartilhar de um mesmo Sistema Operacional ou cada um possuir seu sistema próprio.Com dois ou mais processadores, se tem:Escalabilidade: Capacidade de aumentar a capacidade computacional com custo menor adicionando outros processadores. (Em computadores com um processador, é necessário trocar o processador);Reconfiguração: Define-se pela capacidade do sistema continuar operando caso um dos processadores falhe, pare de funcionar, etc. Claro que se perderá capacidade computacional, mas isso parece-me meio justo.Balanceamento: É a capacidade de distribuir as aplicações entre os processadores, melhorando o desempenho como um todo.Existem algumas formas distintas de se trabalhar com mais de um processador, eis as principais:Enquanto um processo (que está sendo executado) acessa a memória, os demais devem esperar. Nesse caso, mesmo com muitos processadores não serão alcançados os resultados esperados.Dividindo o espaço de endereçamento em vários módulos, ameniza  o problema de espera, porém o SO deve saber endereçar isso corretamente. Assim, cada processador acessa um módulo, podendo executar mais aplicações ao mesmo tempo.O multiprocessamento mantém todos os conceitos de multiprogramação, porém, aplicadas a vários processadores, isso trouxe novos problemas de concorrência, devido ao acesso mútuo da memória pelos processadores, entre outros.Classificação dos ProcessadoresFortemente Acoplados: O mesmo endereçamento de memória é acessado por várias cpus, além disso, apenas um Sistema Operacional pode controlar os processadores. Eles se dividem conforme a simetria entre processadores, ou seja, se podem ou não executar as mesmas funções:Sistemas Assimétricos (Mestre/Escravo): Existe um processador “mestre” que executa o SO, enquanto os demais, executam apenas aplicações do usuário. Com isso, sempre que um processador “escravo” precisar executar operações de E/S terá de requisitar o serviço ao “mestre”.Tem por principal vantagem o custo e a simplicidade de implementação.A desvantagem é: Se o processador mestre falhar ou parar de funcionar, seu sistema para de funcionar.Sistemas Simétricos(SMP – Simmetric MultiProcessing): Não existe um processador mestre, todos podem executar o SO e as aplicações do usuário. Apenas a inicialização (boot) fica a cargo de um processador específico. A maioria dos Sistemas Operacionais modernos trabalham dessa forma.A principal vantagem se dá ao fato de que se um processador falhar, o sistema continuará funcionando normalmente (apenas com menor desempenho);A desvantagem está no alto valor para implementação desse tipo de sistema.Fracamente Acoplados: Tem dois ou mais processadores conectados através de linhas de comunicação, onde cada um desses sistemas trabalha de forma independente, sendo que cada um deles tem seu(s) próprio(s) processador(es), memória principal e dispositivos de E/S. É uma rede de computadores (LAN) e podem ser classificados como:Sistemas Operacionais de Redes: Cada computador (nó) tem seu próprio SO, hardware e softwares que permitem acesso aos demais nós. Esses nós são totalmente independentes uns dos outros e podem ter Sistemas Operacionais diferentes, funcionam estando conectados à rede ou não, mas caso não estejam conectadas, não têm acesso e nem podem ser acessadas pelas demais máquinas.Sistemas Operacionais Distribuídos: Os nós também possuem SO, memória principal, processador(es) e dispositivos de E/S próprios, porém, relacionam-se de maneira que para o usuário e para as aplicações, esse conjunto de computadores ligados em rede é visto como único sistema, como se a rede simplesmente não existisse.A grande vantagem desse tipo de sistema é o balanceamento de carga, onde o SO escolhe o nó que está com menor carga de processamento para executar determinado programa, esse tipo de sistema também é conhecido como Cluster.A desvantagem está no fato de que se um nó falhar, acaba por comprometer a rede toda, para contornar essa falha, foram desenvolvidos alguns códigos, porém esses são redundantes e acabam por comprometer o desempenho da rede.O sistema operacional UNIX SOLARIS (SUN) trabalha dessa forma em rede.