Sistemas operativos modernos
da que hacer en tanto el subproceso no esté disponible. Por ello, se han buscado algoritmos que intentan calendarizar tanto en el tiempo como en el espacio, sobre todo cuando los procesos crean múltiples subprocesos que por lo regular necesitan comunicarse entre sí. Para ver el tipo de problemas que pueden presentarse cuando los subprocesos de un proce so (o los procesos de un trabajo) se calendarizan de forma independiente, consideremos un sis tema con los subprocesos A q y A, que pertenecen al proceso A, y los subprocesos B q y que pertenecen al proceso B. Los subprocesos A q y B q se manejan por tiempo compartido en la CPU 0; los subprocesos A, y Bi se manejan por tiempo compartido en la CPU l. Los subprocesos A q y A] necesitan comunicarse con frecuencia. El patrón de comunicación es que A q envía un men saje a Aj, y Al le devuelve una respuesta, después de lo cual se repite la sucesión de mensajes. Supongamos que por casualidad A q y inician primero, como se muestra en la figura 8-14. Tiempo o Subproceso A q en ejecución 100 200 300 400 500 600 Figura 8-14. Comunicación entre dos subprocesos que pertenecen al proceso A y se ejecutan desfasados. En la porción de tiempo O, A q envía una solicitud a Aj, pero A, no la recibe sino hasta que se ejecuta en la porción de tiempo 1, que inicia a los 100 ms. A, envía la respuesta de inmedia to, pero A q no la recibe sino hasta que se ejecuta otra vez a los 200 ms. El resultado neto es una sucesión solicitud-respuesta cada 200 ms. Esto no es muy satisfactorio. La solución a este problema es la calendarización tipo pandilla, que se deriva de la co- calendarización (Ousterhout, 1982). La calendarización tipo pandilla tiene tres partes: 1. Los grupos de subprocesos relacionados se calendarizan como una sola unidad, una pandilla. 2. Todos los miembros de una pandilla se ejecutan de manera simultánea, en diferentes CPUs bajo un régimen de tiempo compartido. 3. Todos los miembros de la pandilla inician y terminan sus porciones de tiempo juntos. El secreto para que funcione la calendarización tipo pandilla es que todas las CPUs se calen darizan de forma síncrona. Esto implica que el tiempo se divide en cuantos discretos como en la figura 8-14. Al principio de cada nuevo cuanto, todas las CPUs vuelven a calendarizarse, inicián dose un nuevo subproceso en cada una. Al principio del siguiente cuanto, hay otro suceso de ca-
RkJQdWJsaXNoZXIy MjI4NDcx