[SYS2] Pagination

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [SYS2] Pagination

Message  ayoub le Sam 12 Mai 2012, 15:27

Excusez-moi mais j'ai une petite question. Dans le cours de système, au slide 66 de la partie mémoire (coursSuite1.pdf), il y a deux questions qui me bloque un peu.

Pour un processeur 32 bits associé à 4 Mb de RAM, calculer la taille de la table des pages?

Pour un processeur 64 bits associé à 1 Gb de RAM, calculer la taille de la table des pages?

Vous sauriez m'aider à avoir une réponse à ces deux questions?

Merci d'avance et bon weekend ! Smile


Dernière édition par ayoub le Dim 13 Mai 2012, 16:39, édité 1 fois

ayoub

Nombre de messages : 41
Age : 23
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  galaeron le Sam 12 Mai 2012, 16:21

Tout d'abord il faut savoir sur combien de bits sont les adresses (aka bus d'adresse (32/64)) une fois ceci déterminé il faut supposer qu'une page fait 4ko (12 bits). Par conséquent et ce afin de pouvoir adresser toutes les positions de cette page, il ne reste plus "que" 20 bits pour le numéro de pages.
Maintenant nous savons qu'il y a 2^20 entrées ... Il nous faut dés lors déterminer la taille de celles-ci ... Chacune d'entres elles est composées d'un champ de 20 bits (numéro de la page RAM) + 1 bit permettant d'indiquer la présence en mémoire ou pas ...

