sistemas operacionais - introdução - arquiteturas de...
TRANSCRIPT
![Page 1: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/1.jpg)
1/18
Sistemas OperacionaisIntrodução - Arquiteturas de SOs
Prof. Carlos Maziero
DInf UFPR, Curitiba PR
Julho de 2020
![Page 2: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/2.jpg)
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
![Page 3: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/3.jpg)
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
![Page 4: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/4.jpg)
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
![Page 5: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/5.jpg)
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
![Page 6: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/6.jpg)
6/18
Exemplo: núcleo Linux
![Page 7: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/7.jpg)
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
![Page 8: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/8.jpg)
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
![Page 9: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/9.jpg)
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)
![Page 10: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/10.jpg)
10/18
Sistemas híbridos
Misturam características dos anteriores:
Monolítico
Micronúcleo
em camadas
A maioria dos sistemas atuais é híbrida.
![Page 11: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/11.jpg)
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
![Page 12: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/12.jpg)
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
![Page 13: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/13.jpg)
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
![Page 14: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/14.jpg)
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)
![Page 15: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/15.jpg)
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
![Page 16: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/16.jpg)
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.
![Page 17: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/17.jpg)
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
![Page 18: Sistemas Operacionais - Introdução - Arquiteturas de SOswiki.inf.ufpr.br/maziero/lib/exe/fetch.php?media=... · Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos](https://reader033.vdocuments.pub/reader033/viewer/2022043009/5f9e6f176e38b90741417629/html5/thumbnails/18.jpg)
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