sistemas operacionais - profalansantos.files.wordpress.com · estrutura do sistema operacional...

16
Sistemas Operacionais Estrutura do Sistema Operacional: Modos de Acesso

Upload: vantuong

Post on 25-Jan-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas OperacionaisEstrutura do Sistema Operacional:

Modos de Acesso

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