Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Re:Multithreading.

    (Puntos:1)
    por Ghede (7303) el Domingo, 17 Octubre de 2004, 09:34h (#371292)
    un proceso necesita mucho tiempo para ser cambiado por otro en la CPU porque tiene que guardar el estado del procesador (y mas elementos) en la pila y restaurar el estado para el nuevo proceso

    Tanto entre hilos como entre procesos hace falta guardar el estado en el cambio de contexto. La diferencia real es el tiempo de creación y destrucción. Crear y destruir un hilo es mucho más barato que crear y destruir un proceso.
    [ Padre ]
  • Re:Multithreading.

    (Puntos:2)
    por raster (11855) el Domingo, 17 Octubre de 2004, 10:31h (#371307)
    ( http://www.rastersoft.com/ )
    No es exactamente así: dos procesos pueden compartir código (o no), pero siempre tendrán memoria separada y sus propios registros y pila. Esto significa que el cambio de contexto al cambiar de un proceso a otro es pesado porque hay que cambiar todas las tablas de selectores, que definen las zonas de memoria a las que accede cada proceso. Al igual, cuando un proceso crea otro, hay que crear nuevas tablas de selectores para él, lo que lleva también mucho tiempo. Al cambiar las tablas de selectores, las páginas que forman los distintos segmentos cambian, y hay que recalcular las direcciones de todos ellos y volver a cargar las cachés que almacenan los segmentos más usados. Esto es lento.

    Los hilos, sin embargo, comparten código Y memoria de datos, aunque no registros y pila. Esto significa que el cambio de contexto se limita a guardar los registros viejos, cargar los nuevos y cambiar únicamente el selector del segmento de pila, pero los otros selectores se mantienen inalterados. Esto significa que las páginas que forman los segmentos de datos y código no se cambian y las cachés de direcciones no se deben vaciar y recalcular con nuevas páginas, lo que acelera mucho el cambio de contexto y el rendimiento.

    --

    Yo quiero un par de narices...

    [ Padre ]
  • Duda existencial: ¿cuando se produce un cambio de hilo hace falta actualizar las entradas de la TLB y todo eso? Por lo que he visto por ahi, la MMU es una de las cosas mas chungas de los procesadores modernos...
    --

    Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!

    [ Padre ]