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.
  • por pobrecito hablador el Martes, 04 Febrero de 2014, 15:43h (#1354423)
    El que tiene poca experiencia real eres tu, pero experiencia de ensenyar.

    Tu enfoque es imposible de llevar a cabo en una asignatura, porque de lo que se trata es de asentar unas bases solidas en la materia, y que luego cada cual utilice dichas bases para seguir creciendo.

    Es imposible tener en cuenta TODAS las posibles situaciones, no ya en Programacion Concurrente, sino en cualquier asignatura de Programacion.

    Por otro lado, es ridiculo centrarse en optimizaciones que dependan de la herramienta. Una asignatura no deberia nunca centrarse en las particularidades de las herramientas. La Programacion Concurrente es concurrente sin importar si compilas con gcc o clang, sin importar si usas Linux o Windows, sin importar si usas Java o C++, sin importar si tu codigo funciona sobre ARM, x86, SPARC o 68k. Que luego tu, como profesional, si trabajas con C++ con GCC sobre Linux sobre SPARC necesitas conocer las particularidades en materia de concurrencia de cada herramienta en tu trabajo? Por supuesto, pero eso no es tarea del profesor, sino del profesional.

    Tu queja es la misma que la del payo que se queja de que se use Pascal para ensenyar a programar. Vamos, una queja estupida que demuestra que hay mucha gente que sale de la universidad sin tener ni pajolera idea de lo que ha aprendido.

    [ Padre ]
  • por pobrecito hablador el Martes, 04 Febrero de 2014, 20:13h (#1354437)
    Un libro moderno sobre concurrencia no puede dejar al lector pensando que todo funciona como si los hilos se turnaran, intercalando instrucciones de uno y otro hilo (modelo de memoria consistente con ejecución secuencial, seq-cst). Esto no es así en ningún sistema SMP moderno, ni siquiera en x86.

    Cualquier libro moderno sobre concurrencia debería hablar de las relaciones sucede-antes-de (happens-before) y sincroniza-con (synchronizes-with). No sólo por que las últimas especificaciones de algunos lenguajes (Java, C++11, C11, ...) utilicen esas relaciones, sino porque es un modelo matemático y claro de pensar en lo que sucede en un sistema concurrente.

    Con respecto a tiempo real, aunque no es mi especialidad, la lección más importante que se puede enseñar sobre tiempo real, es que lo más importante es el determinismo, de forma que si tienes dos formas de hacer algo, A y B, y A es lenta pero siempre tarda lo mismo, mientras que B es más rápida casi siempre, pero a veces tarda lo mismo que A, A es preferible. En tiempo real no se quieren sorpresas. Esto es así hasta tal punto, que muchos microprocesadores incluyen soporte para bloquear entradas de caché y de TLB: aunque un algoritmo LRU fuera más eficiente, es mucho más importante el determinismo.

    Así que coincido con el comentario al que respondes: a los autores les faltan conocimientos reales sobre los temas que tratan.
    [ Padre ]
  • por pobrecito hablador el Miércoles, 05 Febrero de 2014, 06:34h (#1354452)
    Control de la memoria es algo de muchisima importancia en los sistemas concurrentes como para obviarlo. El objetivo de enseñar es dar formacion adecuada y abrir la curiosidad del estudiante para que se siga formando, formacion que luego le pueda servir en su carrera profesional.

    Lo que aparece ahi, ya te digo, es muy basico. Lo entenderia como introduccion en la materia, pero no como para una asignatura completa. No se debe dar todo, por supuesto, pero si los profesores tuvieran experiencia en la programacion de sistemas concurrentes, seguramente la mitad de la paja la quitarian, y a su vez pondrian cosas mucho mas utiles. Escucha a Herb Sutter al respecto, porque una charla de una hora de Sutter da mas informacion y ayuda mas que este libro entero.

    Control de la memoria es algo de muchisima importancia en los sistemas concurrentes como para obviarlo. El objetivo de enseñar es dar formacion adecuada y abrir la curiosidad del estudiante para que se siga formando, formacion que luego le pueda servir en su carrera profesional.

    Sobre las optimizaciones, creo que no entiendes como funcionan los sistemas de tiempo real. Sistemas concurrentes y de tiempo real son dos cosas distintas. En este libro se mezclan las dos pero son cosas distintas.

    En un sistema de tiempo real "hard", uno debe garantizar una respuesta en un determinado espacio de tiempo. Eso es algo que cualquier estudiante de informatica deberia saber. Si habilitas las optimizaciones en el compilador (y te aseguro que si escribes codigo sin saber nada el compilador te lo optimizara), te encontraras con que no vas a poder tener cierta garantia sobre como se ejecutara ese codigo. En los sistemas de tiempo real, se necesita sistemas deterministicos puros.

    Sobre las optimizaciones, creo que no entiendes como funcionan los sistemas de tiempo real. Sistemas concurrentes y de tiempo real son dos cosas distintas. En este libro se mezclan las dos pero son cosas distintas.

    En un sistema de tiempo real "hard", uno debe garantizar una respuesta en un determinado espacio de tiempo. Eso es algo que cualquier estudiante de informatica deberia saber. Si habilitas las optimizaciones en el compilador (y te aseguro que si escribes codigo sin saber nada el compilador te lo optimizara), te encontraras con que no vas a poder tener cierta garantia sobre como se ejecutara ese codigo. En los sistemas de tiempo real, se necesita sistemas deterministicos puros.
    [ Padre ]