Você está na página 1de 57

Conceito de Sistema Operativo (1/4)

Visão Abstrata dos Componentes de um Sistema de Computação

user
1
user
2
user
3
… user
n

compiler assembler text editor … database


system

system and application programs

operating system

computer hardware

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 2/ 66


Conceito de Sistema Operativo (2/4)

Componentes de um Sistema de Computação

1 Hardware - fornece os recursos de computação básicos (CPU,


memória, dispositivos de Entrada/Saída (E/S))

2 Sistema Operativo - controla e coordena a utilização do


hardware pelos diversos programas

3 Aplicações - definem formas através das quais os recursos do


sistema são usados para resolver os problemas dos utilizadores
(compiladores, bases de dados, editores de texto, folhas de
cálculo, browsers, etc.)
4 Utilizadores (pessoas, máquinas, outros computadores)

José Rufino - rufino@ipb.pt (ESTiG-IPB) Sistemas Operativos - Unidade Ano Letivo de 2020 / 2021 3 / 66
Conceito de Sistema Operativo (3/4)
Sistema Operativo

intermediário entre o utilizador e o hardware do computador


fornece o ambiente adequado à execução de programas

Objectivos de um Sistema Operativo


executar programas dos utilizadores, ajudando a resolver problemas

tornar o Sistema de Computação conveniente de usar

utilizar o hardware de forma eficiente

objetivos relativamente antagónicos...

objetivos com pesos diferentes consoante o tipo de sistema de


computação (servidores, desktops, disp. móveis, sist. embebidos, ...)
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 4/ 66
Conceito de Sistema Operativo (4/4)
Perspetivas do Sistema Operativo

Perspetiva do Utilizador: o SO deve fornecer um interface


conveniente (GUIs, acesso remoto, partilha de periféricos, ...) e
bom desempenho na exploração do hardware

Perspetiva do Sistema de Computação:


alocador de recursos – gere e reserva recursos (conflitos, otimizações)
programa de controlo – controla a execução dos programas dos
utilizadores e a operação dos dispositivos E/S (operações legais, ...)

Constituintes do SO
a definição do software que constitui o SO não é consensual ...
Núcleo (Kernel) – o único programa em execução “contínua”
Núcleo + Aplicações – Windows*, Mac OS, Linux, UNIXes, ...
Núcleo + Middleware (frameworks de desenvolvimento de apps, com
suporte a bases de dados, multimédia, gráficos, ...) – iOS, Android, ...
José Rufino - rufino@ipb.pt (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 5 / 66
Organização e Operação do Sist. de Computação (1/13)

Visão Abstrata do Hardware de um Sistema de Computação

mouse keyboard printer monitor


disks on-line

disk graphics
CPU USB controller
controller adapter

memory

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 6/ 66


Organização e Operação do Sist. de Computação (2/13)
//Arranque do Sistema

rotinas de arranque (bootstrap) em ROM ou EEPROM (firmware)

EEPROM = Electrically Erasable Programmable Read-Only Memory

efetuar a inicialização dos diversos componentes do sistema

localizar o SO, carregá–lo para RAM e transferir para ele o controlo

Linux/Unix: após o arranque, o kernel lança o processo init, raíz de uma


hierarquia em árvore, formada por todos os processos do sistema

alguns processos (processos de sistema, ou daemons) tornam-se


residentes, fornecendo serviços que complementam os do kernel

o SO permanece em “repouso”, aguardando a ocorrência de eventos

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 7/ 66


Organização e Operação do Sist. de Computação (3/13)

Operação do Sistema
CPU(s), dispositivos E/S e RAM, interligados por
barramentos os dispositivos E/S são geridos por
controladores específicos
um controlador pode controlar vários dispositivos (e.g., SATA,
USB)
um controlador dispõe de memória local e de um
microprocessador
um controlador move dados entre a memória local e o(s)
dispositivo()s)
a CPU e os controladores E/S trabalham em simultâneo
(nalguns casos - DMA - competindo por ciclos de acesso à
memória RAM)
controlo da atividade E/S: polling, interrupções, DMA
device driver: módulo do SO que interage com um dispositivo
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 8/ 66
Organização e Operação do Sist. de Computação (4/13)
Operação do Sistema

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 9/ 66


Organização e Operação do Sist. de Computação
(5/13)
Execução de Instruções: modelo de Von Neumann

fetch: a UC traz da memória, para o IR, a instrução apontada pelo PC


