MODELO DE S.O.
MODELO DE S.O.
n
Organização em camadas
A: hardware
B: núcleo (kernel)
drivers,
gerenciador de tarefas,
controlador de interrupções,
gerenciador de memória
C: Gerenciador de arquivos e
controle de I/O
D: Interface do usuário
E: Aplicativos
DEFINIÇÕES
DEFINIÇÕES
n
Sistema operacional
u é um programa que serve como ambiente para execução de outros programas.
u tem as seguintes atribuições
l organizar e gerenciar os recursos da máquina.
l carregar programas.
l disponibilizar um conjunto de rotinas para aplicativos.
l e fornecer uma interface mínima para o usuário.
u tarefas (processos)
l são seqüências de programa independentemente executadas.
l cada aplicativo corresponde a uma tarefa (processos).
l o mesmo programa pode ter mais de uma tarefa (thread).
MODOS DE OPERAÇÃO
MODOS DE OPERAÇÃO
n
Para processadores Intel x86
uModo real
l oferece o ambiente característico do 8086
l modo em que o processador inicia o seu funcionamento
l admite apenas o modelo de memória de endereçamento real;
u
Modo Protegido
l conjunto de mecanismos de proteção são implementados
l modo mais comum de operação do sistema;
l toda a potencialidade do processador pode ser usada;
l possibilita melhor desempenho
l modo mais adequado para os novos programas.
PROCESSADORES DE 32 BITS
PROCESSADORES DE 32 BITS
n
Registradores de Aplicativos
u Registradores de uso geral (32 bits)
l para guardar operandos e ponteiros.
l EAX, EBX, ECX, EDX, ESP, EBP, ESI e EDI.
u Registradores de segmentos (16 bits)
l originais do 8086 e novos (FS e GS).
l guardam até 6 seletores de segmentos de memória.
u Registradores de Controle e Status
l reportam e permitem modificações do estado do processador e do programa que está sendo executado
PROCESSADORES DE 32 BITS
PROCESSADORES DE 32 BITS
n
Endereçamento mais avançado.
u
Endereçamento do 8086 adotado apenas no modo-real.
u
Endereçamento via descritores adotado em modo-protegido.
n
Quatro novos grupos de registradores:
u
apontadores de tabela (GDTR, LDTR, IDTR e TR).
u
controle (CR0, CR1, CR2 e CR3).
u
depuração (DR0, …DR7).
u
teste (TR6 e TR7).
REGISTRADORES DE USO GERAL
REGISTRADORES DE USO GERAL
n
EAX:
acumulador para operandos e dados de resultados de operaçõesn
EBX: apontador para dados no segmento
DSn
EDX: pon
teiro de I/On
ECX:
contador (operações com loops).n
EBP: apontador para dados no stack
n
ESP: apontador de stack (endereço- ofsset do endereço base) do topo do stack
n
EDI: apontador para dados
REGISTRADOR DE EFLAGS - 386
REGISTRADOR DE EFLAGS - 386
n
Registrador de flags com mais funções:
u VM (modo-virtual 8086).u RF (resume): retomada de instrução sem gerar exceção. u NT: controle do (aninhamento) de tarefas.
u IOPL: nível de privilégio de E/S (0-3).
REG. DE EFLAGS DO Pentium
REGISTRADORES DE CONTROLE
REGISTRADORES DE CONTROLE
REGISTRADORES DE TABELA
REGISTRADORES DE TABELA
ARQUITETURA DE TAREFAS
ARQUITETURA DE TAREFAS
n
Modo protegido:
u operação na qual, automáticamente, são realizados passos de validação enquanto as instruções são executadas.
n
Tabelas alocadas em memória
u GDT – descritores globais. u LDT – descritores locais. u IDT – descritores de interrupção. u TSS – segmento estado da tarefa.u PD, PT – diretório de páginas e tabela de páginas.
Descritor: estrutura de dados de 8
bytes que armazena informações e atribuitos, para cada finalidade.
SEGMENTO DE ESTADO DA TAREFA
SEGMENTO DE ESTADO DA TAREFA
n
Definição
u TSS – task state segment é uma estrutura de dados que é a responsável pela inicialização do estado de uma tarefa a ser iniciada ou continuada.
n
Estado de uma tarefa
u é o conjunto de informações que caracterizam um determinado instante da execução da tarefa.
l Conteúdo dos registradores internos (estado de hardware).
l Diretório corrente, instância, variáveis, parâmetros catalogados (estado de software).
u Quando a tarefa for retomada o estado de hardware reinicializará os registradores.
DESCRITOR DO TSS
DESCRITOR DO TSS
n
No 386 é composto por 4 words de 16 bits com campos específicos.
u Cada campo está associado a um parâmetro da tarefaDescritores das diversas tarefas costumam ser mapeados em uma tabela, Geralmente a GDT.
n
Qual tarefa, quando e por quanto tempo
n
Técnicas
u
quotas de tempo
u
fila cooperativa simples
u
seqüênciamento cooperativo priorizado
u
quota de tempo variável
n
Outros fatores de seqüênciamento
uprioridades de tarefas
u
operação em tempo real
SEQÜÊNCIAMENTO DE TAREFAS
ORGANIZAÇÃO DA MEMÓRIA
ORGANIZAÇÃO DA MEMÓRIA
n
A memória que o processador acessa através do
barramento é denominada de memória física.
u
é organizada e acessada em seqüência de (8-bit) bytes.
l faixa de memória que pode ser endereçada é o “espaço de endereços”. l o espaço de endereçamentos varia de 0 até 232– 1.
n
O processador também suporta endereço segmentado
u
forma de endereçamento onde um programa pode ter muitos
espaços de endereços independentes, denominados
segmentos.
u
programas podem manter instruções e pilha em segmentos
separados.
l endereçamento de código irá sempre se referir ao espaço de código.
l endereçamento da pilha sempre se refere ao espaço da pilha.
n
Para gerenciamento da memória, os processadores Intel
contam:
u
em modo-real, com uma possibilidade:
l modo-real.
u
em modo-protegido, com duas possibilidades:
l a segmentação.
l e paginação (paging).
ORGANIZAÇÃO DA MEMÓRIA
ORGANIZAÇÃO DA MEMÓRIA
Em modo-protegido, programas que fazem uso de uma das duas possibilidades, não acessam a memória física diretamente.
ORGANIZAÇÃO DA MEMÓRIA
ORGANIZAÇÃO DA MEMÓRIA
MEMÓRIA LÓGICA:
MODO REAL
MEMÓRIA LÓGICA:
MODO REAL
n
Usa uma implementação
específica de memória
segmentada
n
Faz uso do modelo de
memória empregado
desde o processador
8086.
n
Têm sido mantido por questões de compatibilidade;
n
O espaço de endereçamento linear para o programa e o S.O.
consistem de arrays de segmentos de até 64K bytes de tamanho;
n
O tamanho máximo do “espaço de endereçamento linear” neste
modo é de 2
20bytes.
MEMÓRIA SEGMENTADA
MEMÓRIA SEGMENTADA
n
Tipo de gerenciamento introduzido desde o 8086.
n
Em modo-real cada segmento pode ter apenas 64kB.
n
Em modo-protegido,
u
se a granularidade for de 1byte, a possibilidade de
endereçamento é de 1MB.
u
se a granularidade for de 4kB a possibilidade de
endereçamento é de até 4GB, num único segmento.
Dois segmentos distintos podem ou não compartilhar as mesmas regiões de memória. Para cada tarefa, os registradores de segmentos, CS, DS e SS terão valores próprios e o segmento extra (ES) pode acessar outros de dados.
MODELOS DE SEGMENTAÇÃO
MODELOS DE SEGMENTAÇÃO
n
Modêlo-a
u segmento para código (CS) e para dados (DS, ES e SS). u após serem carregados não são mais alterados.
u não existe proteção entre segmentos que podem endereçar a 32bits, cobrindo toda memória física.
u Esse é o modêlo de memória plana simples (Flat model).
n
Modêlo-b
u semelhante ao anterior.
u segmentos de aplicativos (de 32 bits) são subconjuntos do segmento absoluto do S.O.
l Tem menor privilégio. Aplicativo não acessa segmento absoluto.
u Ponteiros de 48 bits (16 seletor mais 32 do offset) utilizados para chamadas ao sistema operacional.
MODELOS DE SEGMENTAÇÃO
MODELOS DE SEGMENTAÇÃO
n
Modêlo-c
u semelhante ao anterior.
u mapeia os segmentos de dados e pilhas em áreas diferentes. u ponteiros de 48 bits.
n
Modêlo-d
u possibilita uma maior capacidade de endereçamento (ponteiros de 48 bits).
u valor de CS pode ser alterado por interrupções, excessões, chamadas ao sistema operacional e chamadas às subrotinas.
u DS, ES, FS e GS podem ser alterados ao referenciar-se a uma nova de estrutura de dados.
MEMÓRIA PLANA SIMPLES
MEMÓRIA PLANA SIMPLES
n
Características:
u Memória aparece (p/ programas) como um espaço de endereçamento único e contíguo (espaço de endereçamento linear).
u O código, os dados, e a pilha de procedimentos estão neste espaço endereçável por byte endereços válidos de maneira contígua de 0 a 232- 1 (32 bits).
n
Outros aspectos:
u endereço para qualquer byte no “espaço linear de endereçamentos” é denominado “ endereço linear”.
u O endereço físico e o endereço linear são os mesmos.
u Não ocorre tradução de endereço pelo hardware
.
u O SO é carregado no início ou no topo da memória.
MEMÓRIA SEGMENTADA
MEMÓRIA SEGMENTADA
n
A memória aparece como um grupo independente de espaços de
endereços denominado segmentos.
u Código, dados e stack estão em segmentos distintos para cada programa.
n
Para endereçar um byte em um segmento, o programa envia um
endereço lógico (
endereço base
e
offset).
Base AddressMEMÓRIA SEGMENTADA
MEMÓRIA SEGMENTADA
n
Offset
u
O offset de 32 bit é
derivado dos operadores de
instruções.
u
Ex.:
l MOV EAX, 02AC5Bh.
n
Endereço-base
u
obtido a partir do
seletor
que identifica o descritor
de segmentos a ser
acessado.
MEMÓRIA SEGMENTADA
MEMÓRIA SEGMENTADA
n
Seletor de segmentos
useleciona o
descritor
na
tabela global (TI=0 àGDT)
ou na local (TI=1 à LDT).
ué localizado nos
registradores.
MEMÓRIA SEGMENTADA
MEMÓRIA SEGMENTADA
n
DESCRITORES DE SEGMENTOS
u
Estrutura de dados que fornece ao processador o tamanho, a
localização, informações para acesso e status de segmentos.
l são tipicamente criados por compiladores, sistemas operacionais, etc.
l vedado a programas aplicativos.
u
Localizados na
l GDT – os descritores usados por todas as tarefas.
l LDT – os descritores acessáveis por tarefas específicas.
u
8192 é número máximo de descritores por tabela:
l Comprimento máximo de cada tabela é 64kB.
DESCRITORES DE SEGMENTOS
DESCRITORES DE SEGMENTOS
PAGINAÇÃO
PAGINAÇÃO
n
É um processo de mapeamento indireto do espaço linear de
endereços em porções menores de memória física ou de disco.
u as páginas são porções de memória física que são delimitadas para que sejam usadas.
u o sistema operacional habilita (ou desabilita) a paginação ao ativar (ressetar) o bit PE (paging-enable) do registrador CR0.
u a paginação pode ser usada em conjunto com qualquer dos modelos de segmentação.
u quando a paginação é usada todos os segmentos de código, dados, pilha e sistema e a GDT e a IDT podem ser paginadas.
u somente as últimas páginas acessadas são mantidas na memória.
Memória virtual é um artifício em hardware e software para superar a
PAGINAÇÃO
PAGINAÇÃO
n
Referência (entry) no
diretório de páginas
aponta para a tabela de
páginas.
n
Referência na tabela de
páginas apontam para
páginas (4 kB) na
memória física.
n
Endereço linear
é um
endereço de 32 bits no
espaço de endereçamento
do processador.
Este método de paginação pode ser usado para endereçar até 220 páginas, as quais se espalham em um espaço de endereçamento linear de 232 bytes (4 GBytes).
PAGINAÇÃO
PAGINAÇÃO
n
O endereço físico base do diretório de páginas está no
registrador CR3.
n
Para que seja possível selecionar várias referências, o
endereço linear de 32 bits é dividido em 3 sessões:
u página de diretório: bits de 22 a 31 fornecem o offset para referência ao diretório.
l a referência selecionada fornece o endereço físico base da tabela de páginas.
u tabela de páginas – bits de 12-21 do endereço linear fornecem um offset para uma entrada na tabela de páginas. Uma referência (entry) fornece o endereço base para a memória-física.
REFERÊNCIAS
REFERÊNCIAS
n
DTEs (directory table entries)
são as referências na tabela de
diretórios.
n
PTEs (page table entries) são
as referências na tabela de
páginas.
n
Uma referência (entry) do
diretório ou das tabelas de
páginas contém informações
sobre:
u o endereço físico. u direitos de acesso.
u gerenciamento de memória.
MEMÓRIA PLANA POR PÁGINA
MEMÓRIA PLANA POR PÁGINA
n
A
Arquitetura Intel oferece
possibilidades de divisão do
espaço de endereçamento
linear tanto para o modelo
“plano” quanto para o
segmentado em páginas,
mapeando-as na memória
virtual
n
A existência de páginas é
transparente para um
aplicativo
;
Endereço 0 Sistema Oeracional Programa MEMÓRIA LINEAR DESOCUPADA Páginas alocadas ao SO MEMÓRIA LINEAR DESOCUPADA Páginas físicas alocadas ao programaREGISTROS PARA
GERENCIAMENTO DA MEMÓRIA
REGISTROS PARA
GERENCIAMENTO DA MEMÓRIA
n
O processador (Intel-Pentium) dispõe de 4 registros que
especificam a localização das estruturas de dados, as quais
controlam o gerenciamento da memória segmentada:
u registro da “Global Descriptor Table” u registro da “Interrupt Descriptor Table” u registro da “Local Descriptor Table” u registro de Tarefas
SEGMENTAÇÃO E PAGINAÇÃO
INTERRUPÇÕES E EXCESSÕES
INTERRUPÇÕES E EXCESSÕES
n
São transferências forçadas de execução da tarefa ou programa
ativo para uma tarefa ou procedimento especial denominado
handler.
n
Interrupção:
u de forma típica ocorrem em instantes aleatórios durante a execução, em resposta à sinais de hardware.
u são usados para lidar com eventos externos, tais como requisição para atender a periféricos.
u Tipos de interrupção:
l por software: associada à execução da instrução “int nn”.
l por hardware: associada à circuito externo ao processador.
n
Excessão
u definida e gerada pela CPU.
u ocorrem quando o processador detecta uma condição de erro, enquanto executa uma instrução, tal como divisão por zero.
INTERRUPÇÕES E EXCESSÕES
INTERRUPÇÕES E EXCESSÕES
n
Existem cerca de 256.
u numeradas de 00h a FFh.u algumas reservadas pelo processador (as excessões e a NMI).
n
O processo de manipulação da execução depende da tabela de
descritores de interrupcão IDT.
u cada um dos descritores tem um número de interrupção, ou excessão, associado a um manipulador.
u o número de interrupções é usado como um índice na IDT, relacionado ao descritor.
u o descritor contém as informações necessárias para transferir o controle da máquina ao manipulador de interrupcões.
l a IDT pode ser colocada em qualquer posição da memória linear.
u o IDTR é um registrador de 48 bits:
l 32 bits mais significativos apontam para o endereço base da IDT.
DESCRITORES DE INTERRUPCÃO
DESCRITORES DE INTERRUPCÃO
n
Um descritor de interrupcão é de um dos seguintes tipos:
u Gate de interrupção ou armadilha:l Contém número da rotina associada ao pedido interrupção.
– armadilha é interrupcão não-mascarel, geralmente, gerada internamente pela CPU.
u Gate de tarefa.
l É a chamada para execução de uma nova tarefa, que aninhará a tarefa interrompida.
n
Manipulador de interrupção ou excessão
u Implementado por rotina ou uma tarefa.l por uma rotina, interage apenas com a tarefa que estava executando.
l por tarefa, interage interage apenas em seu próprio contexto.
u É mais comum a implementação por rotina.
ENTRADA E SAÍDA
ENTRADA E SAÍDA
n
Operações de E/S para dispositivos externos são executadas
através de:
u Portas
l registradores acessíveis para leitura ou escrita, utilizados no controle da operação de algum periférico ou circuito de apoio.
u Acesso a portas:
l através de endereço da memória física – mapeamento em memória.
l através de um espaço de endereços separados e independentes da memória – mapeamento em E/S.
u Mapeamento através do espaço de endereços:
l Realizado através de um conjunto de instruções e um sistema especial de proteção.
u Mapeamento em memória:
l é realizado com as instruções gerais do processador (move e string)
ENTRADA E SAÍDA
ENTRADA E SAÍDA
n
Endereçamento é realizado através das linhas de
endereço do processador.
u
os processadores Intel indicam que estão realizando
operações de E/S se o pino M/IO for colocado no estado
(0)
u
caso contrário é uma operação em memória.
u
Dados são transmitidos entre o processador and um
dispositivo de I/O através das linhas de dados.
NÍVEIS DE PRIVILÉGIO
NÍVEIS DE PRIVILÉGIO
n
O processador admite 4
níveis de privilégio
n
Números maiores designam
menores privilégios;
n
A razão básica para usar
níveis de privilégio é a de
aumentar a confiabilidade
do S.O.
n
Definição:
u é um evento assíncrono geralmente causado por um dispositivo de E/S para avisar ao controlador o término de uma tarefa
n
Tipos de interrupção
u compartilhada:l dois ou mais dispositivos compartilham mesmo IRQ (PCI)
l APIC: 256 níveis
u não-compartilhada:
l cada dispositivo possui um IRQ específico (ISA)
l PIC: 16 níveis
n
Opções de execução (depende do modelo do SO).
u como tarefa (processo) independentel mais protegida
l mais lenta
u no contexto da tarefa (processo) interrompida
l gerenciamento de memória mais susceptível a problemas
l mais rápida
MODELO DO S.O.:
INTERRUPÇÕES
MODELO DO S.O.:
INTERRUPÇÕES
n
Etapas de processamento de interrupção
u
o estado corrente (registros de flags e contador do programa) é
salvo na pilha (stack) ativa
u
o processador requisita um número de interrupção do (A)PIC
u
é carregado um novo valor do contador do programa da tabela
de descrição de interrupção (IDT), indexada pelo número da
interrupção
u
o processador eleva o nível do seu DIRQL (nível de requisição
de interrupção de dispositivos) para o do DIRQL da interrupção
especificada
l isso impede que outras interrupções de mesmo nível ou inferior venham a ocorrer.
INTERRUPÇÕES
MODELO DO SO
:
INTERCOMUNICAÇÃO
MODELO DO SO:
INTERCOMUNICAÇÃO
n
Existem vários formas de intercomunicação entre as tarefas
ativas, que são necessárias ao seu funcionamento
“simultâneo”
u Tipos de mensagensl Sincronização (uso de recursos e I/O entre as várias tarefas )
l Semáforos (usados para sinalizar a troca de informações)
l Pipes: pseudo dispositivos de I/O usados para enviar e receber dados entre tarefas
l Mensagens (SendMsg, WaitMsg)
u Reentrância
l mesma porção de código ser interrompida pelo SO e vir a ser executada no contexto de outra tarefa)
u Latência
l tempo que se gasta até que uma tarefa venha a ser executa após ser executada uma interrupção)