• Nenhum resultado encontrado

08- AulaIHS-Modo Protegido-Introducao

N/A
N/A
Protected

Academic year: 2021

Share "08- AulaIHS-Modo Protegido-Introducao"

Copied!
36
0
0

Texto

(1)

Interface Hardware-Software

Modo Protegido de Operação de

Processadores x86 – Introdução

(2)
(3)

Arquitetura IA-32

 A arquitetura IA-32 lançada com o 80386 possibilitou um espaço de endereçamento maior

Registradores de 32 bits

Endereços de 32 bits, espaço endereçável de 232 Bytes ou

4GB

 Mas, maior contribuição foi dar suporte a um ambiente sofisticado de multiprogramação

(4)

Modo Protegido - Vantagens

 Permite um aproveitamento maior dos recursos de HW

 Possibilita vários programas rodando simultaneamente

Inclui suporte a multi-tarefas

 Proteção

Diferentes programas não devem interferir um no outro Níveis de privilégios para diferentes classes de programa

 Gerenciamento mais eficiente da memória

(5)

Proteção - Vantagens

 Aplicações mais robustas

 Confinamento de danos provocados por códigos mal escritos (acidentalmente)

 Confinamento de danos provocados por códigos mal intencionados

(6)

Mudanças na Arquitetura

 Registradores de propósito geral de 32 bits

 Novos registradores de propósito específico

Registradores de controle (CR0-CR4) Registradores de depuração (DR0-DR7)

Registradores associados a segmentos (GDTR,LDTR,IDTR,TR)

 Modificação da implementação de algumas instruções

Principalmente instruções de desvio de fluxo de controle

(7)

Registradores de Controle

 Determina o modo de operação e características da tarefa que está executando no processador

(8)

Registrador CR0

 Determina o modo de operação e estado do processador

- PE (Protection Enabled) – 0, modo real, 1, modo protegido - TS (Task Switch) – 0, não houve troca de tarefa, 1, houve

troca de tarefa

- CD (Cache Disable)- 0, permite escrita na cache, 1, desabilita

escrita na cache

- PG (Paging) – 0, desabilita paginação, 1, habilita paginação

(9)

Registrador CR2

 Guarda o endereço linear (virtual) de 32 bits que causou a última falta de página

(10)

Registrador CR3

 Determina o endereço base da tabela de páginas de mais alto nível (diretório de tabelas de páginas)

- PCD (Page-level Cache Disable) – 0, tabela não pode ser

armazenada na cache , 1, tabela pode ser armazenada na cache

- PWT (Page-level Write-Through) – 0, tabela é modificada

usando mecanismo de write-back , 1, utiliza mecanismo de write-through

 Somente 20 bits mais significativos do endereço base do diretório precisam ser especificados

(11)

Registrador CR4

 Contém flags que possibilitam uma série de extensões de arquitetura (acrescentadas em novas versões)

- PSE (Page Size Extensions) – 0, páginas de 4KB, 1, permite

páginas de 4MB

- PAE (Physical Address Extensions) – 0, endereços físicos de

(12)
(13)

Segmentação em Modo Protegido

 Uma das maiores diferenças entre modo real e modo protegido é o mecanismo de segmentação de código e dados

 Um registrador de segmento em modo protegido contém um índice de uma tabela de (descritores de) segmentos que aponta para o endereço inicial do segmento

Registradores de segmento armazenam seletores de segmentos

(14)

Registradores de Segmentos (Modo Real)

CS SS DS ES FS GS Memória Segmento de código Segmento de pilha Segmento de dados

(15)

Registradores de Segmentos (Protegido)

CS SS DS ES FS GS Memória Segmento de código Segmento de pilha Segmento de dados Tabela de Segmentos Seletor Seletor Seletor Descritor Descritor Descritor

(16)

 É possível acessar até 8192 entradas da tabela de segmentos

- TI indica que tipo de tabela o seletor está associado (GDT – Global Descriptor Table) ou (LDT – Local Descriptor Table)

(17)
(18)

Tabela de Descritores de Segmentos

 Cada tabela de segmentos tem um conjunto de descritores como entradas

Cada descritor contém os atributos de cada segmento

 As várias informações presentes nos descritores

(19)

Tipos de Tabela de Descritores de Segmentos

Todos os programas enxergam os descritores da tabela Tem 8191 entradas disponíveis (entrada 0 é reservada) Cada programa

(tarefa) pode ter sua própria tabela

Tem 8192 entradas disponíveis

Tabela específica que aponta para rotinas de tratamento de

interrupções

Tem 256 entradas disponíveis

(20)

Mecanismos de Proteção Possíveis Utilizando

Descritores

 Verificação de tipo de acesso

Exemplos:

CS só pode ser carregado com um seletor para um segmento de código;

SS só pode ser carregado com um seletor para um segmento de dados que permite escrita

 Verificação de limites

Endereço acessado não pode ser fora dos limites do segmento

 Restrições de: Acesso a dados Chamadas a procedimentos Instruções privilegiadas

Níveis de

Privilégio

(21)

Tipos de Descritores

Descritores de segmento contém atributos sobre os

segmentos

Código Dados

Descritores de sistema contém atributos sobre estruturas

de dados inicializadas e utilizadas apenas pelo sistema operacional

Segmentos de sistema (ex: para uma LDT) Gates

(22)

Descritores de Segmentos (Genérico)

 Endereço base (32 bits) especifica onde o segmento começa

 Limite (20 bits) especifica o tamanho do segmento

G - especifica a granularidade do limite

G = 0, granularidade de 1 Byte, tamanho máximo = 1MB G = 1, granularidade de 4KB, tamanho máximo = 4GB

(23)

Descritores de Segmentos (Genérico)

 DPL (Descriptor Privilege Level) – Especifica o nível de

privilégio do segmento

Assume valores de 0 a 3

(24)

Descritores de Segmentos (Genérico)

 S – Especifica o tipo de segmento

S = 0, segmento de sistema

(25)

Descritor de Segmento de Código

 Segmentos de código são geralmente ou somente habilitados para execução ou execução e leitura

(26)

Descritor de Segmento de Código (Flags)

 A (Acessed) – Especifica se o segmento está carregado no

registrador CS

A = 1, segmento carregado no CS

(27)

Descritor de Segmento de Código (Flags)

 R (Readable) – Especifica se o segmento pode ser acessado

também para leitura

R = 0, segmento habilitado para apenas para execução R = 1, segmento habilitado para leitura e execução

 Se R = 0, tentativa de ler dados do segmento gera a exceção “General Protection Exception”

(28)

Descritor de Segmento de Código (Flags)

 C (Conforming) – Especifica se o segmento é “conforming” ou

“non-conforming”

Transferência de execução para um segmento conforming de maior privilégio permite que a execução ocorra no nível atual de privilégio Transferência de execução para um segmento non-conforming de um nível de privilégio diferente gera uma exceção, a não ser que se use um call-gate ou task-gate (veremos depois)

(29)

Descritor de Segmento de Código (Flags)

 Bit 11 – Especifica se o segmento é de código ou de dados

0, segmento de dados 1, segmento de código

(30)

Descritor de Segmento de Código (Flags)

 D (Default operand size) – Especifica o tamanho padrão dos

operandos

D = 0, operando de 16 bits D = 1, operando de 32 bits

(31)

Descritor de Segmento de Dados (Flags)

 W (Writable) – Especifica se o segmento pode ser acessado

também para escrita

W = 0, segmento habilitado para apenas para leitura W = 1, segmento habilitado para leitura e escrita

 Se W = 0, tentativa de escrever no segmento gera a exceção “General Protection Exception”

 Para segmentos de pilha, necessariamente o segmento deve permitir escrita

(32)

Descritor de Segmento de Dados (Flags)

 E (Expand-down) – Especifica se o segmento cresce do maior

endereço para o menor

Útil para segmentos de pilha

E = 0, segmento cresce para cima E = 1, segmento cresce para baixo

 Se E = 1, o campo “limite” indica a borda inferior do segmento,

(33)

Descritor de Segmento de Dados (Flags)

 D/B – Quando é um segmento de pilha, este campo é

referenciado como “B”, e define o tamanho da pilha

B = 0, pilha de 16 bits, referenciado pelo registrador SP B = 1, pilha de 32 bits, referenciado pelo registrador ESP

(34)

Endereçamento de Memória em Modo Protegido

(35)

Estrutura dos Registradores de Segmentos

 Tabelas de descritores ficam na memória

 Descritor de segmento fica armazenado na parte escondida do registrador de segmento

Evita acesso a memória a cada vez que se acessa o mesmo segmento que está sendo apontado pelo seletor

 CPL (Current Privilege Level) é armazenado na parte escondida do registrador

(36)

Fluxo de Carregamento de Registradores de

Segmentos

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

A mitomicina apenas pode ser diluída em água para preparações injectáveis, soro fisiológico ou solução de dextrose a 20%.. Não deve ser associada a nenhum

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis

Ação feita para reduzir o efeito ou prevalência de um problema de saúde III Prevenção terciária um problema de saúde crônico em um indivíduo ou população III 31 MJ

Por fim propõe que sejam considerados três aspectos no planejamento de um Serviço de Informação Comunitária em Bibliotecas Públicas: o uso da biblioteca como espaço de