O
sistema operativo é usualmente composto por três entidades: o núcleo, as
bibliotecas de chamadas sistema e os processos de sistema.
O
núcleo implementa o mecanismo de base do sistema operativo. Em particular, a
gestão dos processos, da memória, dos ficheiros, das E/S e a comunicação entre
processos.
O
funcionamento do núcleo é fortemente influenciado por mecanismos de hardware
que permitem garantir o seu funcionamento seguro. A segurança do sistema
operativo advém da existência de um isolamento entre os processos dos
utilizadores, e entre estes e o núcleo do sistema operativo.
O
isolamento é garantido pela gestão da memória que só permite determinadas
posições de memória sejam acessíveis por um utilizador. Mas como o
funcionamento do núcleo tem de ser partilhado por todos os processos é forçado
que exista um mecanismo não controlado directamente pelos programas utilizador
para gerir estas alterações do espaço de endereçamento.
Esta
componente de hardware gere a dualidade de execução do processador em modo de
utilizador e modo núcleo: o modo utilizador restringe o acesso a determinadas posições
de memória e certas instruções que podem ultrapassar o isolamento como as que
interagem directamente como os periféricos ou com as instruções; em modo núcleo
não existem tais restrições, sendo este o modo que o núcleo do sistema
operativo se executa.
As
chamadas sistema são implementadas por um função que invoca a excepção (trap)
que transfere o controlo para o núcleo e automaticamente coloca o processador
no modo de execução núcleo.
No
núcleo é feita a escolha do código apropriado que implementa a chamada ao
sistema em causa. No final da chamada, a instrução de retorno de interrupção
devolve o controlo para a função de biblioteca que, por sua vez retorna para o
código do utilizador.
Os
processos sistema executam funções que podem ser delegas em processos autónomos,
de forma a reduzir a complexidade do núcleo ou aumentar a sua robustez. Estes
processos executam-se em modo utilizador mas pertencem ao sistema operativo
pelo que tem privilégios de administrador, contudo, para invocar funções do
sistema tem de o fazer através das chamadas ao sistema, o que é menos eficiente
do que se a execução fosse directamente do núcleo.
Uma
organização do núcleo em camadas generaliza o conceito de protecção entre modo
núcleo e modo utilizador, dividindo o núcleo em várias camadas que implementam
diferentes funcionalidades e obrigando as camadas mais externas a invocar
funções das camadas internas através do mecanismo semelhante aos das chamadas
do sistema.
Sem comentários:
Enviar um comentário