decode: a UC descodifica a instrução (podendo haver + acessos à
memória) execute: a instrução é executada (podendo haver + acessos
à memória) este ciclo repete-se para a próxima instrução apontada
pelo PC
José Rufino - rufino@ipb.pt (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 10 / 66
Organização e Operação do Sist. de Computação (6/13)
E/S controlada por Interrupções
um programa pede ao SO uma operação E/S associada a um dispositivo um
device driver programa o microprocessador do controlador do dispositivo o
controlador despoleta a transferência de dados de/para a memória local
o controlador avisa o device driver da conclusão da operação via interrupção
o device driver transfere dados do dispositivo para a RAM (pedido foi de
leitura), ou fica apenas a saber da conclusão do pedido (se foi de escrita)

José Rufino - rufino@ipb.pt (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 11 / 66
Organização e Operação do Sist. de Computação (7/13)

E/S controlada por Interrupções

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 12 / 66


Organização e Operação do Sist. de Computação (8/13)
Interrupcões
as interrupções ocorrem de forma assíncrona (a qualquer momento)
internas (CPU), do HW (periféricos), ou de SW (system calls)
assinalam um evento que carece de tratamento pelo sistema operativo
interrupção ⇒ a CPU suspende o processamento em curso, executa
uma rotina de serviço, após o que retoma o processamento anterior
como determinar que rotina de serviço executar ?
indiretamente, através de uma rotina genérica (switch);
lento diretamente, através de um vetor de interrupções;
muito rápido pressupõe um id único (número) por cada
interrupção diferente
o id único da interrupção, i , é um índice do vetor de interrupções
a célula i do vetor aponta para a rotina de serviço da interrupção. i
antes da rotina executar, é feita uma cópia do PC; a própria rotina
salvaguarda outros registos que irá modificar, recuperando o seu valor
no fim da execução, após o que o PC original é também recuperado

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 13 / 66


Organização e Operação do Sist. de Computação (9/13)
Interrupcões (cont.)

Geração e Identificação

Deteção

Atendimento →
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 14 / 66
Organização e Operação do Sist. de Computação (10/13)
Interrupcões (cont.)

inibição: nonmaskable interrupts - interrupções que nunca


podem ser ignoradas; maskable interrupts - interrupções
ignoráveis (desligáveis)

prioridades: interrupções mais prioritárias podem


interromper o tratamento em curso de interrupções menos
prioritárias

chaining: cada célula do vetor de interrupções aponta para uma


lista de rotinas; útil quando há mais interrupções que células no
vetor

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 15 / 66


Organização e Operação do Sist. de Computação (11/13)

Acesso Direto à Memória (DMA)


alternativa à E/S guiada por interrupções, para minimizar as
interrupções usada por dispositivos E/S que movimentam grandes
quantidades de dados

o controlador do dispositivo E/S transfere blocos de dados entre a


sua memória local e a RAM, com intervenção mínima da CPU
um processo cliente solicita ao SO uma transferência de dados
o SO programa os registos do controlador de DMA com a
origem, destino e dimensão dos dados, e pede-lhe para iniciar a
transferência
entretanto, a CPU prossegue a execução de outros processos,
competindo com o controlador de DMA no acesso à memória
finalizada
a transferência, o controlador de DMA notifica a CPU

José Rufino - rufino@ipb.pt (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 16 / 66
Organização e Operação do Sist. de Computação (12/13)
Acesso Direto à Memória (DMA)

Controlador DMA

Workflow do DMA →

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 17 / 66


Organização e Operação do Sist. de Computação (13/13)

Operação do Sistema – Resumo

instruction execution

cache
cycle
instructions
thread of execution and
data movement
data

CPU (*N)
I/O request

interrupt

DMA
data

memory

device
(*M)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 18 / 66


Protecção do Hardware (1/4)
Operação Dual-Mode / Multimode
para garantir a execução correta do sistema operativo e das aplicações é
necessário suporte do hardware a pelo menos dois modos de operação:
kernel/supervisor/monitor/sistema/privilegiado – neste modo, o
hardware trabalha a pedido do SO, sem restrição de operações
(todas as instruções da ISA do CPU estão disponíveis para execução)
utilizador – execução a pedido do utilizador, logo com restrições
(apenas um subconjunto das instruções da ISA podem ser executadas;
as restantes são consideradas privilegiadas - só executáveis pelo SO)
modo atual de execução definido por um bit de modo na CPU (em
virtualização são necessários vários bits – multimode
no arranque do sistema, o modo kernel é ativado automaticamente; e
sempre que o sistema operativo executa, é também esse o modo ativo
antes de atribuir CPU a um processo normal, o SO ativa o modo utilizador;
regresso ao modo kernel: i) se ocorrer uma interrupção oriunda do hardware;
ii) se o processo normal tentar executar uma instrução privilegiada

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 20 / 66


Protecção do Hardware (2/4)
Instruções Privilegiadas
user process
user mode
(mode bit = 1)
user process executing calls system call return from system call

trap return
kernel mode bit = 0 mode bit = 1
kernel mode
(mode bit = 0)
execute system call

um processo normal solicita uma operação privilegiada invocando uma


chamada ao sistema (system call), o que provoca uma interrupção (trap –
interrupção gerada por sofware), e consequente mudança para modo kernel
operações privilegiadas: i) interação com periféricos (E/S); ii) gestão de
interrupções; iii) mudança do bit de modo; iv) gestão do timer da CPU (ver a
seguir); v) gestão da memória (ver a seguir); vi) gestão das caches; vii) etc.
pergunta:
e se um processo normal pudesse modificar o vetor de interrupções ?

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 21 / 66


