faz uso da segmentacao. Destaforma, as entradas na GDT sao utilizadas apenas para o controle dos niveis deprivilegio. Os registradores de segmento sao configurados de acordo com o nivelde privilegio do codigo em execucao. Quando as rotinas do nucleo estao emexecucao, os registradores de segmentos apontam para as entradas da GDTcorrespondentes ao nivel de privilegio maximo (nivel 0), e o mesmo ocorre para drivers de dispositivos e aplicativos deusuario com seus respectivos niveis de acesso.A CPU verifica se a proxima instrucao a ser executada estaacordo com o nivel de privilegio descrito pela entrada na GDT especificada nosregistradores de segmento. Caso a instrucao exija um nivel de acesso maior doque o nivel corrente, uma excecao e gerada pela CPU, e o sistema operacionaltem condicoes de interromper o programa que esta tentado realizar uma tarefapara a qual ele nao possui permissao. Obviamente, as instrucoes para alterar a GDT, e para alterar ovalor do nivel de privilegio do codigo atual sao instrucoes privilegiadas queso podem ser executadas pelo sistema operacional. Isto impede que um programaaltere seu nivel de privilegio e passe a controlar o processador. Alem disso,para permitir que o nucleo do sistema execute com o nivel de privilegio maximo,sempre que uma interrupcao ocorre, uma rotina do sistema operacional e chamadaautomaticamente pelo processador. Essa rotina e executada com privilegiomaximo, pois o proprio processador se encarrega de mudar o nivel de privilegioantes da chamada de uma das rotinas do nucleo. Cabe ao sistema operacionalalterar o nivel de privilegio do codigo novamente, antes de retornar o controleao programa previamente interrompido. A segunda tabela dedescritores esta intimamente ligada ao processo de tratamento de interrupcoes.A IDT (Interrupt Descriptors Table)armazena os descritores de porta (gatedescriptors) que fornecem o acesso aos manipuladores de excecoes einterrupcoes (INTEL, 2011). Esses manipuladores nada mais sao do que rotinaschamadas para o tratamento de eventos. Durante o processo de inicializacao, osistema FESO cria uma IDT cujos descritores apontam para cada uma de suasfuncoes de tratamento. Desta forma, sempre que um evento ocorre, e uma rotinado sistema FESO que e posta em execucao para trata-la.A figura mostra como e a estrutura de um descritor da GDT.Cada descritor tambem possui 64 bits, ocampo offset in segment possui 32 bits ao todo, nele fica armazenado oendereco da rotina de tratamento da interrupcao. O campo segment selector aponta para um indice da GDT responsavel porespecificar em qual segmento o codigo de tratamento da interrupcao esta. Todasas interrupcoes tem seu segmento configurado para a entrada da GDT queespecifica o segmento de codigo de nivel de privilegio maximo. Deste modo,sempre que uma interrupcao for chamada, a CPU automaticamente altera oregistrador de segmento fazendo com que a rotina de tratamento tenha privilegiomaximo. De forma muito similar a GDT, os descritores da IDT saoarmazenados na memoria em sequencia. Uma estrutura com um ponteiro para oprimeiro descritor e com tamanho total da IDT e criada, e uma instrucao, aLIDT, e chamada para configurar o registrador responsavel por armazenar aposicao da IDT. Esta tambem e uma instrucao privilegiada, e apenas o SO temcondicoes de instalar suas proprias rotinas de tratamento de interrupcoes. Cada interrupcao possui um