1/18
Sistemas OperacionaisIntrodução - Arquiteturas de SOs
Prof. Carlos Maziero
DInf UFPR, Curitiba PR
Julho de 2020
2/18
Conteúdo1 Sistemas monolíticos
2 Sistemas micronúcleo
3 Sistemas em camadas
4 Sistemas híbridos
5 Arquiteturas avançadas
Máquinas virtuais
Contêineres
Sistemas exonúcleo
Sistemas uninúcleo
3/18
Arquiteturas de SOs
Arquitetura
Forma organizar as várias partes do sistema operacional
Aspectos a considerar:
Isolamento do núcleo
Modularização
Desempenho
Segurança
4/18
Sistemas monolíticos
Mónos (único) + Líthos (pedra) = um bloco único
Todo o núcleo roda em modo privilegiadoSem restrições de acesso entre componentes
Vantagens: desempenho, tamanhoDesvantagens: complexidade, fragilidade
5/18
Sistemas monolíticos
aplicativos
sistema
usuário
hardware
software
hardware
núcleo
syscallsde memória
syscallsde processos
syscallsde arquivos
syscallsde rede
escalonador
sistema dearquivos
alocadorde memória
gerênciade processos
TCP/IP
driverEthernet
driverSATA
driverUSB
controleda MMU
cachingde blocos
syscallsde semáforos
trocas decontexto
aplicação
aplicação
aplicação
aplicação
aplicação
aplicaçãoaplicação
6/18
Exemplo: núcleo Linux
7/18
Sistemas micronúcleo
O núcleo implementa:
espaços de memóriaprotegidos
atividade (thread, ...)
comunicação entreatividades
Ficam fora do núcleo:
políticas de escalonamento
políticas de uso dememória
sistemas de arquivos
protocolos de rede
Vantagens: estabilidade, modularidade
Desvantagens: baixo desempenho
8/18
Sistemas micro-núcleo - Minix 3
microkernel(interrupts, MMU, scheduling, IPC)
fileserver
reinc.server
TCP/IPstack
processmanager
diskdriver
printerdriver
videodriver
audiodriver
shell CC xdmfind diffps
user level
kernel level
drivers
servers
apps
1. req. data
2. req. blocks
3. req. I/O 5. req. memory copy
data
data
4
6
8
data
7. req. memory copy
9/18
Sistemas em camadas
Princípio: Organizar o núcleo em camadas de abstração
Características gerais:
Camada inferior: interface com o hardware
Camadas intermediárias: abstração e gerência
Camada superior: define as chamadas de sistema
Parcialmente usado na prática:
HAL – Hardware Abstraction Layer do Windows
Sub-sistemas de arquivos e de rede (modelo OSI)
10/18
Sistemas híbridos
Misturam características dos anteriores:
Monolítico
Micronúcleo
em camadas
A maioria dos sistemas atuais é híbrida.
11/18
Sistemas híbridos - Windows 2000
Hardware
Kernel mode
Hardware Abstraction Layer (HAL)
Object Manager
Executive Services
Executive
User mode
Integral subsystems Environment subsystems
I/OManager
SecurityReferenceMonitor
IPCManager
VirtualMemoryManager(VMM)
ProcessManager
PnPManager
PowerManager
WindowManager
GDI
Work-stationservice
Serverservice
Security Win32 POSIX OS/2
Win32Application
POSIXApplication
OS/2Application
Kernel mode drivers Microkernel
12/18
Máquinas virtuais
Virtualização
Simular em so�ware um sistema computacional sobre outrosistema.
Um ambiente de máquina virtual consiste de três partes:
Host: contém os recursos reais de hardware e so�ware
Hypervisor: constrói o sistema computacional virtual
Guest: executa sobre o sistema virtual
13/18
Máquinas virtuais
host
guests
hypervisor
hardware
virtual machine virtual machine
kernel
app
app
app
kernel
app
app
app
kernel
hardware
app
app
app
app
app
hypervisor
kernel
appapp
app
guest
host
14/18
Famílias de hipervisores
�anto ao ambiente virtual provido:
HV de aplicação : suporta aplicação convidada (Java, C#)
HV de sistema : suporta SOs convidados (VMWare, VirtualBox)
�anto ao suporte de execução:
HV nativo : executa diretamente sobre o hardware (Xen)
HV convidado : executa sobre um SO hospedeiro (VirtualBox)
15/18
Contêineres
Virtualização do espaço de usuário:
Espaço de usuário dividido em domínios isoladosCada contêiner tem seus próprios recursos
usuários, processos, semáforosárvores de diretórios e arquivosinterface de rede
Cada contêiner tem seus próprios namespacesUID, PID, IP, ports, ...
Contêineres compartilham o mesmo núcleo
Exemplos: FreeBSD Jails, Linux Containers (LXC), Docker
16/18
Contêineres
hardware
kernel
domain 0 domain 1 domain 2 domain 3
Interações e migrações entre domínios são proibidas.
17/18
Sistemas exonúcleo
SO dividido em: Micronúcleo + Biblioteca de serviços
kernel
user
exokernel
virtualmemory
LibOS
filesystem
C compiler
LibOSsubset
customfile
systemnetworkprotocols
high performanceWeb server
libraries
memorypages
diskblocks
networkinterface
18/18
Sistemas uninúcleo
Núcleo, serviços e aplicação executam em modo privilegiado
Usado em appliances para computação em nuvem (CloudOS)
kernel
user
hypervisor
hardware
unikernel
binary C app
libC
unikernel
Java app
Java VM
unikernel
Ruby app
Ruby runtime
virtual machine virtual machine virtual machine