Bonjour,
voila un mini projet de systeme d'exploitation
implementation d'un noyau
objet du travail:
implementation en langage de programmation pascal, un simple noyau de systeme d'exploitation multiprogrammé
menu principal---->création processus;
----->exécution des processus (gestionnaire de noyau);
----->résultat processus;
----->quittet.
1-création des processus:
cette partie désigne à créer touts les processus avec leur instructions qui vont occuper le processus. chaque processus est présenté comme étant un fichier physique en pascal appelé """nom processus""".pro,
exmple:
processus1.pro pour le premier processus
processus2.pro pour le 2eme processus
dont le contenu est un ensemple d'enregistrement appelés instructions ayant la structure suivante:
opérande 1 opérande 2 code_op var-res
opérande 1 ----->champs portant l'opérande n°1
opérande 2 -----> " " " " 2
code_op -------> " " le code de l'opération :
> 1: addition
> 2: soustraction
> 3: multiplication
> 4: division
var-res ------> champs portants la variable résultat
dans cette partie un autre fichier appelé """processus . nom""" dont le contenu est ensemple d'enregestrement défini comme suit :
nom_processus.pro nbr d'instruction
nom_processus.pro -----> le nom des procesus choisis pour l'exécution
nbr d'instruction -------> le nombre d'intruction pour ce processus
2-exécution des processus:
le gestionnaire de noyau doit assurer l'exécution correcte des procesus crées dans la premier partie pour cela il doit:
***créer une table de procesus:
sous forme d'une liste dynamique définit comme suit:
nom-pro nbr-inst c.o nbr-inst-res liste suiv ------>
\
résultat succ ----->
nom-pro -----> nom de processus
nbr-inst -----> nombre d'instruction du processus
c.o ----------->compteur ordinal il contient le numéro du processus restantes
suiv ----> pointeur vers la cellul suivante
liste -----> pointeur sur une sous liste de résultat du procesus qui contient les champs suivants
résultat -----> le résultat d'une instruction
succ -----> pointeur sur le suivant
****créer une file d'attente:
sous forme d'une liste dynamique dont le role est de ranger les procesus à executer la structure est definit comme suit:
tete-------->nom-pro suiv --------------->nom-pro suiv <------------queue
nom-pro----> nom du processus
suiv------> pointeur vers la cellule suivante
le gestionnaire de noyau fait appel dispatcher pour préparer l'execution d'un processus le dispatcher a pour fonction de mettre à jour l'etat du processus qui a occupé le processus la mise à jour de ses variables c.o et nbr-inst-res
et fait l'appele à l'unité de traitement pour éxecuter ses instructions si le processus n'a pas terminé so exécution alors il informe le schéduler pour l'insérer en queue de la file d'attente.
le gestionnaire de noyau fait appele au programme de traitement pour l'exécution des processus:
1- ouvrire le fichier physique correspondant au nom du champ nom.pro de la file d'attente
2- accéder à l'enregestrement n°=c.o
3- exécuter NBR instructions (NBR varie de 1 à5)
si un processus à teminer son execution alors le gestionnaire de noyau sauvgarde les résultat de ce dernier dans un fichier appelé """ nom-processus""".res
3-la 3 eme partie c'est résultat processus:
cetta partie permet de consulter les résultat d'un processus en introduisant uniquement le nom du processus voulu les résultat doivent etre afficher comme suit:
code opération-------> var-res=opérande 1 type code opérande 2 =résultat
1 ------> x=5+7=12
4- la 4 eme partie c'est quitter:
permet de terminer votre travaille
remarque:
svp le tp doit etre remis avec un rapport détailler de touts les structures de données utilisées le role des fonctions et les procedures les diagrammes,......
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.