Proteção do Hardware (3/4)
Protecção E/S
os processos normais só conseguem executar operações E/S
indiretamente, através da invocação de chamadas ao sistema

Protecção da CPU
evita que um processo normal monopolize para si o tempo de CPU
mecanismo básico: assente num timer (dispositivo temporizador),
que interrompe a CPU após um intervalo de tempo configurável
o timer dispõe de um contador, decrementado a cada pulso do relógio
o SO inicializa o contador antes de atribuir a CPU a um processo
quando o contador atinge o valor 0, o timer gera uma interrupção
a programação do timer assenta em instruções privilegiadas ...
pergunta: se assim não fosse, o que poderia acontecer ?
o timer é tipicamente usado para concretizar time–sharing
o timer pode também ser usado para contagem de tempo

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 22 / 66


Protecção do Hardware (4/4)
Protecção de Memória
objetivo: proteger as zonas de memória afetas ao SO e aos utilizadores
mecanismo básico: endereços acessíveis definidos com base em registos
registo base – contém o menor endereço físico legal
registo limite – contém a dimensão da gama
as instruções de carregamento dos registos são privilegiadas
qualquer acesso à memória deve ser intercetado e validado pela CPU
o SO executa em modo kernel ⇒ acesso ilimitado a toda a memória
0

monitor base base + limit


256000

job 1

300040 300040
address yes yes
job 2
base register
CPU  <
420940 120900 no no
limit register
job 3

880000

job 4
trap to operating system
1024000 monitor—addressing error memory

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 23 / 66


Sistemas e Ambientes Especializados (1/10)
Sistemas Embebidos
eletrónica automóvel, eletrodomésticos, domótica, robótica, etc. executam
funcionalidades muito específicas e têm interfaces limitadas os SOs usados
são minimalistas, ou versões mais leves de SOs genéricos

Sistemas de Tempo Real (usados, por vezes, em sistemas embebidos)


hard real–time systems: i) garantem a realização das tarefas em intervalos de
tempo bem definidos; ii) armazenamento secundário limitado ou ausente
soft real–time systems: i) toleram (pequenos) atrasos na execução das suas
tarefas; ii) exploração de prioridades / extensões real-time em SOs genéricos
Sistemas Multimédia
orientados ao processamento de áudio e vídeo (video-on-demand, streaming)
Sistemas Handheld
adequados às especificidades de dispositivos móveis (PDAs, telemóveis) -
CPUs lentos, ecrans reduzidos, input limitado, largura de banda limitada

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 26 / 66


Sistemas e Ambientes Especializados (2/10)

Sistemas Distribuídos
conjunto de sistemas fisicamente separados, possivelmente heterogéneos,
interligados em rede, com o propósito de elevar os níveis de funcionalidade,
desempenho, fiabilidade e disponibilidade (face a um sistema isolado)
os membros têm a noção de que estão interligados de forma cooperativa,
criando a ilusão de que existe um só sistema controlando a/operando na rede
”sistemas que falham por causa de um membro de que nunca se ouviu falar”
exemplos: o conjunto dos servidores DNS, o sistema de ficheiros Google FS

Sistemas Operativos de Rede


capazes de trocar dados com outros sistemas ligados à mesma rede, mas
agindo de forma + autónoma em comparação com os Sistemas Distribuídos
no passado: Novell Netware, Windows for Workgroups, Windows NT;
atualmente: qualquer sistema operativo de linhas desktop ou servidor

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 27 / 66


Sistemas e Ambientes Especializados (3/10)

Sistemas Cliente-Servidor
forma de Sistema distribuído em que sistemas clientes acedem, através
da rede, a recursos – dados ou aplicações – de um ou mais sistemas
servidores
cenários típicos: servidores de bases de dados, servidores web,
servidores de ficheiros, servidores de aplicações/terminais/VDI,
servidores de jogos on-line

