La protección se logra con la ayuda del núcleo del SO que valida los
intentos de acceso a recursos. El gasto de inspeccionar y validar todos los
intentos de acceso a todos los recursos es muy grande, por lo tanto debe ser
apoyada por hardware. Al aumentar la complejidad del SO, se deben refinar los
mecanismos de protección. Los sistemas de protección, no solo se preocupan de
si puedo acceder a un recurso, sino también de cómo lo accedo, por lo tanto los
diseñadores de aplicaciones deben protegerlos, y no solo el SO. Los diseñadores
de aplicaciones mediante herramientas de los lenguajes de programación pueden
declarar la protección junto con la tipificación de los datos. Ventajas:
Las necesidades de protección se declaran sencillamente y no llamando
procedimientos del SO.
Las necesidades de protección pueden expresarse independientemente de
los recursos que ofrece el SO.
El diseñador no debe proporcionar mecanismos para hacer cumplir la
protección.
Los privilegios de acceso están íntimamente relacionados con el tipo de
datos que se declara. Diferencias entre las distintas formas de protección:
Seguridad:
La obligación de cumplimiento por núcleo ofrece un grado de seguridad
que el código de seguridad ofrecido por el compilador.
Flexibilidad:
La flexibilidad de la
implementación por núcleo es limitada. Si un lenguaje no ofrece suficiente flexibilidad,
se puede extender o sustituir, perturbando menos cambios en el sistema que si
tuviera que modificarse el núcleo.
Eficiencia:
Se logra mayor eficiencia cuando el hardware apoya la protección. La
especificación de protección en un lenguaje de programación permite describir
en alto nivel las políticas de asignación y uso de recursos. El programador de
aplicaciones necesita un mecanismo de control de acceso seguro y dinámico para
distribuir capacidades a los recursos del sistema entre los procesos de
usuario. Las construcciones que permiten al programador declarar las
restricciones tienen tres operaciones básicas:
Distribuir capacidades de manera segura y eficiente entre procesos
clientes.Especificar el tipo de operaciones que un proceso podría invocar en un
recurso asignado. Especificar el orden en que un proceso dado puede invocar las
operaciones de un recurso.
No hay comentarios:
Publicar un comentario