. Manter a integridade do SO;
. Proteger de usuários incompetentes;
. Aumenta confiabilidade detectando erros de interface.
Domínios de Proteção
Computador: uma coleção de objetos. e.g. CPU, arquivo, impressora, semáforos, etc.
Cada objeto tem um tipo de acesso diferente: tipo abstrato de dados. O Processo deve ter acesso somente aos objetos que precisa na hora em que for preciso. Um domínio de proteção especifica quais objetos um processo pode acessar:
É uma coleção de pares ordenados
Podem ser atribuídos:
Estaticamente
Dinamicamente.
Tipos de domínios:
Usuário: e.g. diretório, impressora, etc.
Processo: e.g. espaço de endereçamento
Procedimento: e.g. variáveis locais.
Exemplos de Domínios de Proteção
Unix:
Domínio é por usuário;
Quando é necessário acessar objetos com permissões diferentes, troca-se o usuário: SETUID.
Mas se não puder trocar o usuário o sistema fica restritivo demais.
Exemplos de Domínios de Proteção
Multics:
Anéis de proteção:
Cada anel é um domínio de proteção
Anéis vão de 0 a 7, 0 tem maior acesso
Anéis maiores são contidos em anéis menores.
Modelo simplificado: dois anéis, 0: modo superusuário; 1: modo usuário.
Sistema segmentado: cada segmento pertence a um anel.
Além disto, cada segmento tem 3 bits rwx.
Troca de domínio acontece quando um processo executando em um anel chama outro em um anel diferente.
Exemplos de Domínios de Proteção
Multics:
Para garantir proteção o segmento inclui:
Acess bracket: [b1, b2], Limite: b3
Lista de portas de acesso limitado.
Se um processo no anel i chama outro no anel j:
Se i <>
Nenhum comentário:
Postar um comentário