Sistemas operativos modernos
2.2.7 Subprocesos emergentes Los subprocesos suelen ser útiles en sistemas distribuidos. Un ejemplo importante es el modo en que se manejan los mensajes entrantes, por ejemplo, solicitudes de servicio. El enfoque tradicio nal consiste en tener un proceso o subproceso que se bloquea después de emitir una llamada recelve, en espera de un mensaje. Cuando llega un mensaje, éste se acepta y procesa. Puede adoptarse un enfoque completamente distinto, en el que la llegada de un mensaje ha ce que el sistema cree un subproceso para manejar dicho mensaje. Este tipo de subproceso se denomina subproceso emergente y se ilustra en la figura 2-15. Una ventaja clave de los sub procesos emergentes es que debido a que son totalmente nuevos, no tienen historial —registros, pila, etcétera— que deba restaurarse; cada uno inicia desde cero y todos son idénticos, y esto agi liza su creación. El mensaje que llegó se entrega al nuevo subproceso para que lo procese; el re sultado de usar subprocesos emergentes es una importante reducción en la tardanza entre la llegada del mensaje y el inicio del procesamiento. Proceso Subproceso emergente creado para manejar (a) (b) Figura 2-15. Creación de un subproceso cuando llega un mensaje, a) Antes de que llegue el mensaje, b) Cuando llega el mensaje. Se necesita planear un poco por adelantado cuando se usan subprocesos emergentes. Por ejemplo, ¿en qué proceso se ejecutará el subproceso? Si el sistema maneja subprocesos que se ejecutan en el contexto del kernel, el subproceso podría ejecutarse allí (y es por eso que no mos tramos el kemel en la figura 2-15). Hacer que el subproceso emergente se ejecute en el espacio de kemel suele ser más fácil y rápido que colocarlo en el espacio de usuario. Además, un sub proceso emergente en espacio de kernel puede tener acceso con facilidad a todas las tablas del kemel y a los disposidvos de E/S, lo cual podría ser necesario para procesar interrupciones. Por
RkJQdWJsaXNoZXIy MjI4NDcx