Spatiul pe care il ocupa un program in memoria interna se imparte in doua domenii:
segmente de cod si segmente de date. p1t16tg
Segmentele de cod ale unui program sau DLL contin codurile executabile ale aplicatiei
- adica instructiunile care realizeaza functiile proprii aferente programului.
Aceste instructiuni nu se modifica in timpul executiei programului.
Segmentele de date contin informatii ce se modifica permanent in timpul executiei
aplicatiei curente. Aceste informatii sunt valori luate pentru scopuri interne
sau date introduse de utilizator. Continutul unui segment de date se poate modifica
de la o secunda la alta, de la o executie la alta - in timp ce continutul segmentului
de cod ramine acelasi.
Windows analizeaza memoria disponibila si daca aceasta este insuficienta, va
elimina din memoria RAM segmentele de cod cele mai putin utilizate. Daca un
program are nevoie de un segment pe care windows l-a indepartat deja din memorie,
modulul de administrare a memoriei il va incarca automat in RAM de pe hard disc,
astfel incit functionarea aplicatiei sa nu fie afectata. Acest mecanism de incarcare
dinamica functioneaza numai cu segmente de cod, pentru ca aceastea nu isi schimba
continutul in cursul executiei.
Replicarea instantelor active
Sub Windows, mai multe aplicatii identice se pot executa de mai multe ori,
aparent simultan. Copiile aflate simultan in executie se numesc instante active.
Fiecare instanta a unui program ocupa memorie interna, atit pentru segmentele
de cod, cit si pentru segmentele de date. Segmentele de cod ale aceleiasi instante
active sunt identice.
Mecanismul replicarii instantelor active consta in urmatorul principiu: prima
instanta a programului ocupa spatiu, atit pentru coduri, cit si pentru date,
iar oricare alta instanta aferenta aceluiasi program relansat va utiliza segmentele
de cod ale primei instante si va avea nevoie de memorie pentru segmentele de
date. De exemplu aplicatia WordPad ocupa in total 85 KB la prima lansare (40
KB memorie pentru coduri si 45 KB pentru date), iar la a doua lansare a instantei
ocupa doar 45 KB, spatiu doar pentru date.