Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Aula 3 – Estrutura de SO 1
Sistemas Operacionais
Aula 2Estrutura de SO
Aula 3 – Estrutura de SO 2
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 3
Introdução
Sistema computacional
Utilitários
Hardware
Núcleo doSistema Operacional
Aplicativos
Aula 3 – Estrutura de SO 4
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 5
System Calls (2)
System calls
System Call
Aplicação Biblioteca Hardware
Núcleo doSistema Operacional
Núcleo doSistema Operacional
Aula 3 – Estrutura de SO 6
System Calls (3)
Chamada a uma rotina do sistema
Aula 3 – Estrutura de SO 7
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 8
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.
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.
Interrupção e Exceção (1)
Aula 3 – Estrutura de SO 9
Interrupção e Exceção (2)
Mecanismo de Interrupção e Exceção
Aula 3 – Estrutura de SO 10
Dispositivo de controle ou
outro sistema de hardware
que permita ativar uma
interrupção
Hardware Software
Processador termina a
execução da instrução
corrente
Processador reconhece
sinal de interrupção
Processador coloca PSW e
PC na pilha de controle
Processador carrega novo
valor do PC, baseado na
interrupção
Salva informações
remanescentes sobre o
estado do processo
Processa a interrupção
Restaura a informação do
estado do processo
Restaura o velho PSW e PC
(Rotina de serviço)
Fluxo de Proces-
samento de uma
Interrupção
Interrupção e Exceção (3)
Aula 3 – Estrutura de SO 11
• 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
Programa
do usuário
Interrupção
Rotina X
Interrupção
Rotina Y
Modelo seqüencial
Múltiplas interrupções (1)
Aula 3 – Estrutura de SO 12
• 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
Programa
do usuário
Interrupção
Rotina X
Interrupção
Rotina Y
-
+
Múltiplas interrupções (2)
Modelo cascata
Aula 3 – Estrutura de SO 13
Memória
Dispositivos
Arquivos
Processos
Tabelas de Memória
Tabelas de E / S
Tabelas de Arquivos
Tabela de Processos
Processo 1
Processo 2
Processo 3
Processo n
Processo 1
Processo n
imagem do processo
imagem do processo
Estruturas de controle
Aula 3 – Estrutura de SO 14
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
Modo de execução do SO
Aula 3 – Estrutura de SO 15
Residente
Residente
kernel
Usuário (*)
Sistema
Monolítico
Sistema
Modular
(camadas)
Cliente / Servidor
(*) “Só por prazer” – Linus Torvalds x Tanenbaum
Arquitetura de um SO
Aula 3 – Estrutura de SO 16
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 (1)
Aula 3 – Estrutura de SO 17
Arquitetura Monolítica (2)
Arquitetura monolítica
Modo kernel
aplicação aplicação
Modo usuário
System call
Hardware
Aula 3 – Estrutura de SO 18
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.
Drivers de Dispositivo
do MS-DOS
Programa aplicativo
Programa SO residente
Drivers de Dispositivo da BIOS
(*) O excesso de
liberdade torna o SO
vulnerável.
Arquitetura do MS-DOS
Aula 3 – Estrutura de SO 19
O sistema é dividido em níveis sobrepostos. Cada nível oferece funções
que só podem ser utilizadas pelas camadas mais externas.
kernel
Usuário
Executivo
Supervisor
Arquitetura do OpenVMS
• THE (Technische Hogeschool Eindhoven
– 1968) – primeiro em camadas (6)
• MULTICS e OpenVMS foram os
seguintes, projetando-as concêntricas
• Atualmente a maioria adota 2 camadas
(kernel – privilegiado e usuário – não
privilegiado) – UNIX e Win2000
Arquitetura em camadas
Aula 3 – Estrutura de SO 20
SubsistemaArquivo
Programas Usuário
Dispositivos Drivers
Caractere Bloco
Controle de Hardware
Hardware
Buffer Cache
SubsistemaControleProcesso
Comunicaçãoentre processos
Escalonamento
GerenciamentoMemória
Interface Chamada Sistema
BibliotecasTrapNível Usuário
Nível Kernel
Nível Hardware
Nível Kernel
Arquitetura de um UNIX tradicional
Aula 3 – Estrutura de SO 21
Modo Kernel
Modo Usuário
Servidor
Arquivos
Servidor
Processos
Servidor
Memória
Servidor
RedeServidor
Impressão
Kernel
Hardware
mensagens
Arquitetura kernel (cliente servidor)
Aula 3 – Estrutura de SO 22
Anonymous Mappings
Common
Facilities
STREAMS
Virtual
Memory
Framework
Block
Device
Switch
Exec
Switch
Vnode/vfs
Interface
Scheduler
Framework
Time-SharingProcesses
SystemProcesses
S5FS
RFS
FFSNFS
ElfCoffA.out
File Mappings
Device Mappings
Disk Driver
Tape Driver
Network Driver Tty Driver
Arquitetura kernel do UNIX
Aula 3 – Estrutura de SO 23
Modo Kernel
Hardware
Subsistema
Posix
Microkernel
Hardware Abstraction Layer (HAL)
Dispositivo
Drivers
Gerenciamento
E/S
Gerenciamento
Objeto
Proteção
Referente
Monitor
Gerenciamento
Processo
Chamada
Procedimento
Local
Gerenciamento
Memória
Virtual
Gerenciamento
Windows
& GDI
Dispositivo
Drivers
Serviços Executivos
Subsistema
Segurança
Subsistema
OS/2
Subsistema
CRS
Aplicação
OS/2Winlogon
Aplicação
Win32
Aplicação
Posix DOS
Win 16
NTVDM
Modo Usuário
Arquitetura Windows NT
Aula 3 – Estrutura de SO 24
Aplicativo
Win32
Servidor
Win32
Aplicativo
OS/2
Servidor
OS/2
Aplicativo
POSIX
Servidor
POSIX
Kernel WIN NT
O Kernel controla toda a troca de mensagens entre a aplicação e o
respectivo servidor.
Arquitetura cliente servidor do Windows NT
Aula 3 – Estrutura de SO 25
Uma máquina real pode abrigar internamente diferentesambientes 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
Hardware
Kernel
Processos
Máquina Não-Virtual
Hardware
Máquina Virtual
MV1 MV2 MV3
Processos Processos Processos
Kernel1 Kernel2 Kernel3
Máquina Virtual
Máquina virtual
Aula 3 – Estrutura de SO 26
Máquina Virtual JAVA
Hardware
Sistema Operacional
Aplicação JAVA
(*) Dependente do Hardware
Carregador de
Classes
Interpretador
Java
arquivos .class
Programa Java
arquivos .class
da API Java
bytecodes
Sistema Host
(*)
Máquina virtual Java
Aula 3 – Estrutura de SO 27
Prog1.java Prog2.java
Compilador
Java
Prog1.class Prog2.class
Carregador
de Classes
Interpretador
Java
arquivos .class
da API Java
bytecodes
Sistema Host
Ambiente de Compilação
Ambiente de Execução
(plataforma Java)
bytecodes
Ambiente de desenvolvimento JAVA
Aula 3 – Estrutura de SO 28
• Arquitetura MicroKernel
• Sistema MultiThread
• Múltiplos Processadores Simétricos
• Distribuído
• Projeto Orientado a Objetos
Tendências nos sistemas atuais
Aula 3 – Estrutura de SO 29
Gerenciamento
de Memória
Descrição de
Processo e
Controle
Concorrência
Gerenciamento
de Arquivo
RedeSegurança
Gerenciamento
de E/S
Escalonamento
Tópicos a serem abordados