je susi en train d’essayer de develloper un OS multitache, mais j’ai un petit problème de choix d’architecture
dans mon projet toute les Xms l’interruption du compteur se déclenche, les registres courant sont sauvegardé dans la pile, le programme regarde si le temp alloué a la tache courante est dépassé si oui il bascule sur une autre tache si non il restore les registres et le programme continu
mon problème vient dans le choix de la position de sauvegarde de tout ces registres, pour les registres courants pas de problème je pense les sauvegarder dans la pile reservé a la tache mais pour ce qui est des registres de segment je sèche
1eme solution chaque tache uttilise des segment de la table global et je sauvegarde a chaque basculement de tache les registre dans une table prévu a cet effet
avantage: simple (enfin je trouve)
incovénient: je ne sait pas comment organiser le gestionnaire de mémoire qui va avec
2ere solution envisagé: chaque tache a sa propre table de descripeur local a chaque basculement de tache je sauvegarde uniquement la position dans la pile(sp) et le segment du descripteur local (les registre de segment sont alors sauvegardé sur la pile)
avantage: chaque tache ne peut pas voir les autres tache et a l’impression de s’executé seul et peut s’organiser de la manière souhaité (seul obligation le registre de segment de pile doit etre fixe)
inconvénient: j’en voie pas pour le moment
3eme solution uttiliser les TSS du processeur (mais alors la j’ai rien compris)
Qu’est ce que vous en pensez de ces idées?
Partager