Você está na página 1de 4

SERVIÇO PÚBLICO FEDERAL

MINISTÉRIO DA EDUCAÇÃO
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO PARÁ
CURSO TÉCNICO EM REDES DE COMPUTADORES

IVAN DOUGLAS COSTA DE SOUSA


NILCIRENE BRITO DE ALMEIDA
WALAX BATISTA DA SILVA

Resumo
Disciplina: Sistemas Operacionais
Professora: Caren Castro

CASTANHAL-PA
2020
SUPORTE DE HARDWARE À EXECUÇÃO DO NÚCLEO (KERNEL)

O CONFINAMENTO DO NÚCLEO

Um dos pressupostos básicos da segurança é conseguir isolar completamente o


código e as estruturas de dados do núcleo para que nenhum processo usuário possa ter
acesso a ele, garantido dessa forma que não é possível manipular parâmetros de sistema
operacional ou substituir o código do núcleo por outro, eventualmente contendo possíveis
armadilhas.
A variável de estado define dois modos de execução do processador: o modo
núcleo e modo usuário (frequentemente denominada de kernel/user). Esses modos
permitem controlar quando uma instrução é executada e o contexto em que o processador
se encontra.
No modo mais privilegiado - núcleo, ou no modo menos privilegiada - usuário.
Concretamente, no modo núcleo o processador pode acessar toda a memória e,
contrariamente, no modo usuário o processo pode apenas acessar o espaço de
endereçamento que lhe foi atribuído.
Essa separação, garantida pelo Hardware, é fundamental porque, de outro modo,
as estruturas de dados internos e as funções do núcleo poderiam ser acessadas/executadas
por qualquer usuário, e não seria possível definir quem teria o direito a executar uma
determinada operação ou acessar um determinado arquivo, pois a informação onde esses
privilégios estariam registrados poderia ser modificada por qualquer usuário.
Outro importante mecanismo de segurança associado ao modo de execução do
processo a dor é a restrição, em modo usuário, a execução de determinada instrução que
pode afetar globalmente O isolamento, tais como as instruções de entrada e saída para
periféricos ou de controle das interrupções.

EXCEÇÕES E INTERRUPÇÕES

Conceitualmente, podemos considerar que uma exceção é provocada por um


evento não esperado, que necessita ser tratado para que o programa possa continuar a sua
execução.
Apesar de nessa fase o tratamento de ambas ser semelhante, iremos designar no
texto as exceções assíncronas como interrupções e as exceções síncronas simplesmente
como exceções.

TRATAMENTO DAS INTERRUPÇÕES

O tratamento das interrupções varia de máquina para máquina, mas existe um


modelo comum que permite reconhecer os mesmos mecanismos na maioria dos
processadores.
O controle de tratamento das interrupções baseia-se em dois mecanismos. O
primeiro é automático e inibe as interrupções, depois de uma delas ter sido aceita. O
segundo é explicitamente gerenciado por programação, através de um controle individual
das interrupções.
O primeiro mecanismo visa evitar que durante o tratamento de uma interrupção
apareça outra que provoque nova mudança de contexto, impedindo que o tratamento do
evento seja rapidamente realizado e, sobretudo, evitando potenciais problemas de
sincronização.
É provável que a rotina de interrupção utilize os registros gerais, motivo pelo qual,
nesse caso, estes também devem ser salvos. Essa operação de salvamento pode ficar a
cargo das primeiras instruções da rotina de interrupção ou ser parcialmente executada
pelo hardware antes de transferir o controle para a rotina de interrupção. Um aspecto
relevante no contexto de tratamento das interrupções, e muito importante nos capítulos
seguintes, tem a ver com a pilha de execução.
Os primeiros processadores apenas possuíam uma linha de interrupção, o que
provocava o salto incondicional para uma determinada posição de memória, a partir da
qual se executar a rotina de interrupção em que, por sua vez, testava sistematicamente as
condições que poderiam ter originado a interrupção.
A ordem pela qual o teste era feito determinava a prioridade relativa dos eventos.
Para evitar esse teste programado foram incluídos, na arquitetura das interrupções,
mecanismo de vetorização. Em resposta a um ciclo de interrupção iniciado pelo
processador, o periférico envia um identificador que permite ao hardware acessar uma
tabela indexada nas interrupções onde estão registradas as rotinas de tratamento, sendo a
rotina apropriada colocada em execução.
CHAMADAS DE SISTEMA

Nenhuma operação do sistema operacional poderá ser executada sem ser através
da invocação das chamadas de sistemas fornecidas pelo sistema operacional. Apesar do
isolamento garantido pela barreira de proteção, é fundamental permite a invocação de
funções residentes no núcleo a partir das chamadas de sistema que se executam em modo
usuário, pois, de outra forma, as aplicações não poderiam usar os serviços do sistema
operacional.
A chamada de sistema em modo usuário pode, por sua vez, se composta de duas
partes, um preâmbulo, um conjunto inicial de instruções em linguagem de máquina
executado antes da passagem ao modo núcleo e uma finalização quando retorna do modo
núcleo.
O Preâmbulo é responsável pela validação inicial dos parâmetros de, pela
colocação dos parâmetros nas estruturas adequadas e finalmente por desencadear a
exceção com vetor que identifica a função a ser chamada.
As chamadas de sistema têm ainda um segundo mecanismo de proteção
relacionado com a validação dos parâmetros das chamadas de sistema. Muitos dos
parâmetros das funções são endereços (ponteiros para estruturas de dados) que, ao serem
passados para dentro do núcleo, serão executados por instruções no modo núcleo e,
portanto, sem restrições de endereçamento.
Para garantir o isolamento, um usuário não pode especificar como parâmetro de
uma chamada de sistema um endereço de uma área de memória que não lhe pertença
porque, ao passá-lo para o núcleo poderia acessar essas estruturas de dados sem qualquer
restrição. Antes de executar qualquer operação, as chamadas de sistema validam os
endereços que lhes são fornecidos.

REFERÊNCIA
MARQUES, José Alves. Sistemas operacionais...[et al.]; adaptação e revisão técnica
Edgar Toshiro Yano. – Rio de Janeiro: LTC, 2011.

Você também pode gostar