Você está na página 1de 26

Sistemas Operacionais

Parte 02 – breve revisao de hardware e tipos de


Sistemas Operacionais

Prof. Kleber Vieira Cardoso


Tópicos
● Breve revisao de hardware (arquitetura de
computadores)
● Tipos de Sistemas Operacionais
Breve revisao sobre arquitetura
● Componentes de um computador pessoal
simples
Breve revisao sobre arquitetura (cont.)
● CPU (Central Processing Unit)
CPU

Decodificação: UC ULA Execução:


Descobre o que o Executa a açao
programa está dizendo solicitada (e.g., somar
para o computador fazer dois números)

Busca: Gravação ou
Obtém a próxima armazenamento:
instruçao de programa Memória Escreve os resultados
da memória do para um registrador
computador interno ou para a
memória
Breve revisao sobre arquitetura (cont.)
● Cada CPU (ou processador) possui um
conjunto específico de instruções
● Exemplo: x86 e ARM (Advanced RISC Machines)
● Em geral, a CPU possui vários registradores
● Exemplos: contador de programas (endereço da
próxima instruçao), ponteiro da pilha (topo da pilha
na memória), PSW (Program Status Word –
resultado de operações, prioridade da CPU, bits de
controle, etc.)
● SO deve ter ciência de todos os registradores
– Configurar alguns registradores especiais e salvar o
conteúdo de registradores sao algumas tarefas do SO
Breve revisao sobre arquitetura (cont.)
● CPUs modernas executam múltiplas instruções
simultaneamente
● Principal vantagem: desempenho
● Principal desvantagem: aumenta a complexidade, a qual
nao é transparente para o SO
● Abordagens como pipeline (a) e superscalar (b) sao comuns
– Qual é a principal dificuldade dessas abordagens?

UA inteiros

UA ponto
flutuante

UL
Breve revisao sobre arquitetura (cont.)
● Geralmente, a CPU oferece (no mínimo) 2
modos de operaçao
● Modo sistema (núcleo) – acesso irrestrito a todo o
conjunto de instruções da arquitetura
● Modo usuário – acesso a um subconjunto de
instruções
● Comutaçao entre modos ocorre
frequentemente
● Exemplo: quando um programa de usuário solicita
um serviço ao SO (chamada ao/de sistema),
quando o SO conclui um serviço para um programa
de usuário
Breve revisao sobre arquitetura (cont.)
● Multithread e multicore
● Cenário:
– Cada vez mais transistores disponíveis no mesmo
espaço
● Limite físico está próximo
– Velocidade de processamento limitada pelo aquecimento
● Soluçao: aumentar o nível de paralelismo
– Paralelizar múltiplas linhas de execuçao de um mesmo
programa (em execuçao): multithread (e.g., Intel Hyper-
threading)
– Paralelizar múltiplos programas em execuçao, ou seja,
ter múltiplas CPUs: multicore
– Naturalmente, suporte do SO é fundamental
Breve revisao sobre arquitetura (cont.)
● Memória (ou armazenamento)
● Elemento importante porque armazena os
programas e os dados (de forma persistente ou
temporária)
● Idealmente, a memória seria rápida para nao
atrasar a CPU, grande para armazenar o que for
necessário e barata
● Na prática, nenhum tipo de memória atende a todos
os requisitos, logo sao usados vários tipos de
armazenamento
Breve revisao sobre arquitetura (cont.)
● Hierarquia típica de memória***

Tempo típico de acesso Capacidade típica

1 ns Registradores < 1 KB
2 ns Cache < 8 MB
10 ns Memória principal 4-32 GB
10 us Disco de estado sólido 100-1000 GB
10 ms Disco rígido 500-4000 GB
100s Fita magnética 2-15 TB

*** números mostrados sao apenas aproximações e podem estar desatualizados