client
desktop

client
Server Network
laptop

client
smartphone

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 28 / 66


Sistemas e Ambientes Especializados (4/10)
Sistemas Peer-to-Peer (P2P)
forma de Sistema distribuído em que os membros são pares entre si (todos
são clientes e servidores, em simultâneo) e a composição assume-se volátil

client

client client

client client

nos primeiros sistemas P2P (*), o registo da composição e dos recursos


oferecidos por cada membro era centralizado, limitando a escalabilidade
posteriormente: pesquisa por difusão (**); pesquisa distribuída (***)
Distributed Hash Tables (DHTs): paradigma de localização distribuída
exemplos: Napster (*), Gnutella (**), BitTorrent (***)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 29 / 66


Sistemas e Ambientes Especializados (5/10)
Virtualização
Virtualização: técnica que permite a um SO (guest) executar no seio
de outro SO (host), como se fosse mais uma aplicação deste em
execução
application application application application

guest operating guest operating guest operating


system system system
(free BSD) (W indows NT) (W indows XP)
virtual CPU virtual CPU virtual CPU
virtual memory virtual memory virtual memory
virtual devices virtual devices virtual devices

virtualization layer

host operating system


(Linux)

hardware
CPU memory I/O devices

explora vários modos de operação disponíveis nas CPUs modernas


vantagens: > rentabilização do HW, isolamento, testes/simulações ...
desvantagens: < desempenho, HW + exigente, ponto único de falha ...
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 30 / 66
Sistemas e Ambientes Especializados (6/10)
Virtualização (cont.)
Emulação: variante em que o código original foi gerado para uma arquitetura
diferente daquela em que vai ser executado (e.g., PowerPC vs Intel x86)
o impacto da tradução em plena execução pode ser considerável ...
Interpretação: variante onde o código fonte não chega a ser compilado para
código máquina de uma arquitetura real, mas sim de uma ”máquina virtual”
exemplo: Java compilado em byte-code, executado numa JVM;
vantagem: portabilidade das aplicações (write once, run
anywhere)

Javaprogram JavaAPI
class loader
.class files .classfiles

Java
interpreter

host system
(Windows, Linux,etc.)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 31 / 66


Sistemas e Ambientes Especializados (7/10)
Computação em Nuvem
extensão lógica da virtualização, que é usada como tecnologia de base
agrega e fornece computação, armazenamento, plataformas/ambientes de
desenvolvimento de aplicações, aplicações/serviços, on-demand, self-service,
acessíveis via rede; recursos elásticos; utilização contabilizável (paga/grátis)
tipos de nuvens:
public cloud: acessível via Internet, paga; free-tier limitado
private cloud: operada por uma instituição, p/ uso interno
hybrid cloud: inclui ambas as componentes pública e privada
tipos de serviços prestados:
Software as a Service (SaaS): aplicações/serviços end-user/turnkey;
exemplos: Google Apps, Office 360, Dropbox, Salesforce CRM, ...
Platform as a Service (PaaS): ambientes de desenvolvimento (e.g., BDs,
web services); exemplo: Google App Engine, Amazon Heroku
Infrastructure as a Service (IaaS): acesso a servidores de computação
(virtuais) e a armazenamento, escaláveis/elásticos; exemplos: Amazon
EC2 e S3, Google Compute Engine, Microsoft Azure, Rackspace

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 32 / 66


Sistemas e Ambientes Especializados (8/10)

Computação em Nuvem (cont.)


Infrastructure as a service (IaaS) de uma Public Cloud - exemplo:

Internet
customer
requests

cloud
firewall customer
interface
load balancer cloud
management
commands

virtual virtual cloud


storage
machines machines managment
services

servers servers

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 33 / 66


Sistemas e Ambientes Especializados (9/10)
Sistemas de Codigo Aberto (Open-Source)
sistemas cujo código fonte está disponível para consulta e modificação
exemplo paradigmático: Linux (kernel e a maioria das aplicações);
contra-exemplo (closed-source): SOs da família Microsoft Windows
(componentes do SO e aplicações distribuídas em formato binário)
abordagem híbrida: Apple Mac OS X e iOS (só o kernel Darwin
aberto)
até ao início dos anos 80, o código dos sistemas UNIX era aberto
em 1985, Richard Stallman cria a Free Software Foundation (FSF),
com o objetivo de desenvolver e proteger o software livre; este
caracteriza-se por:
poder ser executado para qualquer
propósito poder ser estudado e modificado
sem restrições poder ser redistribuído
(copiado) sem limites
atenção: software livre (free speech) /= software grátis (free beer)
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 34 / 66
Sistemas e Ambientes Especializados (10/10)

