A medida que ha aumentado la
complejidad de los sistemas operativos, sobre todo al trata de ofrecer
interfaces de más alto nivel con el usuario, lo objetivos de la protección se
han vuelto mucho más refinados. En esta refinación observamos que los diseñadores
de los diseñadores de los sistemas de protección se han apoyado mucho en ideas
que se originaron en los lenguajes de programación y especialmente en los
conceptos de tipos de datos abstractos y objetos. Los sistemas de protección
ahora se ocupan no sólo de la identidad de un recurso al cual se intenta
acceder, sino también de la naturaleza funcional de ese acceso. En los sistemas
de protección más nuevos, el interés en la función que se invocará se extiende
más allá de un conjunto de funciones definidas por el sistema, como los métodos
de acceso a archivos estándar, para incluir funciones que también podrían ser
definidas por el usuario.
Las políticas para el uso de
recursos también podrían variar, dependiendo de la aplicación, y podrían
cambiar con el tiempo. Por estas razones, la protección ya no puede
considerarse como un asunto que sólo concierne al diseñador de un sistema
operativo; también debe estar disponible como herramienta que el diseñador de
aplicaciones pueda usar para proteger los recursos de un subsistema de
aplicación contra intervenciones o errores.
Aquí es donde los lenguajes
de programación entran en escena. Especificar el control de acceso deseado a un
recurso compartido en un sistema es hacer una declaración acerca del recurso.
Este tipo de declaración se puede integrar en un lenguaje mediante una
extensión de su mecanismo de tipificación. Si se declara la protección junto
con la tipificación de los datos, el diseñado de cada subsistema puede
especificar sus necesidades de protección así debería darse directamente
durante la redacción del programa, y en el lenguaje en el que el programa mismo
se expresa. Este enfoque tiene varias ventajas importantes:
1. Las necesidades de
protección se declaran de forma sencilla en vez de programarse como una
secuencia de llamadas a procedimientos de un sistema operativo.
2. Las necesidades de
protección pueden expresarse independientemente de los recursos que ofrezca un
sistema operativo en particular.
3. El diseñador de un
subsistema no tiene que proporcionar los mecanismos para hacer cumplir la
protección.
4. Una notación declarativa
es natural porque los privilegios de acceso están íntimamente relacionados con
el concepto lingüístico de tipo de datos.
No hay comentarios:
Publicar un comentario