Breve revisao sobre arquitetura (cont.)
● Conceito importante: cache
● Manter o que é mais utilizado mais “próximo”
● Muito utilizado em qualquer SO
– De fato, muito utilizado em sistemas computacionais em
geral (banco de dados, redes, sistemas distribuídos, etc.)
● Para ser eficiente, precisa de algoritmos
adequados
– Exemplo: determinar quais itens guardar em cache e
quais itens remover da cache ao encher
Breve revisao sobre arquitetura (cont.)
● Disco
● Funçao básica: armazenar programas e dados,
mesmo após desligar o computador
● Também é utilizado para criar a ilusao que a
memória principal é maior (memória virtual)
– MMU (Memory Management Unit) auxilia nessa tarefa
Breve revisao sobre arquitetura (cont.)
● Dispositivos de E/S
● Geralmente, sao compostos de duas partes:
– Dispositivos propriamente dito
– Controlador do dispositivo
● Chip ou conjunto de chips que controlam o hardware
● Cada controlador (de hardware) é gerenciado por um software
controlador (device driver)
– Em geral, executado em modo núcleo, mas pode ser
executado em modo usuário (raro em SOs convencionais)
● Operações de E/S podem ser realizadas através:
– Espera ocupada
– Interrupçao
– DMA (Direct Memory Access)
Breve revisao sobre arquitetura (cont.)
● Conceito importante: interrupçao
● Informa à CPU sobre a necessidade de atender um
dispositivo
● Gera uma comutaçao de contexto do programa em
execuçao
Breve revisao sobre arquitetura (cont.)
● Barramentos
● Computadores antigos (e.g., IBM PC) utilizavam
apenas um barramento
● Atualmente, há vários barramentos e controladores
envolvidos
– SO precisa configurar e gerenciar todos
Breve revisao sobre arquitetura (cont.)
● Barramentos: exemplo de um sistema x86
Breve revisao sobre arquitetura (cont.)
● Linguagem de montagem (Assembly)
● Exemplo:
.data
msg:
.string "Ola para todos\n"
.text
.global main
main:
movl $4,%eax ; chamada 'write'
movl $1,%ebx ; saída padrao (1)
movl $msg,%ecx ; mensagem a ser exibida
movl $16,%edx ; tamanho da mensagem'
int $0x80 ; faz a chamada ao SO
ret
Tópicos
● Breve revisao de hardware (arquitetura de
computadores)
● Tipos de Sistemas Operacionais
Tipos de SOs
● SOs de computadores de grande porte
● Orientados para o processamento simultâneo de
muitas tarefas
– Geralmente, realiza muitas operações de E/S
– Normalmente, oferecem três tipos de serviços: em lote
(nao interativo), processamento de transações (grande
quantidade de pequenas requisições) e tempo
compartilhado
● Exemplo: z/OS
Tipos de SOs (cont.)
● SOs de servidores
● Equipamentos com grande quantidade de recursos
e utilizado por múltiplos usuários
● SOs de multiprocessadores
● Equipamentos com múltiplas CPUs
● SOs de computadores pessoais
● Equipamentos domésticos (desktops e notebooks)

● Há “versões” do Linux e do Windows que se


encaixam em todos esses tipos
Tipos de SOs (cont.)
● SOs embarcados
● Sao executados em computadores que controlam
algum equipamento (e.g., TV, carro, roteador sem
fio)
– Em geral, sao muito especializados
– Normalmente, rodam apenas uma ou algumas
aplicações específicas
● Exemplo: VxWorks
Tipos de SOs (cont.)
● SOs de tempo real
● Precisam lidar com restrições rígidas de tempo
● Podem ser subdivididos em:
– Tempo real crítico – o nao cumprimento de prazos pode
implicar em graves danos físicos e/ou materiais (e.g.,
aviaçao e processos industriais)
– Tempo real nao crítico – o nao cumprimento de prazos é
indesejável, mas tolerável (e.g., sistemas multimídia)
● Exemplo: QNX
Tipos de SOs (cont.)
● SOs de computadores de mao
● Basicamente, smartphones e tablets
● Grande quantidade de aplicações e dispositivos de
E/S (e.g., câmera, microfone, GPS, acelerômetro)
– Focados em uso eficiente de energia e interface com
o usuário
● Exemplo: Android e iOS
Tipos de SOs (cont.)
● SOs de sensores e atuadores (IoT devices)
● Usados na coleta de dados (e.g., temperatura,
luminosidade, humidade, pressao) e controle de
diversos tipos de “coisas” (e.g., iluminaçao, portas,
máquinas em geral)
● Apesar de serem computadores “completos” (i.e.,
possuem CPU, RAM, ROM, etc.), esses
equipamentos possuem recursos muito restritos,
incluindo bateria
● Exemplos: TinyOS, Contiki e RIOT
Exercícios
1) Qual a diferença entre sistemas de
multiprogramaçao e de tempo compartilhado?
2) Antes da introduçao do DMA, a CPU tratava
todas operações de leitura e escrita de dados.
Quais as implicações que isso tem para a
multiprogramaçao?
3) Instruções relacionadas ao acesso a
dispositivos de E/S sao tipicamente instruções
privilegiadas, isto é, elas podem ser
executadas em modo núcleo e nao em modo
usuário. Dê uma razao para essas instruções
serem privilegiadas.
Exercícios (cont.)
4) Considere um sistema com duas CPUs e cada CPU tem
duas threads (multithread). Suponha que três programas
(P0, P1 e P2) sao iniciados e possuem os seguintes
tempos execuçao: 5, 10 e 20 ms, respectivamente.
Quanto tempo levará para completar a execuçao dos três
programas? Assuma que os programas nao trocam de
CPU uma vez atribuídos e que os três programas sao
100% CPU intensivos, isto é, nao realizam E/S.
5) Considere um sistema computacional que tem memória
cache, RAM e disco, e um SO que usa memória virtual.
Leva 1 ns para acessar um byte a partir da cache, 10 ns
para acessar um byte a partir da RAM e 10 ms para
acessar um byte a partir do disco. Se a taxa de acerto da
cache é 95% e a taxa de acerto da RAM é 99%, qual é o
tempo médio de acesso a um byte?

Você também pode gostar