Sistemas operativos modernos
estrechos, comenzando con los procesos. Como irá quedando claro, algunos temas están su friendo menos cambios que otros. Casi todas las investigaciones tienden a ser sobre los temas nuevos, más que sobre los que se han estudiado durante décadas. El concepto de proceso es un ejemplo de tema bien establecido. Casi todos los sistemas manejan una noción de proceso como contenedor para agrupar recursos relacionados, como un espacio de direcciones, subprocesos, archivos abiertos, permisos para protección, etc. Los di versos sistemas agrupan estas cosas de formas un poco distintas, pero se trata meramente de diferencias en ingeniería. La idea fundamental ya no da pie a muchas controversias y hay po cas investigaciones nuevas sobre el tema. Los subprocesos son una idea más reciente que los procesos, por lo que todavía se están efectuando investigaciones al respecto. Hauser et al. (1993) examinaron la forma en que los pro gramas reales usan subprocesos y distinguieron diez paradigmas del uso de subprocesos. La ca lendarización de subprocesos (tanto en sistemas uniprocesador como multiprocesador) sigue siendo el tema favorito de algunos investigadores (Blumofe y Leiserson, 1994; Buchanan y Chien, 1997; Corbalán et al., 2000; Chandra et al., 2000; Duda y Cheriton, 1999; Ford y Susar- la, 1996, y Petrou et al., 1999). No obstante, pocos diseñadores de sistemas reales se pasan el día angustiados por la falta de un buen algoritmo de calendarización de subprocesos. Al parecer, este tipo de investigaciones se realizan más por iniciativa de los investigadores que a causa de la demanda. Algo íntimamente relacionado con los subprocesos es la sincronización y la exclusión mu tua. En los años setenta y ochenta, estos temas se investigaron hasta el cansancio, por lo que ahora no se está trabajando mucho al respecto, y lo que se está haciendo tiende a concentrarse en el desempeño (por ejemplo, Liedtke, 1993), en herramientas para detectar errores de sincro nización (Savage et a i, 1997), o en nuevas modificaciones de conceptos viejos (Tai y Carver, 1996; Trono, 2000). Por último, siguen produciéndose sistemas de subprocesos que cumplen con POSIX, y generándose informes acerca de ellos (Alfieri, 1994; Miller, 1999). 2.7 RESUMEN A fin de ocultar los efectos de las interrupciones, los sistemas operativos ofrecen un modelo con ceptual que consiste en procesos secuenciales que se ejecutan en paralelo. Los procesos pueden crearse y terminarse en forma dinámica. Cada proceso tiene su propio espacio de direcciones. En algunas aplicaciones resulta útil tener múltiples subprocesos de control dentro de un mismo proceso. Estos subprocesos se calendarizan de manera independiente y cada uno tiene su propia pila, pero todos los subprocesos de un proceso comparten un espacio de direcciones común. Los subprocesos pueden implementarse en el espacio de usuario o en el kernel. Los procesos pueden comunicarse entre sí empleando primitivas de comunicación, como se máforos, monitores o mensajes, que sirven para garantizar que nunca haya dos procesos en sus regiones crí'ticas al mismo tiempo, situación que conduce al caos. Un proceso puede estar en eje cución, listo o bloqueado, y puede cambiar de estado cuando él u otro proceso ejecute una de las primitivas de comunicación entre procesos. La comunicación entre subprocesos es similar.
RkJQdWJsaXNoZXIy MjI4NDcx