pc:ideas_diplomatura
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
pc:ideas_diplomatura [2007/03/01 13:51] – nicolasw | pc:ideas_diplomatura [2018/08/10 03:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 13: | Línea 13: | ||
=== Informativos === | === Informativos === | ||
* Nested monitor | * Nested monitor | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
===== Taller ===== | ===== Taller ===== | ||
Línea 18: | Línea 35: | ||
Investigar | Investigar | ||
* Inyectar ruido en el scheduler, a través de Thread.yield() o toqueteando la JVM. | * Inyectar ruido en el scheduler, a través de Thread.yield() o toqueteando la JVM. | ||
+ | * Ver [Goe06, 12.1.6 -- Generating More Interleavings] | ||
* Mostrar optimizaciones con algún ejemplo simple (//*[ x:=x+1; x:=x-1 ]//) | * Mostrar optimizaciones con algún ejemplo simple (//*[ x:=x+1; x:=x-1 ]//) | ||
- | * ver que desensamblador | + | * '' |
* '' | * '' | ||
+ | * Ver como meter algo de '' | ||
+ | * En [[http:// | ||
+ | * La palabra '' | ||
+ | * Algunos compiladores necesitan '' | ||
+ | * En la JVM se activa con '' | ||
* ?Se puede hacer un ejemplo donde se muestre la sincronización de memoria ya sea con '' | * ?Se puede hacer un ejemplo donde se muestre la sincronización de memoria ya sea con '' | ||
* Ver el sourcecode de la JVM en el scheduler y como maneja el '' | * Ver el sourcecode de la JVM en el scheduler y como maneja el '' | ||
Línea 26: | Línea 49: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * Notar que hay opciones muy específicas en la [[http:// | ||
+ | < | ||
+ | -XX: | ||
+ | |||
+ | Spin count variable for use with -XX: | ||
+ | Controls the maximum spin iterations allowed before entering operating system thread synchronization code. (Introduced in 1.4.2.) | ||
+ | |||
+ | -XX: | ||
+ | |||
+ | Enable naive spinning on Java monitor before entering operating system thread synchronizaton code. (Relevant to 1.4.2 and 5.0 only.) [1.4.2, multi-processor Windows platforms: true] | ||
+ | </ | ||
+ | |||
+ | |||
+ | == IncDecStar == | ||
+ | |||
+ | Implementar *[ x:=x+1; x:=x-1 ] | ||
+ | Deducir el grado de atomicidad de x:=x+1 a partir de si se cumple el invariante 0< | ||
+ | Es notoria la diferencia entre 1 CPU y 2 CPUs en la riqueza del scheduling. | ||
+ | Relacionar esto con el hecho de que el planificador de Java es cooperativo en realidad, o sea no tiene Quanto. | ||
+ | Está bueno mostar: | ||
+ | * Como una mala sincronización para hacer incremento atómico falla, por ejemplo '' | ||
+ | * Usar [[http:// | ||
+ | * Mirar la implementación de esto que básicamente usa '' | ||
+ | * Desensablar con '' | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | == DoubleCheckTest == | ||
+ | |||
+ | Bill Pugh, produjo un [[http:// | ||
+ | |||
+ | El problema es que para Java5 no saltan los errores. FIXME | ||
+ | |||
+ | |||
+ | == Lock-free, wait-free linked lists == | ||
+ | |||
+ | * //" | ||
+ | * **ABA problem**. Problema con las arquitecturas de 64bits en [[http:// | ||
+ | * FIXME Ver como es la implementación en '' | ||
+ | * Pensar en algo más global con Producer/ | ||
+ |
pc/ideas_diplomatura.1172757096.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)