2006-08-19 23:26:51 +02:00
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
2003-11-03 17:42:14 +01:00
<!ENTITY base CDATA "..">
2007-03-09 19:12:43 +01:00
<!ENTITY date "$FreeBSD: www/fr/kse/index.sgml,v 1.7 2006/08/19 21:23:38 hrs Exp $">
2003-11-03 17:42:14 +01:00
<!ENTITY title "Projet KSE">
<!ENTITY email 'mini'>
2006-08-19 23:26:51 +02:00
<!ENTITY % navinclude.developers "INCLUDE">
2003-11-03 17:42:14 +01:00
<!-- Status levels -->
<!ENTITY status.done "<font color=green>Fait</font>">
<!ENTITY status.wip "<font color=blue>En progrès</font>">
<!ENTITY status.stalled "<font color=purple>En attente</font>">
<!ENTITY status.new "<font color=red>Pas commencé</font>">
<!ENTITY status.resolved "<font color=green>Résolu</font>">
<!ENTITY status.unresolved "<font color=red>Non résolu</font>">
<!-- The list of contributors was moved to a separate file so that it can
be used by other documents in the FreeBSD web site. -->
2007-03-09 19:12:43 +01:00
<!ENTITY % developers SYSTEM "../../en/developers.sgml"> %developers;
2003-11-03 17:42:14 +01:00
]>
2005-10-04 18:22:36 +02:00
<!--
2003-11-03 17:42:14 +01:00
The FreeBSD French Documentation Project
2004-10-06 16:12:50 +02:00
Original revision: 1.17
2003-11-03 17:42:14 +01:00
Version francaise : Francis Bacque <opl@opltech.net>
Version francaise (mise a jour) : Stephane Legrand <stephane@freebsd-fr.org>
2003-12-06 22:45:58 +01:00
Version francaise (mise a jour) : Vincent Tougait <viny@scientiae.net>
2004-10-06 16:12:50 +02:00
Version francaise (mise a jour) : Antoine Brodin <antoine.brodin@laposte.net>
2003-11-03 17:42:14 +01:00
-->
<html>
&header;
<h2>Contenu</h2>
<ul>
<li><a href="#overview">Aperçu du projet</a></li>
<li><a href="#using">Utilisation de KSE</a></li>
<li><a href="#further.reading">Lectures complémentaires</a></li>
<li><a href="#status.kernel">Etat du Projet</a></li>
</ul>
<a id="overview" name="overview"></a>
<h2>Aperçu</h2>
<p>Le Kernel Scheduler Entities (KSE), est un système de threading supporté par
le noyau, au design similaire à celui du Scheduler Activations [Anderson, et. al.].
Il établit un équilibre entre les modèles de threading de niveau utilisateur (1:N) et de
2005-10-04 18:22:36 +02:00
niveau noyau (1:1), apportant la plupart des avantages des deux et
2003-11-03 17:42:14 +01:00
peu d'inconvénients de chacun.</p>
<p>Le projet se compose de deux moitiés : le support noyau et le support utilisateur.
Le support noyau consiste en modifications du scheduler FreeBSD; L'autre moitié est
2003-12-06 22:45:58 +01:00
une implémentation des threads &posix; qui tire avantage des facilités supplémentaires
2003-11-03 17:42:14 +01:00
que procure le noyau.</p>
<p>Le but est de remplacer l'actuel système de threads utilisateur procuré
par la libc_r, et l'option <tt>-pthread</tt> de gcc, par une nouvelle bibliothèque
2003-12-06 22:45:58 +01:00
libpthread qui sera liée avec l'option <tt>-lpthread</tt> de gcc.</p>
2003-11-03 17:42:14 +01:00
<a name="using"></a>
<h2>Utilisation de KSE</h2>
<p>Tout le developpement du KSE est effectué sur la version 5.0-CURRENT.
Aucune option de configuration du noyau n'est requise pour compiler un
noyau avec les changements relatifs au KSE (ces changements sont inextricables
2003-12-06 22:45:58 +01:00
du scheduler de FreeBSD).</p>
2003-11-03 17:42:14 +01:00
<p>Pour utiliser KSE dans une application, vous devez lier celle-ci à
2003-12-06 22:45:58 +01:00
libpthread, ce qui est assez simple. Dans ses makefiles, remplacez
le paramètre de compilation <tt>-pthread</tt> ou l'option de lien
2005-10-04 18:22:36 +02:00
<tt>-lc_r</tt> par <tt>-lpthread</tt> et refaites l'édition des liens. Vous
2003-12-06 22:45:58 +01:00
pouvez aussi utiliser <tt>/etc/libmap.conf</tt> pour associer libc_r à libpthread
(voir <tt>libmap.conf(5)</tt>).</p>
2003-11-03 17:42:14 +01:00
<a name="further.reading"></a>
<h2>Lectures complémentaires</h2>
<p>
<ul>
<li><a href="http://www.aims.net.au/chris/kse/">
2005-10-04 18:22:36 +02:00
Kernel-Scheduled Entities for FreeBSD</a>, par Jason Evans.
2003-11-03 17:42:14 +01:00
(légèrement daté).
</li>
2004-10-06 16:12:50 +02:00
<li><a href="http://www.FreeBSD.org/cgi/man.cgi?query=kse&apropos=0&sektion=0&manpath=FreeBSD+5.0-current&format=html">page de manuel KSE</a>
2003-11-03 17:42:14 +01:00
</li>
2004-10-06 16:12:50 +02:00
<li><a href="http://people.FreeBSD.org/~deischen/docs/Scheduler.pdf">
2005-10-04 18:22:36 +02:00
Scheduler Activations</a>, par Anderson, et al.
2003-11-03 17:42:14 +01:00
</li>
2005-10-04 18:22:36 +02:00
</ul>
2003-11-03 17:42:14 +01:00
<a name="status.kernel"></a>
<a name="status"></a>
<h2>Etat du projet</h2>
<p>Ceci est une liste incomplète de tâches :</p>
2005-10-06 14:56:09 +02:00
<table class="tblbasic">
2003-11-03 17:42:14 +01:00
<tr>
<th> Module </th>
<th> Tâche </th>
<th> Responsable </th>
<th> Dernière mise à jour </th>
<th> Etat </th>
</tr>
<tr>
<td> libpthread </td>
<td> Ecrire la page de man kse(2) documentant les nouveaux appels système. </td>
<td> &a.archie; </td>
<td> 10 Septembre 2002 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Repo-copy de la bibliothèque libpthread à partir de libc_r. </td>
<td> responsable du cvs </td>
<td> 16 Septembre 2002 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Utiliser KSE pour ordonnancer les processus. </td>
<td> &a.mini; </td>
<td> 30 Octobre 2002 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Ordonnancer un contexte "inactif" si nécessaire. </td>
<td> &a.mini; </td>
<td> 2 Novembre 2002 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Envoyer des signaux aux threads. </td>
<td> &a.deischen; &a.davidxu; </td>
<td> 28 Juin 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Verrous pour le SMP. </td>
<td> &a.deischen; </td>
<td> 3 Mai 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> noyau </td>
<td> Verrous pour le SMP. </td>
<td> &a.davidxu; </td>
<td> 3 Mai 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Lancer plusieurs KSEs (un par processeur). </td>
<td> &a.davidxu; </td>
<td> 3 Mai 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
2003-12-06 22:45:58 +01:00
<td> libpthread, noyau </td>
<td> Implémenter des fonctions machine-dépendantes pour la plateforme alpha. </td>
2003-11-03 17:42:14 +01:00
<td> &a.marcel; </td>
2003-12-06 22:45:58 +01:00
<td> 30 Août 2003 </td>
2003-11-03 17:42:14 +01:00
<td> &status.wip; </td>
</tr>
2005-10-04 18:22:36 +02:00
2003-12-06 22:45:58 +01:00
<tr>
<td> libpthread, noyau </td>
<td> Implémenter des fonctions machine-dépendantes pour la plateforme amd64. </td>
<td> &a.davidxu; &a.deischen; </td>
<td> 30 Août 2003 </td>
<td> &status.done; </td>
</tr>
2003-11-03 17:42:14 +01:00
<tr>
2003-12-06 22:45:58 +01:00
<td> libpthread, noyau </td>
<td> Implémenter des fonctions machine-dépendantes pour la plateforme i386. </td>
<td> &a.davidxu; &a.deischen; </td>
<td> 30 Août 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread, noyau </td>
<td> Implémenter des fonctions machine-dépendantes pour la plateforme ia64. </td>
2003-11-03 17:42:14 +01:00
<td> &a.marcel; </td>
2003-12-06 22:45:58 +01:00
<td> 30 Août 2003 </td>
<td> &status.done; </td>
2003-11-03 17:42:14 +01:00
</tr>
<tr>
2003-12-06 22:45:58 +01:00
<td> libpthread, noyau </td>
<td> Implémenter des fonctions machine-dépendantes pour la plateforme sparc64. </td>
<td> &a.jake; </td>
<td> 30 Août 2003 </td>
<td> &status.wip; </td>
2003-11-03 17:42:14 +01:00
</tr>
<tr>
<td> noyau </td>
<td> Implémenter la gestion des signaux spécifique à KSE. </td>
<td> &a.davidxu; </td>
<td> 28 Juin 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> libpthread </td>
<td> Implémenter les threads dans le domaine système. </td>
<td> &a.deischen; </td>
<td> 3 Mai 2003 </td>
<td> &status.done; </td>
</tr>
<tr>
<td> noyau </td>
<td> Améliorer la performance des threads du domaine système (pas de nouveaux appels si bloqués). </td>
<td> &a.davidxu; </td>
2003-12-06 22:45:58 +01:00
<td> 30 Août 2003 </td>
<td> &status.done; </td>
2003-11-03 17:42:14 +01:00
</tr>
<!--
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> D M 2002 </td>
<td> &status.new; </td>
</tr>
-->
</table>
&footer;
</body>
</html>