Sistemas Operacionais

Download Report

Transcript Sistemas Operacionais

Sistemas Operacionais
Sumário
 System Calls
 Interrupções e exceções
 Tratamento de interrupções
 Múltiplas interrupções
 Estruturas de controle
 Arquitetura de um SO
 Arquitetura monolítica
 Arquitetura em camadas
 Máquina virtual
 Arquitetura microkernel
 Tendências
Aula 2 – Estrutura de SO
2
Introdução
 Sistema computacional
Aplicativos
Utilitários
Núcleo do
Sistema Operacional
Hardware
Aula 2 – Estrutura de SO
3
System Calls (1)
 Método empregado para um processo usuário solicitar
serviços ao sistema operacional
 Normalmente baseada em interrupções de software (traps)
 Aciona a rotina de tratamento de interrupção
 Identifica serviço requisitado
 Verifica validade dos parâmetros
 Executa o serviço
 Retorna ao processo do usuário
Aula 2 – Estrutura de SO
4
System Calls (2)
 System calls
System Call
Aplicação
Biblioteca
Aula 2 – Estrutura de SO
Núcleo do
Sistema Operacional
Hardware
5
System Calls (3)
 Chamada a uma rotina do sistema
Aula 2 – Estrutura de SO
6
System Calls (4)
 Funções




Gerência de processos e threads
Gerência de memória
Gerência do sistema de arquivos
Gerência de dispositivos
 Tipos de instruções
 Privilegiadas
 Não-privilegiadas
 Modos de acesso
 Usuário
 Kernel ou supervisor
Aula 2 – Estrutura de SO
7
Interrupção e Exceção (1)
Tratamento de interrupções - É feito pelo SO, que determina a
natureza da interrupção e dispara a Rotina de Serviço adequada
para executar as ações que forem necessárias.
Detalhes:
•
•
•
•
•
•
•
•
A execução do programa corrente é suspensa
O endereço da Rotina de Serviço é localizado na tabela de interrupções
O status do programa corrente é salvo (conteúdo do PC, PSW)
O controle do processador é transferido para a rotina de serviço
A rotina de SV pode salvar outros dados da tarefa em execução (registradores, ...)
O ponto de interrupção pode ocorrer em qualquer parte do programa
As rotinas de serviço normalmente fazem parte do Sistema Operacional
Existe um “Overhead” adicional para ativar e executar a rotina de serviço.
Aula 2 – Estrutura de SO
8
Interrupção e Exceção (2)
 Mecanismo de Interrupção e Exceção
Aula 2 – Estrutura de SO
9
Interrupção e Exceção (3)
Hardware
Software
(Rotina de serviço)
Dispositivo de controle ou
outro sistema de hardware
que permita ativar uma
interrupção
Salva informações
remanescentes sobre o
estado do processo
Fluxo de Processamento de uma
Interrupção
Processador termina a
execução da instrução
corrente
Processa a interrupção
Processador reconhece
sinal de interrupção
Restaura a informação do
estado do processo
Processador coloca PSW e
PC na pilha de controle
Restaura o velho PSW e PC
Processador carrega novo
valor do PC, baseado na
interrupção
Aula 2 – Estrutura de SO
10
Múltiplas interrupções (1)
Programa
do usuário
Interrupção
Rotina X
Modelo seqüencial
Interrupção
Rotina Y
• A Rotina de Serviço desabilita as interrupções
• Uma nova interrupção só é tratada após o retorno
• A interrupção pode demorar a ser tratada, o que pode eventualmente ocasionar
uma perda de dados
• Finalizada a Rotina de Serviço de interrupção, o processador checa por
interrupções adicionais
Aula 2 – Estrutura de SO
11
Múltiplas interrupções (2)
Programa
do usuário
Interrupção
Rotina X
Modelo cascata
Interrupção
Rotina Y
•
•
•
Interrupções têm prioridade
Interrupções com alta prioridade interrompem rotinas de serviço de interrupções de
menor prioridade
Exemplos de prioridade:
– impressora
– disco
– comunicação
Aula 2 – Estrutura de SO
+
12
Estruturas de controle
Tabelas de Memória
imagem do processo
Processo 1
Memória
Tabelas de E / S
Dispositivos
Arquivos
Tabelas de Arquivos
Processos
Tabela de Processos
Processo 1
imagem do processo
Processo 2
Processo n
Processo 3
Processo n
Aula 2 – Estrutura de SO
13
Modo de execução do SO
Modo usuário  instruções associadas ao uso não privilegiado
Modo kernel  instruções associadas ao uso privilegiado
Configuração:
Onde ?? Um bit do PSW
Quando ??? em resposta a determinados eventos
Aula 2 – Estrutura de SO
14
Arquitetura de um SO
Usuário (*)
Residente
kernel
Residente
Sistema
Monolítico
Sistema
Modular
(camadas)
Cliente / Servidor
(*) “Só por prazer” – Linus Torvalds x Tanenbaum
Aula 2 – Estrutura de SO
15
Arquitetura monolítica (1)
Dominou até os primeiros grandes sistemas para Mainframes.
• CTSS (MIT, 1963) – 32.000 instruções de 36 bits cada
• OS/360 (IBM, 1964) – mais de 1 milhão de instruções
• MULTICS (MIT e Bell Labs) – mais de 20 milhões de instruções
Problemas:
• Bugs
• Memória
• Complexidade
Aula 2 – Estrutura de SO
Arquitetura Modular e,
posteriormente, em
Camadas.
16
Arquitetura Monolítica (2)
 Arquitetura monolítica
