1º ano

ACSO

2º Trimestre

Resumo de Sistema Operacional

Sistemas Operacionais: Conceitos Básicos e Tipos

Sistemas SMP e NUMA

Na ordem: Sistemas SMP e NUMA.

Sistemas Fracamente Acoplados

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.

Memória Distribuída

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.

Sistema Operacional (S.O.)

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.

Funções básicas

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.

Exemplos de sistemas

Existem diversos S.O.s para diferentes plataformas: smartphones, tablets, desktops, servidores, mainframes, supercomputadores, sistemas embarcados, entre outros.

Sistemas embarcados

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.

Firmware

Software especializado que controla o hardware dos sistemas embarcados. Geralmente gravado em ROM e muitas vezes é o próprio sistema operacional do dispositivo.

Exemplos de uso

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.

Máquina de níveis

O computador é visto como uma máquina em camadas:

  • Nível 0: Hardware
  • Nível 1: Sistema Operacional

O usuário interage com níveis superiores, que se comunicam com os inferiores.

Máquina de níveis (cont.)

Os níveis são interdependentes e escondem complexidades inferiores. Uma máquina virtual é um exemplo onde o hardware é simulado logicamente.

Exemplo de máquina de seis níveis

Combina hardware (níveis 0 e 1) e software (níveis 2 a 5).

Tipos de sistemas

Classificados de acordo com a evolução do hardware e suas aplicações:

  • Monotarefa / Monoprogramáveis
  • Multitarefa / Multiprogramáveis
  • Múltiplos processadores

Sistemas monotarefa

Executam apenas um programa por vez. São simples e causam subutilização do computador.

Exemplo: MS-DOS. São sistemas monousuário.

Sistemas multitarefa

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).

Classificação dos multitarefa

  • Batch (em lote)
  • Tempo compartilhado
  • Tempo real

Um S.O. pode suportar mais de um desses modelos.

Batch (em lote)

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.

Tempo compartilhado

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.

Tempo real

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.

Múltiplos processadores

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.