Sistemas de Codigo Aberto (cont.)


para proteger legalmente o software livre, foi criada a General Public License
(GPL); esta licença inclui um conjunto de 3 restrições aplicadas ao software:
1 pode ser livremente distribuído / comercializado, mas o distribuidor
tem de avisar os utilizadores / clientes dos termos da GPL
2 o software eventualmente derivado de software protegido pela GPL terá de
estar também abrangido pela GPL
3 o códigofonte de todo o software protegido pela GPL deve seranexado
ao software distribuído / comercializado ou ser de acessopúblico
a GPL foi criada em 1989 para proteger o software criado no âmbito do projeto
GNU (GNU is Not Unix); este pretendia desenvolver uma alternativa livre ao
kernel do UNIX e apps satélite; ao longo dos anos surgiram muitas apps GNU,
mas o kernel acabou por ser o Linux (1992, v0.12, GPLv2)
hoje em dia, écomum falar em sistemas GNU/Linux (distribuiçõesLinux)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 35 / 66


Organização do Armazenamento (1/7)

Hierarquia de Armazenamento

Level 1 2 3 4 5

Name registers cache main memory solid state disk magnetic disk

Typical size < 1KB < 16MB < 64GB < 1TB < 10TB

Implementatio custom memory on-chip or CMOS SRAM flash memory magnetic disk
n technology with multiple off-chip
ports CMOS CMOS
SRAM
Access time (ns) 0.25 - 0.5 0.5 - 25 80 - 250 25,000 - 50,000 5,000,000

Bandwidth (MB/sec) 20,000 - 100,000 5,000 -10,000 1,000 - 5,000 500 20 - 150

Managed by compiler hardware operating system operating system operating system

Backed by cache main memory disk disk disk or tape

os vários sistemas de armazenamento formam uma hierarquia,


definida segundo a velocidade, custo, volatilidade e capacidade
desses sistemas

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 41 / 66


Organização do Armazenamento (2/7)
Estruturas de Armazenamento:

Registos: unidades básicas de armazenamento, localizadas na CPU;


número e capacidade limitados; acesso instantâneo (tipica/ 1 ciclo)
Caches: memórias intermédias, concebidas para minimizar acessos à
memória principal (tiram partido da localidade de referências)
o acesso à RAM pode consumir vários ciclos de CPU ⇒ utilização de
cache(s) para ”alimentar” a CPU, em paralelo com o acesso à RAM
Memória Principal (RAM):
array de bytes, ou palavras (grupos de bytes), direta/ endereçáveis a
única memória de “grande” dimensão à qual a CPU acede direta/
acesso explícito: instruçoes do tipo LOAD/STORE
acesso implícito: leitura da próxima instrução e seus operandos

todas estas memórias são voláteis (perdem o seu conteúdo na ausência de


corrente elétrica) e insuficientes para albergar a totalidade de um programa
(registos e caches) ou até mesmo todos os programas pretendidos (RAM)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 42 / 66


Organização do Armazenamento (3/7)
Estruturas de Armazenamento (cont.)
Memória Secundária – Discos Rígidos
não-volátil (persistente); elevada capacidade (atualmente: TBs)
conjunto de pratos rígidos de metal/vidro, cobertos por um material
magnético regravável, suspensos num eixo comum, em rotação
cabeças de leitura/escrita suspensas a distâncias mínimas da
superfície as superfícies dos pratos dividem-se em pistas e estas
em sectores acesso aleatório (direto e independente) a qualquer
sector

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 43 / 66


Organização do Armazenamento (4/7)

Estruturas de Armazenamento (cont.)


Memória Secundária – Discos de Estado Sólido (SSDs)
não-volátil (persistente); de média capacidade de armazenamento
maioritariamente baseados em memórias de tipo FLASH ou similares (+)
> rapidez, < rúıdo e < consumo energético, face aos discos rígidos (+)
s/ partes móveis: ”imunes”a falhas mecânicas (não às eletrónicas) (-):
relação custo/capacidade menos favorável, face aos discos rígidos (-):
durabilidade/fiabilidade incerta/limitada, face aos discos rígidos
(-): desempenho assimétrico: velocidade leitura > escrita >> remoção

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 44 / 66


Organização do Armazenamento (5/7)

Estruturas de Armazenamento (cont.)


