Buscar

2ª AULA S.O CONCEITOS BÁSICOS

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

SO - Conceitos Básicos
Definição de SO

É uma camada de software que opera entre o 
hardware e os programas aplicativos voltados ao 
usuário final.

É uma estrutura de software ampla,muitas vezes 
complexa, que incorpora aspectos de baixo nível 
(como drivers de dispositivos e gerência de 
memória física) e de alto nível (como programas 
utilitários e a própria interface gráfica).
Visão gráfica
p r o g r a m a d o r e s
e a n a l i s t a s
m e m ó r i a
d i s c o s
U C P
U s u á r i o s
H a r d w a r e
S i s t e m a O p e r a c i o n a l
S i s t e m a O p e r a c i o n a l
f i
t a s
i m p r e s s o r a s
m o n i t o r e s
p r o g r a m a s ,
s i s t e m a s e
a p l i c a t i v o s
u s u á r i o s
Cabe ao sistema Operacional

Prover interfaces de acessos a dispositivos, 
uniforme

Tornar aplicativos independentes do hardware

Definir politicas para gerenciar recursos como:

Processador

Acesso a Disco

Memória
Visão esquemática do SO
Carga do Sistema Operacional
D i s c o
M e m ó r i a
P r i n c i p a l
b
o
o
t
S i s t e m a
O
p e r a c i o n a l
Á r e a d o
S i s t e m a
O
p e r a c i o n a l
Breve Revisão de Arquitetura
M e m ó r i a
P r i n c i p a l
D i s p o s i t i v o s
d e E /
S
P r o c e s s a d o r /
U C P
U n i d a d e L ó g i c a
e A r i
t m é t i
c a
R e g i s t r a d o r e s
U n i d a d e d e
C o n t r o l e
Proteção ao Núcleo

Certas instruções não podem estar 
disponíveis para as aplicações, pois isso 
poderia ocasionar um sério problema de 
integridade no sistema.

Exemplo: Acesso ao disco rígido para gravação 
de um arquivo.
Níveis de Privilégio

2 Tipos de Instruções:

Privilegiadas

Não-Privilegiadas

Processador implemen-
ta dois modos de aces-
so:

Modo Usuário

Modo Kernel
CPU Intel x86 
Sistema Operacional 
Aplicação 
Não utilizado 
Não utilizado 
0 
1 
2 
3 

O hardware fornece suporte para que a execução de processos 
num dado S.O. se diferencie pelo menos entre dois modos de 
operação: 

modo usuário (“user mode”);

modo supervisor (“kernel mode”).

Para isso, um “mode bit” é adicionado ao hardware do computador 
para indicar o modo corrente, por exemplo supervisor (0) e usuário 
(1).

Processos de usuário rodam em modo usuário; sistema operacional 
roda em modo supervisor.
Modos de Operação 
(1)
Modos de Operação 
(2)

Processos executando em modo usuário 

Podem acessar suas próprias instruções e dados

Não podem acessar as instruções e dados do 
kernel
ou mesmo de 
outros processos.

Processos em modo supervisor não possuem esta limitação

Acesso a endereços de usuário e do próprio kernel do sistema

Acesso direto a recursos de hardware.
supervisor
usuário
Modos de Operação 
(3)

Com o sistema no estado supervisor:

Interrupções podem ser inibidas ou novamente habilitadas

As proteções estão desabilitadas

Qualquer instrução pode ser executada

Instruções privilegiadas só podem ser executadas em 
modo supervisor 

Ex: 
I/O instructions
, 
load timer
, etc.
Modos de Operação 
(4)

O 
hardware
enxerga o mundo em 
termos de:

modo supervisor

modo usuário (não distinguindo 
entre os vários usuários)

Programas são executados nesses 
dois modos.

O sistema operacional mantém 
registros internos para distinguir os 
vários processos executando no 
sistema.
K
K
U
U
Kernel mode
User mode
Visão do HW
Visão do S.O.
A
B
C
D
Tipos de Sistema Operacional

Em Batch (Lote)

De Rede

Distribuído

Multi-Usuários

Desktop

Servidor

Tempo Real
Muiltiprogramado
Monoprogramado
Monoprogramação 
(1)

Programa que processa um arquivo de registros e que executa, 
em média, 100 instruções de máquina por registro.

Ler um registro
0,0015 seg

Executar 100 instruções
0,0001 seg

Gravar um registro
0,0015 seg
Percentagem de utilização da UCP
U = 0,0001 / 0,0031 = 0,32 = 3,2%
Monoprogramação 
(2)

Os recursos computacionais estão inteiramente dedicados a um 
único programa/tarefa.

A UCP fica ociosa durante muito tempo enquanto o programa 
aguarda por um evento (digitação de um dado, leitura do disco, etc.
).

A memória principal é subutilizada caso o programa não a preencha 
totalmente.

Os periféricos são dedicados a um único usuário.

Não existem grandes preocupações com a proteção de memória.

A complexidade de implementação é relativamente baixa.
Monoprogramação 
(3)
Multiprogramação 
(1)

Vários programas e vários usuários competem pelos recursos do sistema. 
Multiprogramação 
(2)

O objetivo é manter mais de um programa em execução 
“simultaneamente”, dando a ilusão de que cada programa/usuário tem a 
máquina dedicada para si.

A idéia é tirar proveito do tempo ocioso da UCP durante as operações de 
E/S. Enquanto um programa espera por uma operação de leitura ou 
escrita outros programas podem estar sendo processados no mesmo 
intervalo.

Maximização do uso do processador e da memória.

Maior taxa de utilização do sistema como um todo (redução do custo total 
máquina/homem).

Suporte de hardware:

Proteção de memória

Mecanismo de interrupção (sinalização de eventos)

Discos magnéticos para implementação de memória virtual
Multiprogramação 
(3)
Mono 
x
Multiprogramação 
(1)
JOB1
JOB2
JOB3
Tipo de Job
Muita UCP
Muita E/S
Muita E/S
Duração
5 min
15 min
10 min
Memória
50K
100K
80K
Disco
Não 
Não
Sim
Terminal
Não 
Sim
Não
Impressora
Não
Não
Sim
Mono 
x
Multiprogramação 
(2)
Sim
Não
Não
Impressora
Não
Sim
Não 
Terminal
Sim
Não
Não 
Disco
80K
100K
50K
Memória
10 min
15 min
5 min
Duração
Muita E/S
Muita E/S
Muita UCP
Tipo de Job
JOB3
JOB2
JOB1
Sim
Não
Não
Impressora
Não
Sim
Não 
Terminal
Sim
Não
Não 
Disco
80K
100K
50K
Memória
10 min
15 min
5 min
Duração
Muita E/S
Muita E/S
Muita UCP
Tipo de Job
JOB3
JOB2
JOB1
Mono 
x
Multiprogramação 
(3)
Monoprogramação
Multiprogramação
Uso do processor
17%
33%
Uso da memória
33%
67%
Uso do disco
33%
67%
Uso da impressora
33%
67%
Tempo gasto
30 min.
15 min.
Mecanismo de Interrupção 
(1)

Constitui a base de operação de um sistema de 
multiprogramação.
SO
P5
P3
CPU
INTERRUPÇÃO
1
2
3

É um sinal de hardware que 
informa a ocorrência de um 
evento no sistema.

Ex: término de uma operação de E/S.

Provoca uma mudança no fluxo de 
controle, o qual é transferido para 
a rotina de tratamento de 
interrupção correspondente.
Mecanismo de Interrupção 
(2)
.....................
.....................
.......................
....................
...............
....................
.....................
......................
.......................
......................
....................
...................
.....................
.......................
..
......................
......................
.....................
PROGRAMA
I
N
T
E
R
R
SALVA REGS.
IDENTIFICA A 
ORIGEM DA 
INTERRUPÇÃO
OBTÉM O END. 
DA ROTINA DE 
TRATAMENTO
RESTAURA 
REGS.
..............
............
.............
..............
..............
..............
..............
........
ROTINA DE 
TRATAMENTO
Juntamente com o 
sinal de interrupção 
vem o seu número 
(tipo).
Vetor de 
Interrupções
Inibição de Interrupções

O núcleo (
kernel
) do S.O. algumas vezes previne a 
ocorrência de interrupções durante atividades críticas

Poderiam resultar em dados corrompidos se fossem permitidas 

Certas instruções (ditas 
privilegiadas
) permitem colocar o 
processador em um certo nível de execução em que ele 
mascara (inibe) certos valores de interrupção.
Níveis Típicos de Interrupção
Erros de Máquina
Relógio
Disco
Interface de Rede
Terminal
Interrupção de SW
Prioridade mais alta
Prioridade mais baixa
Interrupção de Software 
(1)

Chamadas ao Sistema

Assim como as interrupções de hardware, as chamadas ao sistema (SVCs 
– Supervisor Calls) também provocam uma mudança no fluxo de 
controle. 

Ao invés do fluxo ser redirecionado para uma rotina de tratamento de 
interrupção ele é desviado para uma rotina do sistema operacional que 
implementa o serviço solicitado.

Ao final da execução da chamada, o controle geralmente é devolvido para 
o programa chamador.

Por conta deste comportamento semelhante à manipulação das 
interrupções de hardware, as SVCs são também referenciadas como 
“Interrupções de Software”.

Alguns autores usam o termo 
Trap
como sinônimo de SVC. Outros usam o 
termo 
Trap
para referenciar apenas as exceções que porventura ocorram 
no sistema (ex: divisão por zero, overflow, erro de memória, etc.). 

As exceções são ditas “interrupções internas”.

Exemplos de SVC´s usadas no UNIX

close, execve, fork, kill, open, read, wait e write.

Os sistemas operacionais atuais têm centenas de 
chamadas de sistema

Linux: aproximadamente 300 chamadas diferentes

Os sistemas operacionais fornecem uma interface de 
programação (API/biblioteca) situada entre os programas 
de usuário e o resto do S.O.

Normalmente esta biblioteca é escrita na linguagem C (libc)

Ela manipula os detalhes de baixo nível relacionados com a 
passagem de informação para o kernel e com a mudança para o 
modo protegido
Interrupção de Software 
(2)
Tipos API para System Calls

API WIN32 (Para Windows)

http://en.wikipedia.org/wiki/Windows_API

POSIX (Sistemas UNIX)

http://en.wikipedia.org/wiki/POSIX
Aplicação
System Call
Núcleo
Núcleo
Hardware
System Calls - Esquemático
Em um curso de SO Completo....

Diferentes mecanismos para implementar 
máquinas virtuais

Processos

Escalonamento de Processos

Algoritmos de Exclusão mútua

Sistema de Arquivos

Dispositivos de I/O

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando