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.