Memória Terciária – Discos O´pticos, Fita Magnética
persistente; longa duração; grande/enorme capacidade (GBs/TBs)
suportes apropriados para cópias de segurança (backups)
acesso lento; direto para CDs/DVDs, sequencial para fitas
boas taxas de transferência, depois de iniciado o acesso
near-line (média óptico), ou off-line (fita magnética)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 45 / 66


Organização do Armazenamento (6/7)
Caching
cópia temporária dos dados, de um suporte mais lento (mas de maior
capacidade), para um outro mais rápido (mas de menor capacidade)
as caches são alimentadas por instruções ou dados de acesso recente ou
expectável (i.e., tiram partido do princípio da localidade de referências)
o correto dimensionamento das caches e a escolha adequada do algoritmo de
substituição podem assegurar taxas de acerto entre 80% a 99%
na hierarquia de armazenamento, um nível funciona como cache do anterior o
acesso aos registos da CPU precede o acesso às caches L1/L2/L3
o acesso às caches L1/L2/L3 precede o acesso à RAM
o acesso à RAM precede o acesso ao Disco, etc.
movimentação de dados entre os níveis da hierarquia de armazenamento:
implícita: diretamente controlada pelo hardware, sem intervenção do
SO (e.g., de uma cache L1 para os registos da CPU);
explícita: com intervenção do SO (e.g., pedido do SO ao controlador
do Disco para transferir dados para a RAM através de DMA)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 46 / 66


Organização do Armazenamento (7/7)
Caching (cont.)
numa hierarquia de armazenamento há replicação de dados em vários níveis

magnetic main hardware


A A cache A
disk memory register

num cenário com apenas um processo este esquema não levanta


dificuldades: será sempre acedida a cópia no mais alto nível da hierarquia
num ambiente multitarefa, é preciso garantir que todos os processos
interessados em A tenham acesso à cópia mais recente
num sistema multiprocessador o cenário agrava-se porque o nível mais alto da
hierarquia (registos da CPU e memórias cache) encontra–se representado em
cada processador ⇒ necessidade de algoritmos de coerência das caches
num sistema distribuído a situação é ainda mais complexa (e.g., replicação
do sistema de ficheiros ⇒ necessidade de algoritmos de gestão de
réplicas)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 47 / 66


(*) Arquitetura do Sistema de Computação (1/7)

Sistemas Monoprocessadores
dominantes, atéháalguns anos atrás sistemas
com uma sóCPU, de uso genérico

(1 CPU) + (µCPUs especializados) nãotornam o sistema multiprocessador !


Sistemas Multiprocessadores
sistemas com mais de uma CPU, de uso genérico
sãosistemas estreitamente agregados (tightly coupled) – as CPUs partilham a
RAM e o relógio; comunicação entre CPUs através da memória partilhada
vantagens:
maior throughput (nº de processos que completam a sua execuçãopor
unidade de tempo); sobrecarga de gestão, competição por recursos ... boa
razão custo / benefícioface a múltiplos sistemas monoCPU
maior fiabilidade: degradação graciosa, tolerânciaa falhas

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 48 / 66


Arquitetura do Sistema de Computação (2/7)

Sistemas Multiprocessadores (cont.)

CPU 0 CPU 1 CPU 2

registers registers registers

cache cache cache

memory

CPU core0 CPU core1

registers registers

cache cache

memory

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 49 / 66


Arquitetura do Sistema de Computação (3/7)
Sistemas Multiprocessadores
(cont.) Sistemas Multinúcleo
(Multicore)
integram, num só chip, dois ou mais núcleos de execução (cores)
>proximidade entre núcleos ⇒ > desempenho sem necessidade de
frequências mt. elevadas ⇒ < consumo e < custo de produção
> paralelismo potencial face aos sistemas multiproc. tradicionais
Sistemas Blade
integram, no mesmo chassis, dois ou mais sistemas, em formato fino
os sistemas podem ser multiprocessadores e/ou multinúcleo
cada sistema executa, de forma independente, o seu próprio SO

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 50 / 66


Arquitetura do Sistema de Computação (4/7)

Sistemas Multiprocessadores
(cont.) (Im)Paridade das CPUs:
multiproc. simétrico (SMP): cada CPU executa uma cópia ≈ do SO
multiproc. assimétrico: CPUs com /=s papéis (e.g., mestre e escravos)

Tipos de Acesso à RAM:


Uniform Memory Access (UMA): o acesso a qualquer região da RAM, a
partir de qualquer núcleo ou CPU, consome um tempo semelhante Non-
Uniform Memory Access (NUMA): tempos de acesso diferentes (ver, por
exemplo, a placa-mãe com suporte a 4 CPUs)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 51 / 66


