Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Programmation d'OS
Programmation d'OS Programmation de systèmes d'exploitation
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/12/2009, 09h48   #1
bifur
Membre habitué
 
passe le balais et l'aspirateur
Inscription : mars 2008
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : passe le balais et l'aspirateur

Informations forums :
Inscription : mars 2008
Messages : 111
Points : 126
Points : 126
Par défaut Problème d'organisation du multitâche

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?
bifur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2009, 10h15   #2
tommy60
Membre du Club
 
Homme Frédéric
Inscription : mai 2009
Messages : 36
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 27
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : mai 2009
Messages : 36
Points : 50
Points : 50
Bonjour bifur,

Utiliser les TSS est la meilleure solution, puisque c'est le processeur qui s'occupe de tout. Mais, comme tu le dis, c'est pas très simple à mettre en œuvre, surtout si on débute. Si tu fais un OS en mode réel 16-bit, tu ne peux pas utiliser les TSS.

La deuxième solution me semble la meilleure. Mieux vaut utiliser la pile pour sauvegarder tes registres, pour éviter d'allouer de la mémoire ailleurs, où si tu n'as pas encore de gestionnaire d'allocation de mémoire. De plus, pas mal d'OS, dont Linux, utilises la pile de la tâche pour sauvegarder l'état des registres. C'est également ce mécanisme que j'utilise dans mon OS.

Autre chose, j'ai vu que tu utilises un "temp" avant chaque changement de tâche. Je ne conseille pas vraiment d'utiliser un truc de ce genre, du simple fait que cela diminue la réactivité de l'OS, donc, en gros, sa vitesse.

Tommy
tommy60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2009, 11h08   #3
bifur
Membre habitué
 
passe le balais et l'aspirateur
Inscription : mars 2008
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : passe le balais et l'aspirateur

Informations forums :
Inscription : mars 2008
Messages : 111
Points : 126
Points : 126
mon (projet d')OS sera en mode protégé(j'en ai deja fait un petit en mode réel Flat mais c'est trop restrictif)donc je pourrait uttiliser les TSS,
Est ce que tu aurait de la doc la dessus? j'ai la doc d'intel et j'aimerait avoir un autre point de vue

sinon, c'est pas que j'uttilise un "temp" avant chaque changement de tache mais plutot l'IRQ0 pour actionner le commutateur de tache (dans un premier temps 200 commutation par seconde)
bifur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2009, 11h34   #4
tommy60
Membre du Club
 
Homme Frédéric
Inscription : mai 2009
Messages : 36
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 27
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : mai 2009
Messages : 36
Points : 50
Points : 50
Citation:
Envoyé par bifur Voir le message
mon (projet d')OS sera en mode protégé(j'en ai deja fait un petit en mode réel Flat mais c'est trop restrictif)donc je pourrait uttiliser les TSS,
Est ce que tu aurait de la doc la dessus? j'ai la doc d'intel et j'aimerait avoir un autre point de vue
A part les docs Intel, je n'ai pas d'autres documentation sur les TSS. La plupart des tutoriaux que j'ai et qui sont disponibles sur Internet utilisent la pile pour exemple. Le seul truc que j'ai trouvé: http://www.acm.uiuc.edu/sigops/roll_your_own/5.a.html (en anglais).

Et puis, si tu désires faire un OS 64-bit par la suite, l'utilisation des TSS est fortement déconseillé, parce qu'en mode 64-bit, les TSS sont encore plus difficile à mettre en place, car leur structure change radicalement. Donc, il vaut mieux garder la pile.

Citation:
Envoyé par bifur Voir le message
sinon, c'est pas que j'uttilise un "temp" avant chaque changement de tache mais plutot l'IRQ0 pour actionner le commutateur de tache (dans un premier temps 200 commutation par seconde)
Ah! Dans ce cas, je n'ai rien dit.
tommy60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2009, 15h58   #5
bifur
Membre habitué
 
passe le balais et l'aspirateur
Inscription : mars 2008
Messages : 111
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : passe le balais et l'aspirateur

Informations forums :
Inscription : mars 2008
Messages : 111
Points : 126
Points : 126
bon il ne me reste plus qu'as programmer tout ça (je me demande si je vais pas rester sur du flat )
bifur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h44.


 
 
 
 
Partenaires

Hébergement Web