ME
Auteur

ESSADDOUKI Mostafa

@BeyondTechnologies

The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.

Diviser pour régner Programmation dynamique

Rappel sur l'approche récursive

La récursivité est un concept fondamental en informatique et en programmation. Elle consiste à définir une fonction en utilisant une ou plusieurs instances de cette même fonction. En d'autres termes, une fonction récursive est une fonction qui s'appelle elle-même à l'intérieur de sa propre définition. Cela permet de résoudre des problèmes complexes en les divisant en sous-problèmes plus simples, qui sont ensuite résolus en appelant la fonction récursive sur les sous-problèmes.

Programmation dynamique

Méthodes de la programmation dynamique : Mémoisation et tabulation

La programmation dynamique est une technique d'optimisation qui résout des problèmes complexes en les décomposant en sous-problèmes plus simples, et en stockant les résultats intermédiaires pour éviter les calculs répétitifs. Mémoisation et tabulation sont deux approches couramment utilisées pour optimiser les solutions de programmation dynamique. Elles permettent de résoudre les problèmes plus efficacement en stockant les résultats intermédiaires pour éviter les calculs répétitifs.

Programmation dynamique

Le concept de sous-structure optimale

Le concept de sous-structure optimale fait référence à une propriété des problèmes d'optimisation où une solution optimale du problème global peut être construite à partir de solutions optimales de ses sous-problèmes. Cette propriété est essentielle pour appliquer la programmation dynamique et les algorithmes gloutons.

Programmation dynamique

Le concept de sous-problèmes superposés

Le concept de sous-problèmes superposés fait référence à une situation dans laquelle un problème peut être décomposé en sous-problèmes plus petits, mais certains de ces sous-problèmes sont résolus plusieurs fois lors de la résolution du problème initial. Cette répétition de sous-problèmes identiques est une caractéristique essentielle qui permet d'appliquer la programmation dynamique pour résoudre efficacement le problème.

Programmation dynamique

Définition de la programmation dynamique

La programmation dynamique est une méthode algorithmique utilisée pour résoudre des problèmes d'optimisation, en particulier ceux qui présentent une structure de sous-problèmes imbriqués ou une nature récursive.

Système d'exploitation

Concepts de base de l'ordonnancement du CPU

L'ordonnancement du processeur est une fonction fondamentale des systèmes d'exploitation qui détermine quel processus obtient l'utilisation du CPU à un moment donné. Presque toutes les ressources informatiques sont programmées avant d'être utilisées.

Système d'exploitation

Les files d'attente d'ordonnancement

Le système d'exploitation maintient tous les PCB (Process Control Blocks) dans des files d'attente d'ordonnancement. Le SE maintient une file d'attente séparée pour chacun des états de processus et les PCB de tous les processus dans le même état d'exécution sont placés dans la même file d'attente.

Système d'exploitation

États des processus et transitions d'état

Un système d'exploitation utilise la notion d'état de processus pour garder une trace de ce qu'un processus fait à tout moment. Le noyau utilise des états de processus pour simplifier son propre fonctionnement, de sorte que le nombre d'états de processus et leurs noms peuvent varier selon les systèmes d'exploitation.

Système d'exploitation

Processus et programmes

Un programme est une entité passive qui n'effectue aucune action par elle-même ; il doit être exécuté pour que les actions qu'il demande aient lieu.

Système d'exploitation

Classification des appels système

Les appels système constituent l'interface entre les programmes utilisateur et le système d'exploitation. Ils permettent aux processus de demander des services au noyau.