Arquitetura do Sistema de Computação (5/7)
Sistemas Agregados (Clusters)
agregam dois ou mais sistemas, que co-operam com o mesmo fim
vantagens: maior throughput, maior fiabilidade, partilha de recursos
são sistemas “folgadamente” agregados (loosely coupled systems)
cada CPU associada a uma memória local específica
CPUs comunicam entre si através de redes locais
o armazenamento secundário disperso pelos vários sistemas pode ser
unificado através de sistemas de ficheiros paralelos / distribuídos por
vezes, está presente uma pool externa de armazenamento
secundário, acessível a todos os nós – SAN (storage-area-network)

interconnect interconnect
computer computer computer

storage area
network

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 52 / 66


Arquitetura do Sistema de Computação (6/7)
Sistemas Agregados (cont.)
garantem elevada disponibilidade de serviços críticos
asymmetric clustering: alguns sistemas operam em hot-standby mode,
monitorizando o(s) outro(s) e assumindo o seu papel em caso de falha symmetric
clustering: todos os sistemas se monitorizam e correm apli- cações; em caso de
falha, os sobreviventes prosseguem as aplicações
providenciam balanceamento de carga, assegurando níveis de
resposta
um mesmo serviço é suportado por um conjunto de servidores os
acessos dos clientes são espalhados pelos vários servidores

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 53 / 66


