Na ordem: Sistemas SMP e NUMA.
Os sistemas fracamente acoplados consistem em sistemas computacionais independentes, cada um com sua UCP, sua memória, seus dispositivos de E/S e seu sistema operacional.
Estes sistemas são interligados por uma linha de comunicação, trocando dados entre si, e operando de forma a termos uma imagem única do sistema.
São também conhecidos como sistemas multicomputadores.
Logo, a memória é distribuída, e deve haver um compartilhamento de dados.
Hoje em dia, a quase totalidade dos supercomputadores do mundo são sistemas fracamente acoplados, com uma quantidade imensa de UCPs (chegando a alguns milhões de núcleos), interligados por uma rede de altíssima velocidade.
O custo é o principal fator – é mais barato montar sistemas dessa forma.
Programa que controla o funcionamento do sistema computacional, funcionando como interface entre usuários e a máquina. Gerencia o uso de recursos como UCPs, memória e dispositivos de E/S. Suas rotinas são executadas de forma concorrente, conforme eventos no sistema.
Facilidade de acesso: Organiza o acesso dos usuários e programas ao hardware.
Compartilhamento seguro: Controla o uso simultâneo dos recursos de forma protegida.
Existem diversos S.O.s para diferentes plataformas: smartphones, tablets, desktops, servidores, mainframes, supercomputadores, sistemas embarcados, entre outros.
Computadores dedicados a tarefas específicas, com requisitos fixos. Otimizados em tamanho, recursos e custo. Não são facilmente reconfiguráveis para outras tarefas.
Software especializado que controla o hardware dos sistemas embarcados. Geralmente gravado em ROM e muitas vezes é o próprio sistema operacional do dispositivo.
Sistemas embarcados são encontrados em: smartphones, impressoras, roteadores, micro-ondas, TVs, videogames, geladeiras, etc.
Sistemas operacionais embarcados: TinyOS, FreeRTOS, VxWorks, Tizen, RTLinux, Contiki, OpenWRT, entre outros.
O computador é visto como uma máquina em camadas:
O usuário interage com níveis superiores, que se comunicam com os inferiores.
Os níveis são interdependentes e escondem complexidades inferiores. Uma máquina virtual é um exemplo onde o hardware é simulado logicamente.
Combina hardware (níveis 0 e 1) e software (níveis 2 a 5).
Classificados de acordo com a evolução do hardware e suas aplicações:
Executam apenas um programa por vez. São simples e causam subutilização do computador.
Exemplo: MS-DOS. São sistemas monousuário.
Permitem a execução concorrente de vários programas. Reduzem a ociosidade do sistema.
Podem ser monousuário (um usuário por vez) ou multiusuário (vários usuários simultâneos).
Um S.O. pode suportar mais de um desses modelos.
Executam tarefas sem interação do usuário. Programas eram organizados em filas e processados automaticamente.
Usado para: cálculos, compilações, backups. Hoje, esse modelo é apenas simulado.
Divide o tempo do processador em "fatias" (time slices). Os programas são alternados em execução de forma circular, permitindo a interação simultânea de usuários.
Muito comum nos sistemas atuais.
Resposta a estímulos precisa ocorrer dentro de limites rígidos. É previsível e altamente confiável.
Não usam time slices, mas prioridades de tarefas.
Aplicações: controle de tráfego, usinas, aviônica, automação crítica.
Exemplos: FreeRTOS, VxWorks, QNX.
Gerenciam várias UCPs trabalhando em paralelo. O S.O. deve distribuir tarefas de forma eficiente entre os núcleos.
A divisão das tarefas permite a execução concorrente e aproveitamento total dos recursos.