Etiquetas
Estas son las fe de erratas (disculpas) de las diferentes versiones del libro Principios y algoritmos de concurrencia. Cuando las hago actualizo inmediatamente las versiones de Amazon y Google Play. Pero si la habéis comprado antes no las recibís a menos que notifique que es un error importante, en cuyo caso recibiréis una versión actualizada.
El número de versión y fecha sale al principio, en la página de créditos:
Principios y algoritmos de concurrencia
© Ricardo Galli Granada
Diseño de portada: Damián Vila
Ilustraciones: Juan Ramón Mora «JRMora»
Foto: Spaghetti Worlds, Carl Milner (Flickr)
Corrección: Marilín Gonzalo y Juan Sosa
Versión: 1.0.7, 2015-06-20
Palma de Mallorca, 2015
ISBN: 978-84-606-8761-0
Licencia: CC BY-NC-ND 4.0
Versión impresa
1.0 (26/08/2015)
Sin cambios
Versión digital
1.0.11 (27/08/2015)
Corregidos dos erratas ortográficas sin importancia.
Cambiado texto al final de licencia en el «Manifiesto» para «pedir colaboración» en la promoción.
Agregado enlace a la página de Facebook (https://www.facebook.com/concurrencia) en la «fe de erratas».
1.0.10 (10/7/2015)
En el capítulo semáforos, solución óptima de filósofos, en la declaración del array status se ponía erróneamente «semaphore»:
Semaphore status[5] = [THINKING,... ,THINKING]
Cambiado a
status[5] = [THINKING,... ,THINKING]
1.0.9 (7/7/2015)
En el capítulo de barreras, cambiado el comentario The global variable a Thread’s local variable.
Agregado enlace a esta página de erratas en el «Fe de erratas» del Manifiesto.
1.0.8 (23/6/2015)
En el apéndice A5. Semáforos se incluía dos veces el código de productor-consumidor con buffer infinito en vez del buffer limitado.
1.0.7 (20/6/2015)
En el capítulo 2, se cambió Cuando verifique el número de _P1_ ambos tendrán el mismo (0) por Cuando verifique el número de _P1_ ambos tendrán el mismo (1).
En el pseudocódigo a continuación la comparación correcta es:
number[1] == number[0] and 1 < 0
1.0.6 (18/06/2015)
En el capítulo cuatro, se reemplazó El macro de GCC incluye una operación adicional, si falla la comparación copia el valor del registro a la posición de memoria del _nuevo valor_ (se copia en sentido inverso) por El macro de GCC incluye una operación adicional, si falla la comparación copia el valor del registro a la posición de memoria del _valor esperado_.
En la definición del CAS a continuación la asignación correcta es:
expected = register
1.0.5 (18/6/2015)
En el capítulo 4, se reemplazó Si su valor es 0 le asigna 1 y retorna 1 (o _true_), caso contrario retorna 0 (o _false_) por Si su valor es 0 le asigna 1 y retorna 0, caso contrario retorna 1 (es decir, retorna el valor anterior del registro).
En el capítulo 4, la implementación correcta de exclusión mutua con TAS es:
while TAS(mutex) == 0:
Arreglos menores para evitar bug del «&» en las notas en Kindle.
1.0.1, 1.0.2, 1.0.3, 1.0.4
Correcciones ortográficas menores.