Arquitetura do Sistema de Computação (7/7)
Sistemas Agregados (cont.)
possibilitam computação de elevado desempenho (HPC)
pressupõe a paralelização prévia das aplicações a executar
o tempo de execução paralelo será uma fração do sequencial baseados
em múltiplos sistemas de uso comum (clusters Beowulf), ou sistemas
constrúıdos com o melhor equipamento disponível à data (ver a lista dos
melhores clusters HPC em http://www.top500.org)

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 54 / 66


Virtualização (1/11)
Hardware/System Virtualization
corresponde ao conceito tradicionalmente associado à Virtualização
suporta /=s ambientes de execução (VMs) na mesma máquina real,
criando a ilusão de que cada um corresponde a uma máquina real
uma VM apresenta um interface similar ao do hardware real, de forma a
que nessa máquina se possa executar um SO guest e suas aplicações
um SO host/hypervisor irá partilhar o HW de base pelas várias VMs

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 55 / 66


Virtualização (2/11)
Process/Application Virtualization
process/application VMs: permitem executar aplicações para arquiteturas
virtuais (i.e., simuladas por software, sem implementações reais/físicas)
fornecem um ambiente de execução de alto nível e multiplataforma
-independente do hardware e do SO
implementação à custa de interpretadores
- menor desempenho; melhorável com compilação just-in-time
exemplos: Java Virtual Machine (JVM) para a linguagem Java,
Common Language Runtime (CLR) para a .NET Framework

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 56 / 66


Virtualização (3/11)
Hardware/System Virtualization – Tipos de Hypervisores
Tipo 1 – corre diretamente por cima do HW; suporta VMs nativas
Tipo 2 – corre no seio de um SO normal; suporta VMs hospedadas

processes

processes

processes processes

programming
interface kernel kernel kernel

VM1 VM2 VM3


kernel
virtual machine
manager
hardware
hardware

(a) (b)

application application application application

guest operating guest operating guest operating


system system system
(free BSD) (Windows NT) (Windows XP)
virtual CPU virtual CPU virtual CPU
virtual memory virtual memory virtual memory
virtual devices virtual devices virtual devices

virtualization layer

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 57 / 66


Virtualização (4/11)
Hardware/System Virtualization – Vantagens /
Potencialidades maior rentabilização do HW, pela sua partilha por
várias VMs consolidação de muitos serviços em poucos servidores
maior taxa de utilização de equipamento oneroso
diminuição de custos energéticos e ambientais
isolamento e protecção: cada VM é isolada/protegida das outras falhas
ou quebras de segurança naturalmente “auto-contidas” ...
... mas, na prática, esse isolamento pode ser virtual/fictício: as VMs
partilham, frequente/, volumes de armazenamento e redes de dados
portabilidade, disponibilidade, balanceamento de carga
VMs são facilmente movidas/copiadas
migração/replicação de VMs em tempo real
desenvolvimento/teste de software, incluindo multiplataforma
simulação de cenários de deployment de novas aplicações ou updates
experimentação/investigação de sistemas operativos; suporte a formação

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 58 / 66


Virtualização (5/11)

Hardware/System Virtualization – Desvantagens / Limitações


oferecem, necessariamente, < desempenho que uma máquina real
processos CPU-bound: desempenho próximo (>95%) do nativo
processos IO-bound: penalizações mais notórias, em especial no acesso
a armazenamento secundário (mitigação com SSDs, passthrough, etc.)
certas plataformas de virtualização exigem hardware certificado
e ferramentas sofisticadas de gestão, logo maior investimento
inicial
maior dependência de um conjunto restrito de meios: falha no HW
de suporte pode implicar indisponibilidade simultânea de múltiplas
VMs
custos colaterais em cenários exigentes: reforço do desempenho e
da disponibilidade (dos servidores, armazenamento e redes de
dados)

Como parece evidente, as vantagens são mais que as desvantagens !!

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 59 / 66


Virtualização (6/11)
Técnicas de Virtualização - Emulação de Arquiteturas Não-Nativas

a VM simula a arquitetura de hardware necessária para que um guest,


concebido originalmente para essa arquitetura, execute sem
modificações
a arquitetura simulada (A, B) pode ser (e tipica/ é) diferente da real (P)
permite continuar a executar aplicações de arquiteturas
descontinuadas mais lenta, em uma ordem de magnitude (10x) que a
execução nativa implica implementar, por software, toda a operação
de um CPU
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 60 / 66
Virtualização (7/11)

Técnicas de Virtualização - Virtualização Total ou Nativa

é semelhante à emulação, mas


o HW simulado (P) é coincidente com o HW real (P)
permite execução direta de instruções user-level de P
instruções privilegiadas não-virtualizáveis são traduzidas
em sequências de outras, de resultado final equivalente
é a técnica de referência usada em HW/System Virtualization

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 61 / 66


Virtualização (8/11)
Técnicas de Virtualização - Virtualização Total ou Nativa (cont.)

Virtualização Assistida por Hardware (arq. x86, 2005, 2006)


CPU virtualization (Intel VT-x e AMD-V)
otimiza a execução de instruçoes privilegiadas
recentemente: Nested Page Tables (AMD); Extended Page Tables
(Intel); virtualização de tabelas de páginas (para memória virtual)
I/O MMU Virtualization (AMD-Vi e Intel VT-d)
permite acesso direto das VMs a placas de rede, gráficas, discos, etc.
técnica também conhecida por PCI passthrough
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 62 / 66
Virtualização (9/11)
Técnicas de Virtualização -
Para-Virtualização / Virtualização Assistida pelo SO

em vez de apresentar aos guests uma cópia fiel da arquitetura física


de base (P), o hypervisor fornece uma versão modificada da mesma
o SO das VMs é modificado para executar chamadas ao hypervisor
(hypercalls), em vez de invocar funcionalidades da arquitetura P
traduz-se em níveis de desempenho melhorados face a outras técnicas

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 63 / 66


Virtualização (10/11)
Técnicas de Virtualização - Virtualização de Nível SO

técnica também conhecida por containerization (de containers)


não existem VMMs; em vez disso, um SO genérico aloja várias
JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 64 / 66
Virtualização (11/11)

Plataformas de Virtualização

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 65 / 66


Referências

”Operating System Concepts, 10th Ed.”, Silberschatz & Galvin, Addison-Wesley, 2018: Capítulo 1
”Fundamentos de Sistemas Operacionais, 9a Ed.”, Silberschatz, Galvin & Gagne, LTC, 2015: Capítulo 1

Interrupt Vector:
https://www.sciencedirect.com /topics/engineering/interrupt -vector

Motherboard Chipsets and the Memory Map:


http://duartes.org/gustavo/blog/post/how -computers-boot-up

How Computers Boot Up:


h t t p : / / d u a r t e s . o r g / g u s t a v o / b l o g / p o s t / m o t h e r b o a r d - c h i p s e t s- m e m o r y - m a p

The Kernel Boot Process:


http://duartes.org/gustavo/blog/post/kernel -boot-process
Cpu Rings, Privilege and Protection:
http://duartes.org/gustavo/blog/post/cpu -rings-privilege-and-protection
Everything You Need to Know about the Cloud and Cloud Computing, Part I
https: // w ww. l i nuxj our nal.c om /c onte nt /e ver yt hi ng - you- nee d- know-a bout-c l oud -a nd-c l oud-c om put i ng - part- i

Everything You Need to Know about the Cloud and Cloud Computing, Part II: Using the Cloud
https:
//www.linuxjour na l.c om/c onte nt/e ver ythin g - you- nee d- know-a bout-c lou d-a nd-c loud-c om putin g- par t-ii- using-c lou d

JoséRufino - r u f i n o @ i p b . p t (ESTiG-IPB) Sistemas Operativos - Unidade 1 Ano Letivo de 2020 / 2021 66 / 66

Você também pode gostar