Programmation concurrenteLa programmation concurrente est un paradigme de programmation tenant compte, dans un programme, de l'existence de plusieurs piles sémantiques qui peuvent être appelées threads, processus ou tâches. Elles sont matérialisées en machine par une pile d'exécution et un ensemble de données privées. La concurrence est indispensable lorsque l'on souhaite écrire des programmes interagissant avec le monde réel (qui est concurrent) ou tirant parti de multiples unités centrales (couplées, comme dans un système multiprocesseurs, ou distribuées, éventuellement en grille ou en grappe).
Concurrency (computer science)In computer science, concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the outcome. This allows for parallel execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor and multi-core systems. In more technical terms, concurrency refers to the decomposability of a program, algorithm, or problem into order-independent or partially-ordered components or units of computation.
Concurrency controlIn information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, while getting those results as quickly as possible. Computer systems, both software and hardware, consist of modules, or components. Each component is designed to operate correctly, i.e., to obey or to meet certain consistency rules.
CoopérativeUne coopérative est la combinaison d'un regroupement de personnes et d'une entreprise fondée sur la participation économique des membres, en capital et en opérations. Son organisation et son fonctionnement sont caractérisés par des principes et des valeurs qui confèrent à chaque coopérative un caractère universel, quel que soit son objet ou son secteur d'activité. Une partie de ces principes et valeurs, comme la démocratie à travers l'égalité de voix entre les membres, est traduite en norme juridique.
Banque coopérativeUne coopérative de crédit ou banque mutualiste, est une banque coopérative, c'est-à-dire un établissement bancaire répondant aux principes coopératifs. Cette forme particulière d'entreprise bancaire a vu le jour en Europe dans la seconde moitié du avec les initiatives de Frédéric-Guillaume Raiffeisen notamment. Ce modèle est diffusé aujourd'hui dans tous les principaux pays européens, tels que l'Autriche, la Belgique, la Finlande, la France, l'Allemagne, l'Italie, les Pays-Bas, l'Espagne et la Suisse.
Coopérative de travail associéUne coopérative de travail associé (ou coopérative de production, ou coopérative de salariés) est une coopérative dont les membres associés majoritaires au capital sont tout ou une partie des salariés et qui repose sur le principe de démocratie économique et répartition équitable des résultats.
Agricultural cooperativeAn agricultural cooperative, also known as a farmers' co-op, is a producer cooperative in which farmers pool their resources in certain areas of activity. A broad typology of agricultural cooperatives distinguishes between agricultural service cooperatives, which provide various services to their individually-farming members, and agricultural production cooperatives in which production resources (land, machinery) are pooled and members farm jointly.
Système complexevignette|Visualisation sous forme de graphe d'un réseau social illustrant un système complexe. Un système complexe est un ensemble constitué d'un grand nombre d'entités en interaction dont l'intégration permet d'achever un but commun. Les systèmes complexes sont caractérisés par des propriétés émergentes qui n'existent qu'au niveau du système et ne peuvent pas être observées au niveau de ses constituants. Dans certains cas, un observateur ne peut pas prévoir les rétroactions ou les comportements ou évolutions des systèmes complexes par le calcul, ce qui amène à les étudier à l'aide de la théorie du chaos.
LinearizabilityIn concurrent programming, an operation (or set of operations) is linearizable if it consists of an ordered list of invocation and response events, that may be extended by adding response events such that: The extended list can be re-expressed as a sequential history (is serializable). That sequential history is a subset of the original unextended list. Informally, this means that the unmodified list of events is linearizable if and only if its invocations were serializable, but some of the responses of the serial schedule have yet to return.
Paradigme (programmation)vignette|Schéma simple à 3 blocs, avec des connexions étiquetées Le paradigme de programmation est la façon (parmi d'autres) d'approcher la programmation informatique et de formuler les solutions aux problèmes et leur formalisation dans un langage de programmation approprié. Ce n'est pas de la méthodologie contenant une méthode ; cette dernière organise le traitement des problèmes reconnus dans l'écosystème concerné pour aboutir à la solution conceptuelle et programme exécutable.
Système complexe adaptatifUn système complexe adaptatif ou système complexe auto-adaptatif est l'ensemble des cas particuliers d'un système complexe capable de s'adapter à son environnement par des expériences d'apprentissage. Le terme anglais complex adaptive systems (CAS) a été introduit par l'Institut interdisciplinaire de Santa Fe notamment par John H. Holland et Murray Gell-Mann. En 1962, Vero Copner Wynne-Edwards a observé la sélection de groupe à l’œuvre dans les communautés d’oiseaux sauvages.
Fédération coopérativeUne fédération coopérative est une organisation dont les membres sont eux-mêmes des coopératives. Si la fédération est elle-même une coopérative, on parle de coopérative de deuxième degré. Historiquement, celles-ci viennent principalement sous la forme de sociétés coopératives de consommation et d'unions de coopératives. Les fédérations de coopératives sont un moyen par lequel les coopératives peuvent remplir le sixième principe de Rochdale, la coopération entre les coopératives ; l'Alliance coopérative internationale (ICA) note à ce propos que .
Système de gestion d'exceptionsDans le contexte des langages de programmation fonctionnels et impératifs, un système de gestion d'exceptions ou SGE permet de gérer les conditions exceptionnelles pendant l'exécution du programme. Lorsqu'une exception se produit, l'exécution normale du programme est interrompue et l'exception est traitée. Les erreurs/exceptions les plus courantes sont probablement l'accès non autorisé à une zone mémoire (erreur de manipulation de pointeur) et la division par zéro (on ne prévoit pas le cas où le diviseur est nul).
Programmation orientée objetLa programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Communicating sequential processesEn programmation concurrente, Communicating sequential processes (CSP) est une algèbre de processus permettant de modéliser l'interaction de systèmes. CSP intègre un mécanisme de synchronisation basé sur le principe du rendez-vous (détaillé plus loin au travers de la commande d'entrée/sortie). Combinant ce mécanisme à une syntaxe simple et concise, CSP permet l'implémentation rapide des paradigmes classiques de la concurrence, tels que producteurs/consommateurs ou lecteurs/écrivains.
Atomicité (informatique)L'atomicité est une propriété utilisée en programmation concurrente pour désigner une opération ou un ensemble d'opérations d'un programme qui s'exécutent entièrement sans pouvoir être interrompues avant la fin de leur déroulement. Une opération qui vérifie cette propriété est qualifiée d'« atomique », ce terme dérive de grc qui signifie « que l'on ne peut diviser ». Ce concept s'applique par exemple à une partie d'un programme dont le processus ou le thread qui la gère ne cédera pas le monopole sur certaines données à un autre processus pendant tout le déroulement de cette partie.
Pratique anticoncurrentiellevignette|Caricature de J.P Morgan faisant référence au monopole financier. Les pratiques anticoncurrentielles sont les atteintes à l'intérêt général de la concurrence qui ont un impact sur le marché pertinent concerné. Elles sont interdites par le droit de la concurrence. Les mécanismes de concurrence peuvent être affectés par des comportements anticoncurrentiels (ententes illicites, abus de position dominante ou de dépendance économique ou pratiques des prix abusivement bas ou prédateurs) ou par des structures anticoncurrentielles (concentrations).
Programmation événementielleEn informatique, la programmation événementielle est un paradigme de programmation fondé sur les événements. Elle s'oppose à la programmation séquentielle. Le programme sera principalement défini par ses réactions aux différents événements qui peuvent se produire, c'est-à-dire des changements d'état de variable, par exemple l'incrémentation d'une liste, un déplacement ou un clic de souris, une saisie au clavier...
Co-operative economicsCooperative (or co-operative) economics is a field of economics that incorporates cooperative studies and political economy toward the study and management of cooperatives. History of the cooperative movement Cooperative economics developed as both a theory and a concrete alternative to industrial capitalism in the late 1700s and early 1800s. As such, it was a form of stateless socialism. The term "socialism," in fact, was coined in The Cooperative Magazine in 1827.
Database transactionA database transaction symbolizes a unit of work, performed within a database management system (or similar system) against a database, that is treated in a coherent and reliable way independent of other transactions. A transaction generally represents any change in a database. Transactions in a database environment have two main purposes: To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure.