IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Taille secteur physique PhysicalDrive


Sujet :

C++

  1. #1
    Invité
    Invité(e)
    Par défaut Taille secteur physique PhysicalDrive
    Bonjour,
    Je regarde un example pour obtenir la taille de secteur physique réel (http://msdn.microsoft.com/en-us/libr...v=vs.85).aspx) , ils mettent directement \\\\.\\PhysicalDrive0 je m'interroge et je me demande si dans tous cas ceci marchera ? Est-ce que une même partition virtuel peut avoir plusieurs disque dur et ont-ils on obligatoirement la même taille de secteur physique ? Comment savoir sur quel "PhysicalDrive" est mon lecteur C: (par exemple) ?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Par défaut, un disque dur est divisé en plateaux qui sont divisés en cylindres eux même divisés en "cluster". Un segment peut, d'office, contenir 512 bytes. Le nombre de segment que tu peux avoir sur chaque cylindre dépend essentiellement de la taille du cylindre (il est plus grand à l'extérieur du disque qu'à l'intérieur) et donc de sa vitesse de rotation relative (la distance effectivement parcourue par le cylindre en un temps donné), car, le disque dur tournant à vitesse constante, il est évident que la distance parcourue par un cylindre plus long (en termes de périmetres) sera forcément plus importante que celle d'un cylindre plus petit.

    Ca, c'est pour la partie purement et simplement "matérielle".

    On peut diviser la quantité totale du disque dur en partition. Chaque partition est alors vue par le système d'exploitation comme étant assimilé à un disque dur particulier. (ou plutôt, à un point de montage particulier), présentant un espace disque bien précis, décidé à la création de la partition.

    Cet espace disque correspond, fatalement, à un nombre de segment bien précis qui correspond également à un nombre d'adresse "potentielles". Par exemple, si chaque segment peut contenir 512octets et que tu crées une partition de 1Mb, elle sera forcément composée de 2048 segments (vu qu'il faut deux segments pour obtenir 1Kb et 1024 Kb pour obtenir un Mb)

    Sur chaque point de montage, vient se "greffer" un système de fichiers. Chaque système de fichiers est, pour des raisons pratiques, limité à un nombre d'adresses utilisables qui lui est propre. Il y a donc deux situations clairement différentes:

    - Soit le nombre d'adresses utilisables par le système de fichiers est plus grand que le nombre d'adresse potentielles de la partition, et, dans ce cas, il n'y a absolument pas de problème : il est tout à fait possible de faire en sorte que chaque cluster utilisé par le système de fichiers corresponde exactement à un segment sur le disque dur.

    C'est, en gros, la situation dans laquelle on se retrouve avec les systèmes de fichiers récents (NTFS, ext3/ext4 et autres)

    - Soit, le nombre d'adresses potentielles de la partition est plus grand que le nombre d'adresses utilisables par le système de fichiers. Le système de fichiers va donc décider de créer des clusters qui correspondent à un multiple (2, 4, 8) de segment. Chaque cluster, et donc chaque fichier aussi petit soit il, utilisera donc ce nombre de segment quoi qu'il arrive.

    C'est pour cela qu'il arrive que la taille réelle d'un fichier est (parfois largement) plus petite que la taille physique du même fichier, car, quoi qu'il arrive, un fichier utilisera toujours un cluster entier. Si le cluster utilise 10 segment, chaque cluster représentera forcément une taille de ... 5Ko minimum. Et comme le cluster est "indivisible", chaque fichier utilisera forcément un multiple de 5Ko sur le disque (avec des "pertes" pouvant donc aller jusqu'à 4,9 ko par fichier).

    Cette situation apparaissait souvent avec le système de fichier FAT32, qui est, par chance, de moins en moins utilisé.

    Pour répondre à ta question, la taille de tous les clusters est, d'office, identique pour une partition donnée (tu ne trouveras jamais une partion dont certains cluster sont de 1Ko et d'autres sont de 2Ko, par exemple), mais elle peut varier d'une partition à l'autre, et ce, même si les partitions se trouvent sur le même disque dur, en fonction du système de fichiers utilisés et de la taille de la partition (du nombre de segments utilisés par la partition en question
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Tu oublies que certains disques sont passés au 4K natif, tandis que les anciens sont effectivement à 512 octets par secteur.

    Je crois que c’est ça que l’OP cherche à déterminer.

    Et honnêtement, je ne sais pas s’il est possible de déclarer une partition virtuelle entre deux disques physiques de taille de secteur différente, mais je ne vois pas ce qui l’interdirait. Du coup, la notion de taille de secteur sur une partition n’aurait pas réellement de sens (de toute façon, je crois que d’un point de vue logique / système, on est resté à des secteurs virtuels de 512 octets).

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par yohann2008 Voir le message
    Bonjour,
    Je regarde un example pour obtenir la taille de secteur physique réel (http://msdn.microsoft.com/en-us/libr...v=vs.85).aspx) , ils mettent directement \\\\.\\PhysicalDrive0 je m'interroge et je me demande si dans tous cas ceci marchera ? Est-ce que une même partition virtuel peut avoir plusieurs disque dur et ont-ils on obligatoirement la même taille de secteur physique ?
    Le fait est que si tu cherches à obtenir une taille de secteur physique, alors il faut que tu interroges un device physique. La notion de taille de secteur physique d'un disque virtuel n'a pas vraiment de sens

    Citation Envoyé par yohann2008 Voir le message
    Bonjour,
    Comment savoir sur quel "PhysicalDrive" est mon lecteur C: (par exemple) ?

    Merci d'avance.
    Pour savoir sur quel disque physique est une partition donnée, tu as la possibilité d'utiliser la fonction QueryDosDevice.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

Discussions similaires

  1. [Disque Dur] Secteur physiquement déféctueux.
    Par byloute dans le forum Composants
    Réponses: 2
    Dernier message: 21/09/2009, 12h00
  2. taille maximale d'une table en termes physiques
    Par wisstiti3 dans le forum Administration
    Réponses: 3
    Dernier message: 22/09/2008, 10h18
  3. [X]Diagramme en secteurs : Taille des étiquettes ?
    Par v1nce dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 08/03/2007, 10h02
  4. probleme taille fichier physique AS400
    Par curt25 dans le forum DB2
    Réponses: 1
    Dernier message: 06/02/2007, 20h20
  5. Diff. de taille physique entre CHAR(1) et VARCHAR2(1)
    Par foster06 dans le forum Oracle
    Réponses: 6
    Dernier message: 20/10/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo