modo usuário - Renan Manola

Propaganda
SO - Conceitos Básicos
Introdução ao Computador – 2010/01
Renan Manola
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 ro g ra m a d o re s
e a n a l i s ta s
u su á rio s
p ro g ra m a s,
s i s te m a s e
a p li c a tiv o s
U s u á r io s
S is te m a O p e r a c io n a l
m e m ó r ia
d is c o s
H a rd w a re
U CP
im p re sso ra s
f i ta s
m o n i to r e 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
Á rea d o
S i s te m a
O p e r a cio n a l
boot
S i s te m a
O p e r a cio n a l
D isco
M e m ó r ia
P r in c ip a l
Breve Revisão de Arquitetura
P ro ce ssa d o r / U C P
U n id a d e L ó g ic a
e A r i tm é ti c a
U n id a d e d e
C o n tr o le
M e m ó r ia
P r in c ip a l
R e g is tr a d o r e s
D is p o s itiv o s
de E/S
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 implementa dois modos de acesso:


Modo Usuário
Modo Kernel
Aplicação
3
Não utilizado
2
Não utilizado
1
Sistema Operacional
CPU Intel x86
0
Modos de Operação

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:




(1)
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
(2)
supervisor

Processos executando em modo usuário



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.
Modos de Operação

Com o sistema no estado supervisor:




(3)
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
Kernel mode
K
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
U
User mode
A
B
U
C
D
Visão do HW
Visão do S.O.
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
Executar 100 instruções
Gravar um registro
0,0015 seg
0,0001 seg
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


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.



(2)
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
JOB1
(1)
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
JOB1
Mono x Multiprogramação
(2)
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
(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


Constitui a base de operação de um sistema de
multiprogramação.
É um sinal de hardware que
informa a ocorrência de um
evento no sistema.


(1)
SO
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.
P5
1
P3
INTERRUPÇÃO
CPU
3
2
Mecanismo de Interrupção
I
N
T
E
R
R
PROGRAMA
.....................
.....................
.......................
....................
...............
....................
.....................
......................
.......................
......................
....................
...................
.....................
.......................
..
......................
......................
.....................
(2)
SALVA REGS.
Juntamente com o
sinal de interrupção
vem o seu número
(tipo).
IDENTIFICA A
ORIGEM DA
INTERRUPÇÃO
Vetor de
Interrupções
OBTÉM O END.
DA ROTINA DE
TRATAMENTO
RESTAURA
REGS.
ROTINA DE
TRATAMENTO
..............
............
.............
..............
..............
..............
..............
........
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
Prioridade mais alta
Disco
Interface de Rede
Terminal
Interrupção de SW
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”.
Interrupção de Software

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


(2)
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
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
System Calls - Esquemático
Aplicação
System Call
Núcleo
Núcleo
Hardware
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
Download