aplicação
aplicação
Modo usuário
Modo kernel
System call
Hardware
Aula 2 – Estrutura de SO
17
Arquitetura do MS-DOS
Vários sistemas comerciais não têm uma estrutura definida, e
o MS-DOS é um deles. No MS-DOS as interfaces e níveis de
funcionalidade não são bem separados nem estão unificados
de forma monolítica.
Programa aplicativo
Programa SO residente
Drivers de Dispositivo
do MS-DOS
(*) O excesso de
liberdade torna o SO
vulnerável.
Drivers de Dispositivo da BIOS
Aula 2 – Estrutura de SO
18
Arquitetura em camadas
O sistema é dividido em níveis sobrepostos. Cada nível oferece funções
que só podem ser utilizadas pelas camadas mais externas.
• THE (Technische Hogeschool Eindhoven
– 1968) – primeiro em camadas (6)
kernel
• MULTICS e OpenVMS foram os
seguintes, projetando-as concêntricas
Executivo
Supervisor
Usuário
• Atualmente a maioria adota 2 camadas
(kernel – privilegiado e usuário – não
privilegiado) – UNIX e Win2000
Arquitetura do OpenVMS
Aula 2 – Estrutura de SO
19
Arquitetura de um
UNIX tradicional
Programas Usuário
Trap
Nível Usuário
Nível Kernel
Bibliotecas
Interface Chamada Sistema
Subsistema
Arquivo
Buffer Cache
Caractere
Subsistema
Controle
Processo
Comunicação
entre processos
Escalonamento
Gerenciamento
Memória
Bloco
Dispositivos Drivers
Nível Kernel
Nível Hardware
Aula 2 – Estrutura de SO
Controle de Hardware
Hardware
20
Arquitetura kernel
(cliente servidor)
Servidor
Memória
Servidor
Processos
Servidor
Arquivos
Servidor
Impressão
Modo Usuário
Servidor
Rede
mensagens
Modo Kernel
Kernel
Hardware
Aula 2 – Estrutura de SO
21
Arquitetura kernel do UNIX
A.outCoff Elf
File Mappings
Device Mappings
Anonymous Mappings
NFS
Exec
Switch
Virtual
Memory
Framework
FFS
S5FS
Vnode/vfs
Interface
RFS
Common
Facilities
Disk Driver
Block
Device
Switch
Scheduler
Framework
Tape Driver
STREAMS
Network Driver
Aula 2 – Estrutura de SO
Time-Sharing
Processes
System
Processes
Tty Driver
22
Arquitetura Windows NT
Aplicação
Posix
Aplicação
Win32
Subsistema
Posix
NTVDM
DOS
Win 16
Subsistema
CRS
Aplicação
OS/2
Winlogon
Subsistema
OS/2
Subsistema
Segurança
Modo Usuário
Modo Kernel
Serviços Executivos
Gerenciamento Gerenciamento
E/S
Objeto
Dispositivo
Drivers
Proteção
Referente
Monitor
Chamada
Gerenciamento
Procedimento
Processo
Local
Microkernel
Hardware Abstraction Layer (HAL)
Gerenciamento Gerenciamento
Memória
Windows
Virtual
& GDI
Dispositivo
Drivers
Hardware
Aula 2 – Estrutura de SO
23
Arquitetura cliente servidor
do Windows NT
Aplicativo
Win32
Aplicativo
OS/2
Servidor
Win32
Aplicativo
POSIX
Servidor
OS/2
Servidor
POSIX
Kernel WIN NT
O Kernel controla toda a troca de mensagens entre a aplicação e o
respectivo servidor.
Aula 2 – Estrutura de SO
24
Máquina virtual
Uma máquina real pode abrigar internamente diferentes
ambientes virtuais, cada um simulando uma máquina distinta,
com memória, SO, recursos e processos próprios. Desta
forma, cada usuário (ou aplicativo) parece possuir sua própria
máquina
Processos

MV1
MV2
MV3
Processos
Processos
Processos



Kernel1
Kernel2
Kernel
Máquina Virtual
Hardware
Hardware
Máquina Não-Virtual
Máquina Virtual
Aula 2 – Estrutura de SO
Kernel3
25
Máquina virtual Java
arquivos .class
Programa Java
arquivos .class
da API Java
Aplicação JAVA
Máquina Virtual JAVA
Carregador de
Classes
bytecodes
Sistema Operacional
Interpretador
Java
(*)
Hardware
Sistema Host
(*) Dependente do Hardware
Aula 2 – Estrutura de SO
26
Ambiente
de desenvolvimento JAVA
Prog1.java
Prog2.java
Compilador
Java
Prog1.class
Ambiente de Compilação
Prog2.class
bytecodes
Ambiente de Execução
(plataforma Java)
Carregador
de Classes
arquivos .class
da API Java
bytecodes
Interpretador
Java
Sistema Host
Aula 2 – Estrutura de SO
27
Tendências nos
sistemas atuais
• Arquitetura MicroKernel
• Sistema MultiThread
• Múltiplos Processadores Simétricos
• Distribuído
• Projeto Orientado a Objetos
Aula 2 – Estrutura de SO
28
Tópicos a serem abordados
Descrição de
Processo e
Controle
Escalonamento
Concorrência
Gerenciamento
de Memória
Gerenciamento
de E/S
Gerenciamento
de Arquivo
Segurança
Aula 2 – Estrutura de SO
Rede
29
FIM
Aula 2 – Estrutura de SO
30