Sistemas Operacionais - profalansantos.files.wordpress.com · Estrutura do Sistema Operacional...
Transcript of Sistemas Operacionais - profalansantos.files.wordpress.com · Estrutura do Sistema Operacional...
Estrutura do Sistema OperacionalModos de Acesso
• Existem certas instruções que não podem ser colocadasdiretamente à disposição das aplicações, pois a sua utilizaçãoindevida ocasionaria sérios problemas à integridade dosistema.
• As instruções que têm o poder de comprometer o sistemasão conhecidas como instruções privilegiadas, enquanto asinstruções não-privilegiadas são as que não oferecem perigoao sistema.
• Para que o sistema possa gerenciar a máquina, ele tem queestar em um nível de privilégio superior ao dos demaisprocessos que estão em execução.
• Se os processos estiverem no mesmo nível de privilégio que o SO, todos terão o mesmo poder de mando, o que levará ao caos e consequentemente, nada funcionará corretamente.
Estrutura do Sistema OperacionalModos de Acesso
• Para conseguir ter privilégios superiores, o SO utiliza um recurso existente em diversos processadores conhecido como modo de acesso.
• Em geral, os processadores possuem dois modos de acesso: modo usuário e modo kernel.
• Quando o processador trabalha no modo usuário, só é permitido o acesso a parte do conjunto de instruções. As instruções permitidas são chamadas de instruções não-privilegiadas.
• Além disso, diversos outros mecanismos de proteção e restrição de acesso entram em funcionamento.
Estrutura do Sistema OperacionalModos de Acesso
• No modo kernel, todo o conjunto de instruções pode ser executado. As instruções que só podem ser executadas neste modo são conhecidas por instruções privilegiadas.
• Esta separação de instruções privilegiadas e não-privilegiadas pode ser vista como sendo privilegiadas as instruções que colocam em risco o funcionamento do SO e não-privilegiadas são as instruções inofensivas, isto é, as que não oferecem risco ao SO.
• Modo usuário• Nesse modo, o SO não permite o acesso a recursos
significantes
• Apenas um subconjunto de instruções de máq. está disponível
• Modo Kernel (Núcleo) ou Supervisor• Permite ao programa a utilização de recursos mais
delicados
• Acesso completo a todo o hardware e capacidade de executar qualquer instrução que a máquina possa executar
Estrutura do Sistema OperacionalModos de Acesso
• Um mesmo programa pode conter partes executadas em modo Kernel, enquanto que outras partes podem estar sendo executadas em modo usuário.
• Há um registrador na UCP que indica o modo de acesso corrente.
Estrutura do Sistema OperacionalModos de Acesso
Estrutura do Sistema OperacionalRotinas do SO e Chamadas ao Sistema (System Calls)
• As rotinas do SO compõem o núcleo do sistema, oferecendo serviços aos usuários e suas aplicações.
• Todas as funções do núcleo são implementadas por rotinas do sistema que necessariamente possuem em seu código instruções privilegiadas.
• A partir desta condição, para que estas rotinas possam ser executadas, o processador deve estar obrigatoriamente em modo kernel, o que exige a implementação de mecanismos de proteção para garantir a confiabilidade do sistema.
• Todo o controle de execução de rotinas do sistema operacional é realizado pelo mecanismo conhecido como system call.
• Toda vez que uma aplicação desejar chamar uma rotina do sistema operacional, o mecanismo de system call é ativado.
• Inicialmente, o SO verificará se a aplicação possui os privilégios necessários para executar a rotina desejada.
Estrutura do Sistema OperacionalRotinas do SO e Chamadas ao Sistema (System Calls)
• Em caso negativo, o SO impedirá o desvio para a rotina, sinalizando ao programa chamador que a operação não é possível.
• Este é um mecanismo de proteção por software no qual o SO garante que as aplicações só poderão executar rotinas do sistema que estão previamente autorizadas.
• Considerando que a aplicação possua o devido privilégio, o sistema primeiramente salva o conteúdo corrente dos registradores, troca o modo de acesso do processador de usuário para kernel e realiza o desvio para a rotina alterando o registrador PC com o endereço da rotina chamada.
• Ao término da execução da rotina, o modo de acesso é alterado de kernel para usuário e o contexto dos registradores restaurado para que a aplicação continue a execução a partir da instrução que chamou a rotina do sistema.
Altera o modo de acesso do
processador para kernel
Estrutura do Sistema OperacionalRotinas do SO e Chamadas ao Sistema (System Calls)
Salva o contexto dos
registradores
Altera o modo de acesso do
processador para usuário
Restaura contexto dos
registradores
Aplicação
Rotina do SO
Modo k
ern
el
Modo U
suário
Modo U
suário
Chamada de sistema
10
Programas de usuário
rodam em modo usuário
Rotinas do SO rodam em
modo kernelProcedimentos de
Serviço
Programa de usuário 2
Programa de usuário 1
Chamada ao sistema (kernel)
Mem
óri
a P
rin
cip
al
1
2
TRAP 3
Tabela de
Escalonamento
4
Procedimentos de
Serviços
Implementação de uma Chamada de Sistema
chaveamento da máquina do modo usuário para o modo kernel e transferência do controle para o Sistema Operacional
Sistema Operacional examina os parâmetros da chamada para determinar qual procedimento deve ser executado
SO indexa em uma tabela um ponteiro para o processo
responsável pela execução
a chamada é concluída e o controle volta ao programa do usuário
11
• Mecanismo de proteção ao núcleo do sistema e deacesso aos seus serviços.
• O usuário (ou aplicação), quando deseja solicitaralgum serviço do sistema, realiza uma chamada auma de suas rotinas (ou serviços) através da systemcalls (chamadas ao sistema).
Estrutura do Sistema OperacionalRotinas do SO e Chamadas ao Sistema (System Calls)
12
Aplicação System Call Núcleo
Hardware
Estrutura do Sistema OperacionalRotinas do SO e Chamadas ao Sistema (System Calls)
13
Chamada a uma rotina do sistema
Memóriaprincipal
ProgramaUsuário A
ProgramaUsuário B
Rotina doSistema
System Call
Programasdos usuáriosexecutamno modousuário
SO executa no modoKernell
14
Chamada de sistema
• Forma que um programa solicita serviços ao sistema operacional• Análogo a sub-rotinas
• É o núcleo (Kernel) do sistema operacional que implementa as chamadas de sistemas• Existem chamadas de sistemas associadas a gerência do
processador, de memória, arquivos e de entrada e saída
• Variação: micro-kernel• Serviços básicos são implementados pelo micro-kernel
• Kernel implementa demais serviços empregando esses serviços básicos
15
Organização do sistema em Kernel e Microkernel
APLICAÇÃO
KERNEL
MICROKERNEL
HARDWARE
Chamada de sistema
Serviços do microkernel
16
Programas de sistema
• Programas executados fora do kernel (utilitários)
• Implementam tarefas básicas• Muitas vezes confundidos com o próprio sistema operacional
• Ex: compiladores, assemblers, ligadores, etc
• Interpretadores de comandos
• Ativado sempre que o sistema operacional inicia sessão de trabalho• Ex: bash, tsch, sh, etc
• Interface gráfico de usário (GUI)• Ex: Família windows, MacOs, etc