Thread (informatique)thumb|Un processus avec deux threads. Un thread ou fil (traduction normalisés par ISO/CEI 2382-7:2000 (autres appellations connues : processus léger, fil d'exécution, fil d'instruction, processus allégé, exétron, tâche, voire unité d'exécution ou unité de traitement) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle.
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.
Green threadIn computer programming, a green thread (virtual thread) is a thread that is scheduled by a runtime library or virtual machine (VM) instead of natively by the underlying operating system (OS). Green threads emulate multithreaded environments without relying on any native OS abilities, and they are managed in user space instead of kernel space, enabling them to work in environments that do not have native thread support. Green threads refers to the name of the original thread library for the programming language Java (that was released in version 1.
Langage de programmation de haut niveauEn programmation informatique, un langage de programmation à haut niveau d'abstraction généralement appelé langage de haut niveau est un langage de programmation orienté autour du problème à résoudre, qui permet d'écrire des programmes en utilisant des mots usuels des langues naturelles (très souvent de l'anglais) et des symboles mathématiques familiers. Un langage de haut niveau fait abstraction des caractéristiques techniques du matériel utilisé pour exécuter le programme, tels que les registres et les drapeaux du processeur.
Serveur webvignette|Serveurs de la Wikimedia Foundation. Un serveur web est soit un logiciel de service de ressources web (serveur HTTP), soit un serveur informatique (ordinateur) qui répond à des requêtes du World Wide Web sur un réseau public (Internet) ou privé (intranet), en utilisant principalement le protocole HTTP. Un serveur informatique peut être utilisé à la fois pour servir des ressources du Web et pour faire fonctionner en parallèle d'autres services liés, comme l'envoi de courriers électroniques, l'émission de flux en streaming, le stockage de données dans des bases de données, le transfert de fichiers par .
Langage de programmation de bas niveauvignette|Language de programmation Un langage de programmation de bas niveau ne fournit que peu d'abstraction par rapport au jeu d'instructions du processeur de la machine. Les langages de bas niveau sont à opposer aux langages de haut niveau, qui permettent de créer un programme sans tenir compte des caractéristiques particulières (registres, etc) de l'ordinateur censé exécuter le programme. Le langage machine et le langage d'assemblage sont les archétypes de langages de bas niveau, puisqu'ils permettent de manipuler explicitement des registres, des adresses mémoires, des instructions machines.
Multithreadingthumb|Schéma d'un process multithread Un processeur est dit multithread s'il est capable d'exécuter efficacement plusieurs threads simultanément. Contrairement aux systèmes multiprocesseurs (tels les systèmes multi-cœur), les threads doivent partager les ressources d'un unique cœur : les unités de traitement, le cache processeur et le translation lookaside buffer ; certaines parties sont néanmoins dupliquées : chaque thread dispose de ses propres registres et de son propre pointeur d'instruction.
Simultaneous multithreadingLe simultaneous multithreading (SMT) est une technique informatique datant des années 1960. Il s'agit d'une forme de multithreading, une technique qui consiste, comme le symmetric multiprocessing (SMP), à augmenter le TLP (thread level parallelism), c’est-à-dire le parallélisme des threads. Le SMT est le partage d'un cœur de processeur superscalaire (les pipelines, les unités de calcul et les caches) entre plusieurs threads.
Yield (multithreading)In computer science, yield is an action that occurs in a computer program during multithreading, of forcing a processor to relinquish control of the current running thread, and sending it to the end of the running queue, of the same scheduling priority. Different programming languages implement yielding in various ways. pthread_yield() in the language C, a low level implementation, provided by POSIX Threads std::this_thread::yield() in the language C++, introduced in C++11.
Serveur d'applicationsvignette|Logo symbolisant une application serveur Un serveur d'applications est un logiciel d'infrastructure offrant un contexte d'exécution pour des composants applicatifs. Le terme est apparu dans le domaine des applications web. Au sens strict les composants hébergés par le serveur d'applications ne sont pas de simples procédures ou scripts mais de réels composants logiciels conformes à un modèle de composants (EJB, COM, Fractal, etc.). Les clients des serveurs d'application sont : des programmes autonomes (standalone application), des applets ou d'autres composants.
Abstraction (informatique)En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation. thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications.
Sciences cognitivesthumb|283x283px|Les six disciplines scientifiques constituant les sciences cognitives et leurs liens interdisciplinaires, par l'un des pères fondateurs du domaine, G. A. Miller. Les traits pleins symbolisent les disciplines entre lesquelles existaient déjà des liens scientifiques à la naissance des sciences cognitives ; en pointillés, les disciplines entre lesquelles des interfaces se sont développées depuis lors.
Rythme cérébralUn rythme cérébral (appelé aussi activité neuro-électrique) désigne l'oscillation électromagnétique émise par le cerveau des êtres humains, mais également de tout être vivant. Le cortex frontal qui permet la cognition, la logique et le raisonnement est composé de neurones qui sont reliés entre eux par des synapses permettant la neurotransmission. Mesurables en volt et en hertz, ces ondes sont de très faible amplitude : de l'ordre du microvolt (chez l'être humain), elles ne suivent pas toujours une sinusoïde régulière.
Explicit memoryExplicit memory (or declarative memory) is one of the two main types of long-term human memory, the other of which is implicit memory. Explicit memory is the conscious, intentional recollection of factual information, previous experiences, and concepts. This type of memory is dependent upon three processes: acquisition, consolidation, and retrieval. Explicit memory can be divided into two categories: episodic memory, which stores specific personal experiences, and semantic memory, which stores factual information.
Application (informatique)Une application, un applicatif ou encore une appli, une app est, dans le domaine informatique, un programme (ou un ensemble logiciel) directement utilisé pour réaliser une tâche, ou un ensemble de tâches élémentaires d'un même domaine ou formant un tout. Typiquement, un éditeur de texte, un navigateur web, un lecteur multimédia, un jeu vidéo, sont des applications. Les applications s'exécutent en utilisant les services du système d'exploitation pour utiliser les ressources matérielles.
Proxythumb|300px|right|Représentation schématique d'un serveur proxy où l'ordinateur placé au milieu agit comme intermédiaire entre deux autres ordinateurs. Un proxy ( « mandataire ») est un composant logiciel informatique qui joue le rôle d'intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges. Dans le cadre plus précis des réseaux informatiques, un proxy est alors un programme servant d'intermédiaire pour accéder à un autre réseau, généralement Internet.
Apache HTTP ServerLe logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. Jusqu'en avril 2019, ce fut le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Apache est apparu en . Au début, il s'agissait d'une collection de correctifs et d'additions au serveur NCSA HTTPd 1.2, qui était dans le domaine public et le serveur HTTP alors le plus répandu. De cette origine, de nombreuses personnes affirment que le nom Apache vient de a patchy server, soit « un serveur rafistolé ».
Implicit memoryIn psychology, implicit memory is one of the two main types of long-term human memory. It is acquired and used unconsciously, and can affect thoughts and behaviours. One of its most common forms is procedural memory, which allows people to perform certain tasks without conscious awareness of these previous experiences; for example, remembering how to tie one's shoes or ride a bicycle without consciously thinking about those activities.
Réseau de téléphonie mobileUn réseau de téléphonie mobile est un réseau téléphonique qui permet l'utilisation simultanée de millions de téléphones sans fil, immobiles ou en mouvement, y compris lors de déplacements à grande vitesse et sur une grande distance. Pour atteindre cet objectif, toutes les technologies d'accès radio doivent résoudre un même problème : partager et répartir aussi efficacement que possible une bande de fréquences hertzienne unique entre de très nombreux utilisateurs.