2011-05-18 5 views
9

Cuando leo a través the GHC Wiki commentary on the scheduler que estaba confundido acerca de esta sección:En el programador de GHC RTS, ¿por qué debería marcar una capacidad como libre?

Una de las razones detrás de marcar una capacidad tan libre cuando es entregado es de apoyo llamadas rápidas. Al realizar una llamada externa segura tenemos que liberar la capacidad, y por lo tanto entregarlo a otro hilo de trabajo. Si la llamada extranjera es corto, no queremos incurrir en el coste de un cambio de contexto en volver, pero ya que marcamos la capacidad tan libre que hay una buena posibilidad de que el Grupo de regresar podrá volver a adquirirlo inmediatamente y continuar. El trabajador que nos despertamos encontrará que la capacidad es propiedad , y volver a dormir de nuevo (Esto puede incurrir en un interruptor de doble contexto si no hay CPUs libres en el que se ejecute el trabajador, sin embargo).

Mi pregunta:
Para la frase en negrita, lo que de hecho dará lugar a la "interruptor de doble contexto", con o sin marcar una capacidad tan libre. Además, ¿cuáles son los dos "interruptores" si suceden - de who1 a who2, then who2 to who3?

+0

Hola Wu, es posible obtener una respuesta más directa mediante la consulta [email protected], [email protected], o la #ghc Canal IRC en Freenode. –

+0

@Edward Z. Yang: Gracias – Nybble

Respuesta

Cuestiones relacionadas