Questão de Sistemas Operacionais — Conceitos, Funções e Tipos de Sistemas Operacionais — CESPE / CEBRASPE 2023
- Código
- ce398029
- Banca
- CESPE / CEBRASPE
- Órgão
- DATAPREV
- Ano
- 2023
- Cargo
- Ana TI ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. A afirmação está incorreta porque a lista de controle de acesso por coluna (ACL por coluna) não é o tipo menos viável para grandes sistemas; na verdade, é a lista de controle de acesso por linha (ACL por linha) que se torna inviável em sistemas de grande porte, devido à necessidade de armazenar uma lista para cada objeto, o que gera um overhead excessivo. A questão inverte o conceito, trocando a viabilidade entre os tipos de ACL.
O conceito central aqui é o de domínio de proteção, que define o conjunto de objetos (arquivos, processos, dispositivos) que um processo pode acessar e as operações permitidas sobre eles. Para implementar esses domínios, os sistemas operacionais utilizam três abordagens principais: a matriz de acesso, a lista de controle de acesso (ACL) e a lista de capacidades. A matriz de acesso é uma tabela bidimensional onde as linhas representam os domínios (sujeitos) e as colunas representam os objetos, e cada célula contém os direitos de acesso do domínio sobre o objeto. Essa matriz, embora conceitualmente simples, é ineficiente na prática, pois é esparsa (a maioria das células é vazia) e difícil de gerenciar em sistemas grandes. Por isso, ela é decomposta em duas estruturas mais eficientes: a ACL e a lista de capacidades.
A lista de controle de acesso (ACL) é associada a cada objeto e lista os domínios (ou usuários) que têm permissão de acesso e quais operações podem realizar. Quando a ACL é organizada por coluna, ela representa a visão da matriz de acesso a partir do objeto: para cada objeto, temos uma lista de domínios com seus direitos. Essa abordagem é eficiente para verificar rapidamente quem pode acessar um objeto específico, mas, em grandes sistemas, o número de objetos é enorme, e cada objeto precisa de sua própria ACL. Isso torna a ACL por coluna inviável para grandes sistemas, pois o armazenamento e a manutenção de milhões de listas individuais se tornam um gargalo. Por outro lado, a lista de capacidades é associada a cada domínio (sujeito) e lista os objetos que ele pode acessar e as operações permitidas. Essa abordagem é eficiente para verificar rapidamente o que um domínio pode acessar, mas é difícil de revogar permissões, pois é necessário encontrar todas as capacidades que referenciam um objeto. A ACL por linha é a visão da matriz a partir do domínio: para cada domínio, temos uma lista de objetos com seus direitos. Essa abordagem é eficiente para verificar rapidamente o que um domínio pode acessar, mas, em grandes sistemas, o número de domínios é menor que o número de objetos, tornando a ACL por linha mais viável que a por coluna.
A pegadinha da questão está em inverter a viabilidade: a banca afirma que a ACL por coluna é a menos viável, mas, na verdade, é a ACL por linha que se torna inviável em grandes sistemas, pois o número de objetos é muito maior que o número de domínios, e cada domínio precisaria de uma lista enorme de objetos. A ACL por coluna, embora também tenha limitações, é a abordagem mais comum e viável na prática, pois cada objeto tem sua própria lista de quem pode acessá-lo, o que facilita a verificação de permissões e a revogação de acessos. Portanto, a afirmação está errada ao atribuir a inviabilidade à ACL por coluna, quando na verdade é a ACL por linha que sofre com o crescimento do sistema.
Para fixar o conceito, é importante entender a diferença entre as três abordagens e como elas se relacionam com a matriz de acesso. A matriz de acesso é a abstração teórica, enquanto a ACL e a lista de capacidades são implementações práticas que decompõem a matriz para otimizar o desempenho. A escolha entre ACL e lista de capacidades depende do tipo de operação que se deseja otimizar: se o foco é verificar quem pode acessar um objeto, a ACL é mais eficiente; se o foco é verificar o que um domínio pode acessar, a lista de capacidades é mais eficiente. Em sistemas operacionais modernos, a ACL é a abordagem mais utilizada, especialmente em sistemas de arquivos, onde cada arquivo tem uma lista de permissões para usuários e grupos.
Critério | ACL por Coluna | ACL por Linha |
|---|---|---|
Associação | Associada a cada objeto | Associada a cada domínio (sujeito) |
Visão da matriz de acesso | A partir do objeto (quem pode acessá-lo) | A partir do domínio (o que ele pode acessar) |
Viabilidade em grandes sistemas | Mais viável (número de objetos é grande, mas cada objeto tem sua própria lista; facilita verificação e revogação) | Menos viável (cada domínio precisaria de uma lista enorme de objetos; overhead excessivo) |
Uso prático | Abordagem mais comum (ex.: sistemas de arquivos) | Raramente usada em sistemas grandes |
A afirmação está errada porque inverte a viabilidade das listas de controle de acesso. A ACL por coluna é a abordagem mais viável para grandes sistemas, pois cada objeto tem sua própria lista de permissões, o que facilita a verificação e a revogação de acessos. A ACL por linha, por outro lado, é menos viável, pois cada domínio precisaria de uma lista de todos os objetos que pode acessar, o que se torna inviável quando o número de objetos é muito grande. A banca trocou os conceitos, afirmando que a ACL por coluna é a menos viável, quando na verdade é a ACL por linha que sofre com o crescimento do sistema.
Gabarito: ERRADO
Link permanente: /questoes/ce398029