18
1/18 Sistemas Operacionais Introdução - Arquiteturas de SOs Prof. Carlos Maziero DInf UFPR, Curitiba PR Julho de 2020

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

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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