Opensolaris: Context Switch.
Los cambios de contexto son provocados cuando un thread que se esta ejecutando
en una cpu se reemplaza por uno nuevo. Pero, porque se realiza ese reemplazo
?
Los motivos son varios:
- Como vimos en el articulo
anterior cada thread tiene un quantum (tiempo de
cpu para ejecutarse) dependiendo a la scheduling class que
pertenezca, cuando se agota el thread se va a dormir.
- Un thread puede irse a dormir voluntariamente a la espera que
cierta condición se cumpla, por ejemplo cuando solicito datos que se
hallan en un almacenamiento libre me voy a dormir mientras espero que
estén disponibles y dejo la cpu libre para otros threads. Otro ejemplo
frecuente sería un thread accediendo a un recurso que actualmente esta
bloqueado, Dependiendo del tipo de bloqueo enviaríamos el thread a
dormir.