O hardware impede que um programa de usuário obtenha controle completo da CPU através de vários mecanismos, todos trabalhando juntos para aplicar um princípio crucial:
Proteção . Esses mecanismos residem principalmente na própria CPU e na unidade de gerenciamento de memória (MMU):
1.
Proteção/privilégio anel Níveis de privilégio: A maioria das CPUs modernas emprega um modelo de proteção com anel. Isso divide os modos de execução da CPU em anéis concêntricos, cada um com níveis de privilégio decrescentes. O anel mais interno (anel 0, ou modo de kernel) tem acesso completo a todos os hardware e recursos. Os programas de usuário geralmente são executados em um anel mais alto (anel 3 ou modo de usuário), severamente restritos no que eles podem acessar ou executar diretamente. As tentativas de executar instruções privilegiadas (por exemplo, acessando diretamente as portas de E/S, manipulando os registros internos da CPU de maneiras que possam comprometer o sistema) de um anel mais alto resultarão em uma armadilha ou exceção, transferindo o controle para o sistema operacional (kernel).
2.
Unidade de Gerenciamento de Memória (MMU): O MMU é um componente de hardware crucial que traduz endereços virtuais usados pelos programas em endereços físicos na RAM. Ele aplica vários mecanismos de proteção -chave:
*
Memória virtual: Cada processo recebe seu próprio espaço de endereço virtual, isolando -o de outros processos. Mesmo que um processo tenha um bug que substitua a memória, é improvável que afete outros processos porque o MMU traduzirá seus acessos ao seu próprio espaço alocado.
*
segmentação/paginação: Estes são métodos usados pelo MMU para dividir a memória em segmentos ou páginas. As permissões de acesso (leia, gravar, executar) podem ser atribuídas individualmente a cada segmento ou página. O MMU verifica essas permissões antes de permitir o acesso à memória, impedindo que um programa de usuário, por exemplo, escreva no segmento de código do kernel ou leia dados confidenciais da memória de outro processo.
*
Tradução de endereço: O MMU impede que um programa acesse diretamente endereços de memória física. Ele intercepta todos os acessos de memória, validando -os nas listas de controle de acesso antes de permitir.
3.
interrupções e exceções: Interrupções de hardware (por exemplo, de um timer, teclado ou adaptador de rede) e exceções de software (por exemplo, divisão por zero, instrução ilegal) causam uma transferência de controle para o kernel do sistema operacional. Isso impede que um programa de usuário monopolize a CPU indefinidamente e permite que o sistema operacional gerencie recursos e lide com eventos. O kernel determina então a ação apropriada, que pode incluir a encerramento do programa ofensivo.
4.
Timers: A CPU possui temporizadores internos que interrompem periodicamente o programa em execução, permitindo que o sistema operacional agende outros processos e impeça que qualquer programa seja executado para sempre. Sem isso, um programa de comportamento incorreto pode manter a CPU refém.
5. Instruções protegidas: Algumas instruções são privilegiadas e só podem ser executadas no modo kernel. Tentar executar uma instrução privilegiada do modo de usuário resulta em uma armadilha, impedindo o acesso não autorizado a recursos de hardware e sistema.
Em resumo, uma combinação de recursos de hardware, como proteção com anel, os recursos de gerenciamento de memória da MMU, manuseio de interrupções, temporizadores e instruções protegidas funcionam em conjunto com o sistema operacional para impedir que um programa de usuário obtenha controle completo da CPU, mantendo a estabilidade e a segurança do sistema. Se um único componente falhasse, os outros ainda ofereceriam uma medida de proteção, mas a segurança geral do sistema seria reduzida.