Page principale   Liste des fichiers  

KsinuStd.h

Aller à la documentation de ce fichier.
00001 
00006 // Definition de la varaible qui servira de memoire pour la machine virtuelle
00007 #define T_MOT 4   // Taille en octets d'un mot
00008 #define NPP 16    // Nb de pages physiques
00009 #define NMPPP 32  // Nb max de mot dans une page
00010 typedef mot_t = char[4]; // Le type mot_t represente un mot
00011 mot_t mem[NPP][NMPPP];   // Memoire pour la machine virtuelle
00012 
00013 // Organisation de la zone memoire d'un processus
00014 #define T_MAX_CODE 256     // Taille max (en mots) de la zone de code 
00015 #define T_MAX_DONNEES 256  // Taille max (en mots) de la zone de donnees
00016 #define T_MAX_PILE 256     // Taille max (en mots) de la zone de pile
00017 
00018 // Constantes de la table des processus
00019 #define N_MAX_PROC 10 // Taille de la table des processus
00020 #define N_INDIR 5     // Taille de la table des pages 1er niveau
00021 #define N_PAGES 4     // Taille de la table des pages 2eme niveau
00022 // Constantes indiquant le type de la page physique
00023 #define PP_RAM 0   // RAM
00024 #define PP_SWAP 1  // Swap
00025 #define PP_VIDE -1 // Inutilise
00026 // Constantes indiquant les droits d'acces a une page
00027 #define D_RD 0
00028 #define D_RDWR 1
00029 
00030 // Structure representant le 1er niv de correspondance page v -> page phys
00031 struct st_ad_page_physique {
00032   int num_ppage; // Num de la page physique correspondante
00033   short type;    // RAM (PP_RAM) Swap (PP_SWAP) Vide (PP_VIDE)
00034 };
00035 // Structure representant le 1er niv de correspondance page v -> page phys
00036 struct st_ad_indirect {
00037   short droits; // Droits d'acces a la mem (D_RD/D_RDWR)
00038   // Table de correpondance page virtuelle -> page physique (2eme niv)
00039   struct st_ad_page_physique[N_PAGES];
00040 };
00041 // Struture representant un processus
00042 struct st_proc {
00043   int cur_inst;       // instruction courante dans la page
00044   int cur_vpage;      // page virtuelle courante
00045   int taille_code;    // Taille de la zone de code
00046   int taille_donnees; // Taille de la zone de donnees
00047   int taille_pile;    // Taille de la zone de pile
00048   // Table de correpondance page virtuelle -> page physique (1er niv)
00049   struct st_ad_indirect *table_indir[N_INDIR]; 
00050 };
00051 // Table des processus
00052 struct st_proc table_proc[N_MAX_PROC];
00053 
00054 // 
00055 #define Z_DONNEES 0
00056 #define Z_PILE 1
00057 #define Z_CODE 2
00058 int num_vpage(int place, short zone);

Généré le Thu May 30 14:24:37 2002 pour KSInu par doxygen1.2.15