Modo Protegido Flashcards
Qual o diferencial do modo protegido?
Registradores de endereçamento de 32 bits. Suporte a um ambiente de multiprogramação. Há níveis de privilégios e proteção. Gerenciamento mais eficiente de memória
Como se dá o gerenciamento de memória
Por segmentação e paginação
Como acontece a dinâmica de um ambiente multitarefa?
Há o carregamento da tarefa na memória por um certo período de tempo, após existe a suspenção a suspenção da tarefa . Marca o estado do processador para aquela tarefa na memória logo após a interrupção tarefa.
Como o processador decide suspender a tarefa?
Após a quantidade de tempo destinado terminar. Quando a tarefa está esperando por um evento (Ex: leitura). Quando existe um programa de maior prioridade a ser executado.
Quais são os problemas de um ambiente multitarefa?
1- Cada tarefa só pode ter acesso a sua parte no segmento de memória. Faz-se necessário que exista um TSS que é a capacidade de salvar o contexto da tarefa na memória após interrupção.
2- Só pode haver a escrita/leitura em portas de I/O ou partes da memória apenas com supervisão do SO
3- Uma tarefa não pode ganhar o controle de interrupção, uma tarefa não pode ganhar a autoridade do SO
Soluções para modo protegido
Proteção do memória. Política de núcleo de SO para controle de I/O. Prevenção de acesso não autorizado a recursos do SO. interceptar tentativa de acionar interrupções
Quais são os novos registradores de propósito gerais?
Registradores de gerenciamento: GR0-GR4
Registradores de depuração: DR0-DR7
Registradores associados a segmentos: GDTR, LDTR, IDTR, TR
Determina o modo de operação e características da tarefa que está executando no processador
Registradores de Controles (GRO-GR4). [Todos são de 32 bits]
O que o GR0 determina? O que fazem as propriedades PE, TS, CD, PG?
Determina o modo de operação e o estado do processador.
PE: (Protection Enable ) se PE==1 modo protegido, caso contrário modo real
CD : (Cache desable) Se CD = 0, Pode haver escrita na cache, caso contrário não.
TS (Task Switch) Se TS == 1, houve troca de task, caso contrário não
PG (Paging) = Se 1 tem paginação caso PE == 1, caso contrário não.
Como se dá a falta de página?
O hardware gera interrupções de falta de página quando: a página correspondente ao endereço requisitado não está carregada na memória; a página correspondente ao endereço de memória acessado está carregada, mas o seu estado corrente não foi atualizado no hardware.
O que o CR2 guarda?
O CR2 guarda o endereço linear (virtual) do que causou a última falta de página
O que determina o endereço da tabela de páginas de maior alto nível? (Diretório de tabela debáginas)
CR3. Somente 20 bits do endereço base precisa ser especificado.
Ainda sobre CR3, o que significa PWT e PCD?
PCD (Page-level Cache Disable) : Se PCD ==1 a tabela de página pode ser gravada na cache, caso contrário não pode.
PWT (Page Write-Through ): se 0, tabela é escrita usando mecanismo de write-back, caso contrário, write-throught
Qual a diferença entre o write-back e write-through do CR3 PWT?
Write-through: When data is updated, it is written to both the cache and the back-end storage. This mode is easy for operation but is slow in data writing because data has to be written to both the cache and the storage. Write-back: When data is updated, it is written only to the cache. It can makes the cache differ by the data storage for a short time.
Descreva o que é o PSE e PAE do CR4
O CR4 permite um conjunto de extensões de arquiteturas.
PSE: Extensão para capacidade de memória de página. Se PSE == 1, a extensão da página é de 4MB, otherwise, 4KB
PAE: (Extensão de endereço físico), se PAE==0, endereço de 32 bits, caso contrário endereço maior do que 32 bits
Segmentação código e dados no modo protegido [Esse mecanismo garante proteção de memória]
Um registrador de segmento armazena endereço de um índice de uma tabela de segmentos, onde tem seletores de segmentos, apontando pata o início do segmento .
Como se comportam os registradores de segmentos no modo real?
Os registradores de segmentos no modo real são: CD, DS,SS, (ES, EF, GS). CD aponta para o segmento de código, DS aponta para o segmento de dados, SS aponta para segmento de pilha. Os demais são extras.
Como se comportam os registradores de segmentos no modo protegido?
Os registradores de segmentos no modo são são: CD, DS,SS, (ES, EF, GS). CD aponta para um descritor da tabela de segmentos que depois aponta para o segmento de código, DS aponta para um descritor da tabela de segmentos que depois aponta para o segmento de dados, SS aponta para um descritor da tabela de segmentos que depois aponta para o segmento de pilha. Os demais são extras.
Como é constituído o seletor de segmentos no modo protegido?
O seletor de segmentos tem 16 bits, existe 3 campos, TI, RPL, Índice.
TI: designa o tipo de tabela de descritores associado, (TI== 1 Tabela Global) (TI==0 Tabela Local)
RP3 : Temos 4 níveis (0-3) de privilégio. Zero é o nível mais alto, 3 é o nível mais baixo.
índice: São 13 bits que designam p índice da tabela
Descreva cada nível de privilégio
Nível 0: Permite ao SO executar qualquer tipo de operação (alocação de memória, controle de memória, controle de interrupção)
Nível 1: Drives de dispositivos de alta prioridade e serviços do SO (Device - drives, bibliotecas)
Nível 2: Drive de dispositivos de baixa prioridade
Nível 4: Tipicamente atribuído as aplicações
Quantas tabelas de descritores de segmentos existem? Descreva-os:
GDTR -> (Tabela de descritores Global) : Todos os programas enxergam os descritores, tem 8191 entradas disponíveis
IDTR-> (Tabela de descritores de interrupção) : Tabela específica que aponta para tratadores de interrupção. Existe 256 entradas
LDTR-> (Tabela de descritores Local) : Cada programa pode ter acesso a sua própria tabela com 8191 entradas disponíveis
Que tipo de mecanismo faz com que exista verificação de limites de acesso de segmento, restrição de acesso de dados de chamada, em que o registrador de segmento só pode ser carregado com o seletor para o segmento
Mecanismo de proteção usando seletor
Como é o formato geral de um descritor de segmento?
– Tem um endereço base de 32 bits que determina onde o endereço inicia.
– Tem um limite de 20 bits que especifica o tamanho do segmento.
– Granularidade (G), se G==0, Limite máximo do segmento e 1MB, caso contrário 4GB
– DPL (Descritor de nível de privilégio)Especifica o nível de privilégio do segmento
— S, especifica o tipo de segmento, S=0, segmento do sistema, S=1, segmento de código/dado
Como é o formato geral de um descritor de segmento de código?
- Geralmente Segmento de código é para execução ou ; escrita e execução
– SW não pode escrever em um segmento de código
– Flag A : especifica se o segmento está carregado no segmento de código CS (Se A==1)
– Flag R (Readeble) Se R==0, Segmento apenas habilitado para execução. Se R==1, habilitado para execução e leitura.
* Se R==0 e há a tentativa de leitura é gerado uma execução de “Exceção de proteção geral”
– Flag D : Especifica o tamanho padrão dos operandos. Se D==0, 16 bits, caso contrário 32 bits
– Bit 11: Indica se é segmento de código ou de dados
– Flag C (Conforming e non conforming ):
Retrate a diferença entre conforming e não conforming da flag C, do descritores de segmento de código:
O modo conforming é uma estratégia pra permitir que uma rotina com privilégio baixo (CPL == nível de privilégio corrente) acesse uma rotina de privilégio mais alto (DPL).
Como é o formato geral de um descritor de segmento de dados?
flag W – Se o segmento pode ser acessado para escrita. Se W =0 dá uma “exceção de proteção”
flag E – Indica que o segmento cresce do maior endereço para o menor endereço
flad D/B – Quando é um segmento de pilha, é referenciado como B e define o tamanho da pilha, se B=0 será 18 bits e é referenciado por SP, se B=1 será 32 bits e é referenciado por ESP