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

Langages de programmation Discussion :

éxécution d' un programme >> que contient la ram ???


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut éxécution d' un programme >> que contient la ram ???
    Bonjour c' est mon premier post dans ce forum alors soyez indulgent car je sais pas trop ou j aurai pu poster cette question

    voilà c une question de débutant :

    je lance un executable :

    est ce que tout l' "exe" est copié en ram ?
    est ce que dans la ram j 'ai un un block d' instructions séparé d' un block de variables ?
    l' "exe" occupe t il des cases memoires contigues ?

    merci de me renseigner ou sinon de me dire sur quel forum j' aurai du poster !

  2. #2
    duj
    duj est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 141
    Points : 474
    Points
    474
    Par défaut Re: éxécution d' un programme >> que contient la ram ?
    Citation Envoyé par bob_sapp


    je lance un executable :

    est ce que tout l' "exe" est copié en ram ?
    en principe, oui, mais pas forcément : si il y a des techniques qui permettent de l'éviter (paging):ben oui, et on fait quoi si le programme est plus grand que la RAM?
    est ce que dans la ram j 'ai un un block d' instructions séparé d' un block de variables ?
    en principe oui, il y a même
    un segment code,
    un segment pour les variables initialisées,
    un segment pour les variables non initialisée,
    un segment nommé tas (heap), dont la taille peut varier à la demande du programme
    un pile : utilisée pour stocker, par exemple, des variables locales

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          l
    ' "exe" occupe t il des cases memoires contigues ?
    de manière logique, oui, mais encore une fois, une techinque comme le paging permets de faire en sorte que ce ne soit pas le cas

    merci de me renseigner ou sinon de me dire sur quel forum j' aurai du poster !
    Bref, pour répondre à toutes tes questions, il faudrait un livre...
    va voir là : http://www.ea2215.univ-brest.fr/ingelog/psaliou/enseignement/supports-cours.htm
    C'est une bon cours sur les systèmes d'exploitation.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    merci de ta réponse en effet ma question concernait pas trop le dev mais plutôt "comment ça marche un prog"
    je pense que c une base à savoir car je suis en bts inf de gestion et nous apprnd l' algo et merise mais pas le fonctionnement de "bas niveau" de la machine ....

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut,

    En fait, c'est plutot la reponce de duj, qui a attisé ma curiosité, avec :

    un segment pour les variables initialisées,
    un segment pour les variables non initialisée,
    Je sais pas en quel langage tu codes mais sur les principeaux langages, les variables sont stocker sur la pile, exepter les globales, qui le sont directement sur le code.

    Tu doit codés avec un langage de relativement haut niveau, et orienté objet, car il gére les variables non initialisées. Ce que ne ferais surement pas l'assembleur

    Alors, ca serais sympa que tu rassasies ma curiosité.

    Sinon, bob_sapp, tu peux faire confiance a duj, l'executable est entierment et sur la memoire de pagination si il n'y a pas suffisement de memoire vive.

    Merci

    Un petit ange ... <Lrhoul Samir>

    PS : Ils font comment pour les archives auto-extractible ?

  5. #5
    duj
    duj est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 141
    Points : 474
    Points
    474
    Par défaut
    Ben en fait, le langage C (sous linux du moins) gère les variables non initialisées:
    dans le fichier représentant un programme (sur disque, quoi)
    Ou trouve trois partie : le code, les variables initialisées, et les variables non initialisées (càd qui ont une valeur par défaut, quoi).

    Dans ce fichier, on n'écrit pas explicitement leur valeur, puisque on peut les déduire à l'execution: gain de place.

    Sur la pile, on ne stocke que les variables locales

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut

    Tu me donnes envie de passer par tout le mecanisme de compilation du C...

    Un petit ange ... <Lrhoul Samir>

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Un_petit_ange
    un segment pour les variables initialisées,
    un segment pour les variables non initialisée,
    Je sais pas en quel langage tu codes mais sur les principeaux langages, les variables sont stocker sur la pile, exepter les globales, qui le sont directement sur le code.
    PS : Ils font comment pour les archives auto-extractible ?
    Les variables automatiques sont définies en registe ou en pile
    Les variables persistantes appartiennent au[x] segment[s] de donnée[s]. Les détails dépendent de chaque systme.

    Les archives auto-extractibles sont des fichiers exécutables comprenant une partie de code non compressé avec l'algo de décompression et une partie de données initialisée représentant le code d'un executable compressé. La suite est facile à deviner...

  8. #8
    Candidat au Club
    Inscrit en
    Décembre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut tout le monde,

    Emmanuel, je pense que tu a lever mon doute, je le voyais plus comme ce que tu décrit (malgrés mes problemes d'expessions).

    Merci

    Un petit ange ...

  9. #9
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut
    Bonjour bob_sapp (a ce que je vois tu aimes le combattant),

    Tu n'as pas besoin de connaitre cela pour faire du Merise ou de l'algo (du moins algo "general").
    Sinon il ne faut pas tout confondre. un programme ca ne marche pas . C'est le processeur qui va executer le programm en RAM (le plus souvent) de maniere plus ou moins complexe selon l'architecture processeur (cache, pipelining flotant et entier, MMU, ...)

    Il faudrait donc que tu saches coment fonctionne en general un processeur. Il y a de nombreux bouquins (meme anciens, c'est tres interessant et souvent encore a l'ordre du jour) qui traitent des proc 80x86...

    Enfin, tu peux etudier comment l'OS gere le processeur.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    slt

    effectivement le mécanisme d'execution des prog n'est pas au programme du bts IG du moins pas en première année

    si je peux m'en passer pour l'algo et merise alors tt mieux car ca a l'air assez complexe mais je reste curieux car qd on sais que le proc ne traite que des 0 et des 1 et qu'avec ça on arrive à jouer à des jx en 3d ya de quoi se demander comment ca marche !!!!!

    bref en perseverant dans les etudes je l' apprendrais peut etre ...

    vous avez appris tt ça a la fac ???

Discussions similaires

  1. s'amuser dans la programmation en tant que métier ?
    Par Bruno75 dans le forum Etudes
    Réponses: 9
    Dernier message: 02/02/2006, 21h36
  2. Programme ne fonctionnant que sur certaines machines
    Par Marekh dans le forum DirectX
    Réponses: 14
    Dernier message: 30/08/2005, 14h09
  3. [Jawin][VB]comment savoir ce que contient un objet ?
    Par blaz dans le forum API standards et tierces
    Réponses: 15
    Dernier message: 22/08/2005, 12h27
  4. [VB6] Exécuter un programme en tant que...
    Par Le_Tolier dans le forum VB 6 et antérieur
    Réponses: 36
    Dernier message: 28/05/2004, 14h53

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