Mémoire partagée (communication inter-processus)Dans un contexte de la programmation concurrente, le partage de mémoire est un moyen de partager des données entre différents processus : une même zone de la mémoire vive est accédée par plusieurs processus. C'est le comportement de la mémoire de threads issus d'un même processus. Pour cela, dans un système utilisant la pagination, la table de page de chaque processus contient les pages mémoires communes, mais chaque processus ne les voit pas nécessairement à la même adresse. Communication inter-processus
Non-blocking algorithmIn computer science, an algorithm is called non-blocking if failure or suspension of any thread cannot cause failure or suspension of another thread; for some operations, these algorithms provide a useful alternative to traditional blocking implementations. A non-blocking algorithm is lock-free if there is guaranteed system-wide progress, and wait-free if there is also guaranteed per-thread progress. "Non-blocking" was used as a synonym for "lock-free" in the literature until the introduction of obstruction-freedom in 2003.
Demi-anneauEn mathématiques, un demi-anneau, ou semi-anneau, est une structure algébrique qui a les propriétés suivantes : constitue un monoïde commutatif ; forme un monoïde ; est distributif par rapport à + ; 0 est absorbant pour le produit, autrement dit: pour tout . Ces propriétés sont proches de celles d'un anneau, la différence étant qu'il n'y a pas nécessairement d'inverses pour l’addition dans un demi-anneau. Un demi-anneau est commutatif quand son produit est commutatif ; il est idempotent quand son addition est idempotente.
Unique identifierA unique identifier (UID) is an identifier that is guaranteed to be unique among all identifiers used for those objects and for a specific purpose. The concept was formalized early in the development of computer science and information systems. In general, it was associated with an atomic data type. In relational databases, certain attributes of an entity that serve as unique identifiers are called primary keys. In mathematics, set theory uses the concept of element indices as unique identifiers.
IdempotenceEn mathématiques et en informatique, l'idempotence signifie qu'une opération a le même effet qu'on l'applique une ou plusieurs fois. Par exemple, la valeur absolue est idempotente : , les deux membres étant égaux à 5. On retrouve ce concept en algèbre générale, en particulier dans la théorie des opérateurs de projection et des opérateurs de clôture, mais aussi en informatique, en particulier en programmation fonctionnelle. Un élément x d'un magma (M, •) est dit idempotent si : x • x = x.
Idempotent (ring theory)In ring theory, a branch of mathematics, an idempotent element or simply idempotent of a ring is an element a such that a2 = a. That is, the element is idempotent under the ring's multiplication. Inductively then, one can also conclude that a = a2 = a3 = a4 = ... = an for any positive integer n. For example, an idempotent element of a matrix ring is precisely an idempotent matrix. For general rings, elements idempotent under multiplication are involved in decompositions of modules, and connected to homological properties of the ring.
Calcul distribuéUn calcul distribué, ou réparti ou encore partagé, est un calcul ou un traitement réparti sur plusieurs microprocesseurs et plus généralement sur plusieurs unités centrales informatiques, et on parle alors d'architecture distribuée ou de système distribué. Le calcul distribué est souvent réalisé sur des clusters de calcul spécialisés, mais peut aussi être réalisé sur des stations informatiques individuelles à plusieurs cœurs. La distribution d'un calcul est un domaine de recherche des sciences mathématiques et informatiques.
Common LispCommon Lisp (en abrégé CL) est une spécification du langage Lisp standardisée par l'ANSI. Common Lisp est un dialecte de Lisp standardisé par l'ANSI X3.226-1994. Développé pour standardiser les variantes divergentes de Lisp qui l'ont précédé, ce n'est pas une implémentation mais une spécification à laquelle les implémentations Lisp essayent de se conformer. Il est fréquemment abrégé en CL. Common Lisp est un langage de programmation à usage général, a contrario de dialectes de Lisp comme Emacs Lisp et AutoLisp, qui sont des langages d'extension embarqués dans des produits particuliers.
Parallélisme (informatique)vignette|upright=1|Un des éléments de Blue Gene L cabinet, un des supercalculateurs massivement parallèles les plus rapides des années 2000. En informatique, le parallélisme consiste à mettre en œuvre des architectures d'électronique numérique permettant de traiter des informations de manière simultanée, ainsi que les algorithmes spécialisés pour celles-ci. Ces techniques ont pour but de réaliser le plus grand nombre d'opérations en un temps le plus petit possible.
Mémoire virtuellethumb|Schéma de principe de la mémoire virtuelle. En informatique, le mécanisme de mémoire virtuelle a été mis au point dans les années 1960. Il repose sur l'utilisation de traduction à la volée des adresses (virtuelles) vues du logiciel, en adresses physiques de mémoire vive. La mémoire virtuelle permet : d'utiliser de la mémoire de masse comme extension de la mémoire vive ; d'augmenter le taux de multiprogrammation ; de mettre en place des mécanismes de protection de la mémoire ; de partager la mémoire entre processus.
IdentifiantUn identifiant est une sorte de nom qui sert à identifier un objet précis dans un ensemble d'objets ; ou plus largement toute suite de caractères qui joue ce rôle-là. En principe, un identifiant devrait être unique pour chaque objet. En pratique (comme pour les noms de personnes ou de lieux) ce n'est pas toujours le cas, sauf s'il s'agit d'un ensemble d'identifiants défini par une norme technique. Un identifiant de métadonnée est un signe, une étiquette ou un jeton indépendant du langage, qui identifie de manière unique un objet au sein d'un schéma d'identification.
Distributed shared memoryIn computer science, distributed shared memory (DSM) is a form of memory architecture where physically separated memories can be addressed as a single shared address space. The term "shared" does not mean that there is a single centralized memory, but that the address space is shared—i.e., the same physical address on two processors refers to the same location in memory. Distributed global address space (DGAS), is a similar term for a wide class of software and hardware implementations, in which each node of a cluster has access to shared memory in addition to each node's private (i.
SemilatticeIn mathematics, a join-semilattice (or upper semilattice) is a partially ordered set that has a join (a least upper bound) for any nonempty finite subset. Dually, a meet-semilattice (or lower semilattice) is a partially ordered set which has a meet (or greatest lower bound) for any nonempty finite subset. Every join-semilattice is a meet-semilattice in the inverse order and vice versa.
Treillis (ensemble ordonné)En mathématiques, un treillis () est une des structures algébriques utilisées en algèbre générale. C'est un ensemble partiellement ordonné dans lequel chaque paire d'éléments admet une borne supérieure et une borne inférieure. Un treillis peut être vu comme le treillis de Galois d'une relation binaire. Il existe en réalité deux définitions équivalentes du treillis, une concernant la relation d'ordre citée précédemment, l'autre algébrique. Tout ensemble muni d'une relation d'ordre total est un treillis.
Band (algebra)In mathematics, a band (also called idempotent semigroup) is a semigroup in which every element is idempotent (in other words equal to its own square). Bands were first studied and named by . The lattice of varieties of bands was described independently in the early 1970s by Biryukov, Fennemore and Gerhard. Semilattices, left-zero bands, right-zero bands, rectangular bands, normal bands, left-regular bands, right-regular bands and regular bands are specific subclasses of bands that lie near the bottom of this lattice and which are of particular interest; they are briefly described below.
Type systemIn computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type (for example, integer, floating point, string) to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term.
Demi-groupeEn mathématiques, plus précisément en algèbre générale, un demi-groupe (ou semi-groupe) est une structure algébrique constituée d'un ensemble muni d'une loi de composition interne associative. Il est dit commutatif si sa loi est de plus commutative. Un demi-groupe est un magma associatif. Un monoïde est un demi-groupe unifère, c'est-à-dire possédant un élément neutre. L'ensemble des entiers naturels non nuls muni de l'addition est un demi-groupe. Tout monoïde est un demi-groupe. Tout groupe est un demi-groupe.
Propriété universelleEn mathématiques, et plus précisément en théorie des catégories, une propriété universelle est la propriété des objets qui sont la solution d'un problème universel posé par un foncteur. De très nombreux objets classiques des mathématiques, comme la notion de produit cartésien, de groupe quotient, ou de compactifié, peuvent être définis comme des solutions de problèmes universels.
Théorie des typesEn mathématiques, logique et informatique, une théorie des types est une classe de systèmes formels, dont certains peuvent servir d'alternatives à la théorie des ensembles comme fondation des mathématiques. Ils ont été historiquement introduits pour résoudre le paradoxe d'un axiome de compréhension non restreint. En théorie des types, il existe des types de base et des constructeurs (comme celui des fonctions ou encore celui du produit cartésien) qui permettent de créer de nouveaux types à partir de types préexistant.
Grappe de serveursOn parle de grappe de serveurs, de cluster, de groupement de serveurs ou de ferme de calcul (computer cluster en anglais) pour désigner des techniques consistant à regrouper plusieurs ordinateurs indépendants appelés nœuds (node en anglais), afin de permettre une gestion globale et de dépasser les limitations d'un ordinateur pour : augmenter la disponibilité ; faciliter la montée en charge ; permettre une répartition de la charge ; faciliter la gestion des ressources (processeur, mémoire vive, disques durs,