Sistemas Operacionais - Aula 3 - Estrutura SO [Compatibility Mode]

Transcrição

Sistemas Operacionais - Aula 3 - Estrutura SO [Compatibility Mode]
Sistemas Operacionais
Aula 3
Estrutura de SO
Aula 3 – Estrutura de SO
1
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 3 – Estrutura de SO
2
Introdução
Sistema computacional
Aplicativos
Utilitários
Núcleo do
Sistema Operacional
Hardware
Aula 3 – 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 3 – Estrutura de SO
4
System Calls (2)
System calls
System Call
Aplicação
Biblioteca
Aula 3 – Estrutura de SO
Núcleo do
Sistema Operacional
Hardware
5
System Calls (3)
Chamada a uma rotina do sistema
Aula 3 – 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 3 – 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.
Interrupção e Exceção (2)
Mecanismo de Interrupção e Exceção
Aula 3 – 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
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
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
+
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
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 3 – 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
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
Arquitetura Modular e,
posteriormente, em
Camadas.
Arquitetura Monolítica (2)
Arquitetura monolítica
aplicação
aplicação
Modo usuário
Modo kernel
System call
Hardware
Aula 3 – Estrutura de SO
17
Arquitetura do MS-DOS
Vários sistemas comerciais não têm uma estrutura definida, e
o MSMS-DOS é um deles. No MSMS-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 MSMS-DOS
Drivers de Dispositivo da BIOS
(*) O excesso de
liberdade torna o SO
vulnerável.
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, projetandoprojetando-as concêntricas
Executivo
Supervisor
Usuário
Arquitetura do OpenVMS
• Atualmente a maioria adota 2 camadas
(kernel – privilegiado e usuário – não
privilegiado) – UNIX e Win2000
Arquitetura de um
UNIX tradicional
Programas Usuário
Trap
Nível Usuário
Nível Kernel
Bibliotecas
Interface Chamada Sistema
Subsistema
Arquivo
Buffer Cache
Subsistema
Controle
Processo
Comunicação
entre processos
Escalonamento
Gerenciamento
Memória
Caractere
Bloco
Dispositivos Drivers
Nível Kernel
Controle de Hardware
Nível Hardware
Hardware
Arquitetura µkernel
(cliente servidor)
Servidor
Memória
Servidor
Processos
Servidor
Arquivos
Servidor
Impressão
Modo Usuário
Modo Kernel
µKernel
Hardware
Servidor
Rede
mensagens
Arquitetura µkernel do UNIX
A.outCoff Elf
File Mappings
Device Mappings
Anonymous Mappings
NFS
Exec
Switch
FFS
S5FS
RFS
Virtual
Memory
Framework
Vnode/vfs
Interface
Common
Facilities
Disk Driver
Block
Device
Switch
Scheduler
Framework
Tape Driver
STREAMS
Network Driver
Tty Driver
Time-Sharing
TimeProcesses
System
Processes
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)
Hardware
Gerenciamento Gerenciamento
Memória
Windows
Virtual
& GDI
Dispositivo
Drivers
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.
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
Kernel3
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
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
bytecodes
Interpretador
Java
Sistema Host
arquivos .class
da API Java
Tendências nos
sistemas atuais
• Arquitetura MicroKernel
• Sistema MultiThread
• Múltiplos Processadores Simétricos
• Distribuído
• Projeto Orientado a Objetos
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
Rede

Documentos relacionados

Estruturas do SO

Estruturas do SO  Porque usar APIs ao invés de fazer a chamada ao SO?  Portabilidade: programa pode ser compilado em qualquer sistema que suporte API  Chamadas ao SO podem ser mais detalhadas e difíceis de

Leia mais