Enfin pour répondre de manière simple à ta question :
NombreDentree * TailleEntree = TailleTotale
  • 32 bits 1 lvl
    220 * 24 = 25165824 (24 et pas 21 car on adresse la mémoire bytes par bytes et donc ici 3 bytes)
    25165824 / (1024)² = 24
    24/8 = 3Mbytes
  • 64 bits 1 lvl
    252 * 56 = 2.5220157 *10^17 ( 56 et non pas 53 pour la même raison qu'au dessus)
    2.5220157 *1017 / (10244) = 229376
    229376 / 8 = 28 672 Tbytes
  • 32 bits 2lvl
    1024*7 = 7168 ( 53 arrondis à 7)
    7168/1024 = 7kbytes

Si tu as compris, quid de la taille des pages de second niveaux ? (Attention, ca ne suit pas exactement la même logique)
Réponse :
Au lieux d'utiliser les 20 premiers bits pour déterminer l'entrée dans la TP, on utilise les 10 premiers pour l'entrée dans la table de premier niveau (directory) les 10 suivants pour la table de deuxième niveau. La taille de l'entrée dans la table de second niveau ne change pas mais la taille de la premier est étendue à 32 bits. (Voir slide 70). Par conséquent sur un SE 32 bits directory = 2^10 * 32 et 2ème niveau = 2^10*21 Soit 7ko

Enfin, selon moi, il est bon de se demander :
"Ou se trouve cette table des pages?" (Si en RAM et pagination de premier niveau uniquement, ce mécanisme est il vraiment utile (32/64bits)?)





EDIT : J'avais oublié que dans la table on avait pas une adresse mais un numéro de page en RAM soit 21 bits au lieux de 33 mais le principe était là Wink


Dernière édition par galaeron le Dim 13 Mai 2012, 16:21, édité 7 fois

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  ayoub le Sam 12 Mai 2012, 17:15

Je te remercie Arthur pour ta réponse mais en fait je reste un peu dubitatif parce qu'en fait :
- dans la question, on précise la taille de la RAM mais on l'a fait pas intervenir
- par exemple, pour un système 32 bits on obtient 21Mb t'es d'accord mais à partir du moment où l'on possède que 3Mb de mémoire RAM, il y a anguille sous roche non?
- dans mes notes pour le système 64 bits, j'ai 2^52 * 7bytes puis j'ai noté +- 70 millions de Gb

Tu aurais pas des éléments de réponses pour ces interrogations.
Thank you d'avance!!!! Smile

ayoub

Nombre de messages : 41
Age : 23
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  galaeron le Sam 12 Mai 2012, 17:24

ayoub a écrit: - dans la question, on précise la taille de la RAM mais on l'a fait pas intervenir
C'est tout à fait normal, il le fait chaque année, c'est pour vérifier si l'élève a compris qu'on peut faire tourner un process qui nécessite plus de RAM que le SE n'en dispose

ayoub a écrit: - par exemple, pour un système 32 bits on obtient 21Mb t'es d'accord mais à partir du moment où l'on possède que 3Mb de mémoire RAM, il y a anguille sous roche non?
EDIT : Aaah je vois ce que tu veux dire ! Moi je travaille en bits pas en bytes =') Par conséquent mon calcul est légerement faux. Il faut tout arrondir comme je l'ai indiqué dans le point 3
ayoub a écrit: - dans mes notes pour le système 64 bits, j'ai 2^52 * 7bytes puis j'ai noté +- 70 millions de Gb
La plus petite unité adressable = 1 byte via ASM et comme 53/8 = 6,625 il fallait 7 bytes


PS : J'ai éditer les premier chiffres concernant ta "remarque implicite" sur les arrondis !

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  ayoub le Dim 13 Mai 2012, 14:41

Je te remercie de tes explications Arthur, sincèrement. Cependant,j'ai vraiment envie de bien comprendre ce point de matière donc j'ai encore quelques petites interrogations :


32 bits
2^20 * 20 + 1 bits(arrondi à 24 (3 bytes)) = 3Mbytes
64 bits
2^52 * 52 + 1 bits (arrondi à 7 bytes) = 28.672 Tbytes ... D'où la pagination de la table des pages

En fait, pour le système 32 bits j'ai parfaitement saisi c'est super mais pour le système 64 bits, lorsque je fais
2^52 * 7, je n'ai pas le même résultat que toi, càd 28.672Tb, j'obtiens 31.525.197.391.593.472 donc 31.525Tb or que toi tu as obtenu un peu moins (je sais que je suis assez pointilleux mais j'ai envie de saisir cela).




Au lieux d'utiliser les 20 premiers bits pour déterminer l'entrée dans la TP, on utilise les 10 premiers pour l'entrée dans la table de premier niveau (directory) les 10 suivants pour la table de deuxième niveau. La taille de l'entrée dans la table de second niveau ne change pas mais la taille de la premier est étendue à 32 bits. (Voir slide 70). Par conséquent sur un SE 32 bits directory = 2^10 * 32 et 2ème niveau = 2^10*21 Soit 7ko

Lorsque je refais le calcul, donc 1024 *32 + 1024*21 = 32768 + 21504 = 54272 donc 54ko tandis que de ton côté, tu obtiens 7ko. Saurais tu m'expliquer?

Un très grand merci en tout cas!!!!!!!!

ayoub

Nombre de messages : 41
Age : 23
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  galaeron le Dim 13 Mai 2012, 16:01

Oh ! D'une manière générale ne te fies pas à mes calculs ! J'ai jamais su calculer sans faire des erreurs à la *** =') Mais le problème c'est que je travailles en BITS pas en bytes ! Donc il y a des arrondis qui apparaissent !
Enfin puisque tu insistes *sors une vrais calculette*
  • 32 bits 1 lvl
    220 * 24 = 25165824
    25165824 / (1024)² = 24
    24/8 = 3Mbytes
  • 64 bits 1 lvl
    252 * 56 = 2.5220157 *10^17
    2.5220157 *1017 / (10244) = 229376
    229376 / 8 = 28 672 Tbytes
  • 32 bits 2lvl
    1024*7 = 7168
    7168/1024 = 7ko


EDIT : Plus précis et j'ai retrouvé une calculatrice digne de ce nom. (Je sais qu'il y en a une dans W$ <_<)

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  ayoub le Dim 13 Mai 2012, 16:24

Super super, je te remercie vraiment pour ta précision, je vais pouvoir mieux comprendre la chose.
Un grand merci en tout cas pour ta précision (c'est le cas de la dire ^^)
Passe un bon dimanche et à la prochaine Very Happy

ayoub

Nombre de messages : 41
Age : 23
Prénom : Ayoub
Statut : Ancien Etudiant
Localisation : Saint-Gilles
Date d'inscription : 10/05/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  Florent le Jeu 17 Mai 2012, 13:01

Bonjour,

Il y a trucs que je ne comprends pas tu dis:

galaeron a écrit:Tout d'abord il faut savoir sur combien de bits sont les adresses (aka bus d'adresse (32/64)) une fois ceci déterminé il faut supposer qu'une page fait 4ko (12 bits). Par conséquent et ce afin de pouvoir adresser toutes les positions de cette page, il ne reste plus "que" 20 bits pour le numéro de pages.
Maintenant nous savons qu'il y a 2^20 entrées ... Il nous faut dés lors déterminer la taille de celles-ci ... Chacune d'entres elles est composées d'un champ de 20 bits (numéro de la page RAM) + 1 bit permettant d'indiquer la présence en mémoire ou pas ...

donc 12 bits pour adresser toutes les positions d'une page plus 20 bits pour les entrées et 1 bits pour spécifier la présence en mémoire ça fait donc 33 bits ??

Florent

Nombre de messages : 93
Prénom : Florent
Date d'inscription : 02/02/2010

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  LoopinG le Jeu 17 Mai 2012, 15:47

la taille d'une table des pages est de 32 bits !

dans cette table se trouve divers champs :

1 bit pour la présence en mémoire
1 bit pour les accès (lecture ou lecture écriture)
1 bit pour l'accès en ring 0 seulement ou toujours
4 bits à 0 ne servant à rien
1 bit pour savoir si on a accédé à la page
1 bit pour savoir si on a modifié la page
2 bits libres pour le S.E
soit 11 bits
Et le reste des bits est utilisés pour l'adresse physique de la page

LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  galaeron le Jeu 17 Mai 2012, 15:52

Ahem ... Depuis quand 20 + 1 = 33 ? Pourquoi n'as ton besoin que du numéro de page et de l'offset ? Parce que la pagination c'est découpé le process en page, ca ne change pas la page... (cf : avant dernier cours )

@ Looping ce que tu dis est faux ... c'est la taille d'une entrée dans la table des pages. Pour le principe je me suis contenté, lors de l'explication de la pagination à 1 niveau, des bits "utiles" d'adressage.
NB : Pour la pagination à deux niveau j'ai indiqué la taille réelle (cf : slide 70/160 comme je l'ai indiqué)


Dernière édition par galaeron le Dim 20 Mai 2012, 08:46, édité 1 fois

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  LoopinG le Jeu 17 Mai 2012, 16:08

galaeron a écrit:
@ Looping ce que tu dis est faux ... c'est la taille d'une entrée dans la table des pages. Pour le principe je me suis contenté, lors de l'explication de la pagination à 1 niveau, des bits "utiles" d'adressage.
NB : Pour la pagination à deux niveau j'ai indiqué la taille réelle (cf : slide 70/160 comme je l'ai indiqué)

A oui sorry j'avais pas vu sa comme ça ^^ , c'est bien la description physique d'une entrée dans la Table des pages que je donnais !

LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

resolu Re: [SYS2] Pagination

Message  Contenu sponsorisé Aujourd'hui à 07:10


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum