Sistemas operativos modernos
Proceso A Proceso B Proceso A Proceso B ejecutan los subprocesos 2. El sistema de tiempo de ejecución - escoge un subproceso rí! s W \ m \/ / 1. El kernel escoge un proceso Posible: Imposible; Al. A2, A3, Al. A2, A3 A1.B1.A2, B2. A3, B3 (a) Posible: A l,A2, A3, A1,A2, A3 Posible también: A l, B1.A2, B2, A3, B3 (b) Figura 2-43. a) Una posible calendarización de subprocesos en el nivel de usuario con cuanto de proceso de 50 ms y subprocesos que se ejecutan durante 5 ms en ca da ráfaga de CPU. b) Una posible calendarización de subprocesos en el nivel de ker nel con las mismas características que en a. dez del caché, que es varios órdenes de magnitud más lenta. Por otra parte, si se usan subpro cesos en el nivel de kemel y uno se bloquea en espera de E/S, no bloqueará todo el proceso co mo sucede con los subprocesos en el nivel de usuario. Puesto que el kemel sabe que conmutar de un subproceso del proceso A a uno del proce so B es más costoso que ejecutar un segundo subproceso del proceso A (porque hay que cam biar de mapa de memoria y el caché pierde su validez), puede tener esto en cuenta al tomar una decisión. Por ejemplo, si hay dos subprocesos con igual importancia, pero uno pertenece al mismo proceso al que pertenecía un subproceso que acaba de bloquearse, y el otro pertenece a un proceso distinto, se debería dar preferencia al primero. Otro factor importante es que los subprocesos en el nivel de usuario pueden utilizar un ca lendarizador de subproceso específico para la aplicación. Por ejemplo, consideremos el servidor Web de la figura 2-10. Supongamos que un subproceso trabajador recién se bloqueó y que el subproceso despachador y dos subprocesos trabajadores están listos. ¿Cuál deberá ejecutarse a continuación? El sistema de fiempo de ejecución, que sabe lo que hacen todos los subprocesos, podrá escoger con facilidad al despachador para que pueda poner en marcha a otro trabajador. Tal estrategia permite lograr el paralelismo máximo en un entorno en el que los trabajadores se bloquean con frecuencia en espera de E/S de disco. Con subprocesos en el nivel de kemel, éste nunca sabe lo que hace cada subproceso (aunque es posible asignar a los subprocesos diferen tes prioridades). En general, los calendarizadores de subprocesos específicos para la aplicación pueden afinar el desempeño de la aplicación mejor que el kemel. 2.6 INVESTIGACIONES SOBRE PROCESOS Y SUBPROCESOS En el capítulo 1 mencionamos algunas de las invesfigaciones actuales sobre estructura de sis temas operativos. En este capítulo y los que siguen veremos investigaciones con enfoques más
RkJQdWJsaXNoZXIy MjI4NDcx