• [^] # Re: Atomic operations on data structures

    Posté par . En réponse au journal Microsoft s'en prend à Kyocera sur sept brevets Android. Évalué à 8.

    le truc a ete ecris par des avocats dans le but de le rendre incomprehensible et donc complique a evaluer

    Hum. Selon le premier brevet (opérations atomiques sur structures de données) :

    CLAIMS (43)
    A computerized method for performing one or more atomic operations on a data entity of arbitrary size and characterized by version data, the method comprising the following steps:

    • in a first thread of execution:
      • acquiring exclusive access to the version data;
      • setting the version data to a first value indicating that the data entity is invalid and not accessible by other operations;
      • modifying the data entity;
      • updating the version data to a second value indicating that the data entity is valid and accessible; and
      • terminating exclusive access to the version data;

    Je m'arrête là. Ce qui est décrit ici est le cycle read-modify-write utilisé par les instructions atomiques et les sections critiques d'à peu près tout le monde. Les brevets sont censés être révisés par des experts (ingénieurs, etc.) dans le domaine considéré. Il n'y a pas de bla bla légal dans ce que j'ai cité : c'est parfaitement compréhensible, et parfaitement évident qu'il s'agit d'une pratique commune (dans le brevet considéré).

    Il y a une subtilité par contre : il ne s'agit pas d'un simple « big lock » sur la structure de données, mais plutôt d'une description d'accès « lock-free » à la structure.

    Bien entendu, cette méthodologie est utilisée par tous les chercheurs et programmeurs qui essaient de concevoir des structures de données lock-free. En fait, lorsqu'un chercheur trouve un algorithme correct (donc avec théorèmes et preuves) pour rendre une structure de données un peu complexe lock-free, c'est généralement suffisant pour être publié dans une petite conférence ou un workshop (il fut un temps où c'était suffisant pour être publié dans un journal ou une très bonne conf). Toute la subtilité est d'enchaîner les opérations de manière à ce qu'il n'y ait pas d'inconstance dans les différents champs de la structure (et c'est ce qui rend la conception de ces structures lock-free si compliquée).