Sistemas operativos modernos

proceso bloqueado en espera de entradas del teclado, ¿existe en el nuevo proceso un subproce­ so que también está esperando entrada del teclado? Otras abstracciones tienen que ver con sin­ cronización, señales, modelo de memoria, modelado de E/S y muchas otras áreas. Cada una de las abstracciones puede ilustrarse en forma de estructuras de datos concretas. Los usuarios pueden crear procesos, archivos, semáforos, etc. Las operaciones primitivas mani­ pulan estas estructuras de datos. Por ejemplo, los usuarios pueden leer y escribir archivos. Las operaciones primitivas se implementan en forma de llamadas al sistema. Desde el punto de vis­ ta del usuario, el sistema operativo consta de las abstracciones y de las operaciones que puede efectuar con ellas a través de las llamadas al sistema. Puesto que puede haber múltiples usuarios en sesión al mismo tiempo en una computado­ ra, el sistema operativo debe proporcionar mecanismos para mantenerlos separados. Un usua­ rio no debe interferir con otro. El concepto de proceso es muy utilizado para agrupar recursos con fines de protección. Los archivos y otras estructuras de datos también suelen protegerse. Una meta clave del diseño de sistemas es asegurarse de que cada usuario sólo pueda ejecutar operaciones autorizadas con datos autorizados. Sin embargo, los usuarios también quieren compartir datos y recursos, así que el aislamiento debe ser selectivo y estar bajo el control del usuario. Esto lo hace mucho más difícil. Algo íntimamente relacionado con este punto es la necesidad de aislar los fallos. Si una parte del sistema se cae, casi siempre un proceso de usuario, no deberá hacer que falle el res­ to del sistema. El diseño del sistema debe cuidar que las diversas partes estén bien aisladas unas de otras. Lo ideal es que algunas partes del sistema operativo también estén aisladas entre sí, para que los fallos puedan ser independientes. Por úlfimo, el sistema operativo tiene que administrar el hardware. En particular, fiene que ocuparse de todos los chips de bajo nivel, como las controladoras de interrupciones y las con­ troladoras de bus. También tiene que proporcionar un marco en el que las controladoras de dis­ positivos puedan controlar los dispositivos de E/S más grandes, como discos, impresoras y la pantalla. 12.1.2 ¿Por qué es difícil diseñar sistemas operativos? La ley de Moore dice que el hardware de computadora mejora en un factor de 100 cada déca­ da. Sin embargo, nadie puede tener una ley que diga que los sistemas operativos mejoran en un factor de 100 cada década. Ni siquiera que mejoran. De hecho, podría alegarse que algunos de ellos son peores en aspectos clave (como la confiabilidad) que la versión 7 de UNIX de la déca­ da de 1970. ¿Por qué? Gran parte de la culpa suele achacarse a la inercia y al deseo de mantener la com­ patibilidad con sistemas anteriores; no ajustarse a los buenos principios del diseño también es otro problema. Sin embargo, eso no es todo. Los sistemas operativos son fundamentalmente dis­ fintos, en ciertos senfidos, de los pequeños programas de aplicación que se venden en las fien- das de computación. Examinemos ocho de las cuestiones que hacen que el diseño de un sistema operafivo sea mucho más difícil que el de un programa de aplicación. En primer lugar, los sistemas operafivos se han convertido en programas extremadamente grandes. Ninguna persona puede sentarse frente a una PC y producir un sistema operativo se

RkJQdWJsaXNoZXIy MjI4NDcx