Suprapunere (programare)

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 30 septembrie 2015; verificările necesită 16 modificări .

Overlay (overlay) - overlay, o metodă de programare care vă permite să creați programe care necesită mai puțină memorie RAM. Metoda constă în împărțirea programului în blocuri executabile, care sunt scrise succesiv într-o zonă de memorie peste cele anterioare, își îndeplinesc funcțiile și sunt suprascrise de următoarele. Calculatoarele încorporate folosesc adesea suprapuneri, deoarece sistemul pe cip conține de obicei puțină memorie și nu acceptă memoria virtuală .

Utilizare

Metoda presupune împărțirea programului în fragmente numite suprapuneri ( suprapuneri ). Dimensiunea fiecărei suprapuneri este limitată în funcție de memoria disponibilă. Locul din memorie unde va fi încărcată suprapunerea se numește regiune ( regiune , regiune de destinație ). În timp ce programele folosesc adesea doar un singur bloc de memorie pentru a încărca suprapuneri diferite, este posibil să se definească mai multe regiuni de dimensiuni diferite. Managerul de suprapunere, uneori parte din sistemul de operare , încarcă suprapunerea solicitată din memoria externă ( HDD , memorie flash, Ppzu // Dicționar enciclopedic științific și tehnic . ) în regiune. Unele linkere (compozitori) acceptă suprapuneri. [unu]

Programarea cu suprapuneri necesită ca programatorul să fie atent la dimensiunea fiecărei părți a programului. Din această cauză, sunt adesea folosite limbaje de nivel scăzut și asamblare, care vă permit să limitați dimensiunea programului și a suprapunerilor. Programarea cu suprapuneri este mai complexă decât programarea cu memorie virtuală.

Suprapuneri în PC/MS DOS

Pe vremea DOS, suprapunerile erau populare deoarece sistemele de operare și majoritatea computerelor nu ofereau memorie virtuală. PC-ul IBM original nu folosea nici măcar un hard disk , așa că singurul dispozitiv de stocare secundar a fost o dischetă de 5-1/4 inchi.

Primele PC-uri IBM aveau foarte puțină memorie RAM conform standardelor actuale. În timp ce dischetele de 5-1/4" puteau stoca 360 de kiloocteți, memoria RAM a computerelor din 1981-1985 era în general și mai mică (64, 128 sau 256 kiloocteți, uneori 384 kb). Primele modele ale PC-ului IBM aveau de la 16 la 64 kb Cea mai mare cantitate de memorie care putea fi instalată într-un sistem fără tehnologii speciale era limitată la 640 K. Pentru volume mari, era necesar să se folosească standardele EMS (memorie extinsă) și XMS (memorie extinsă) și să se instaleze memorie suplimentară pe Carduri ISA.O metodă controversată pentru DBMS grele, care necesită investiții suplimentare, atât financiare, cât și intelectuale.

Ieșirea a fost găsită. O parte din cod a rămas în RAM (programul principal, bibliotecile utilizate în mod obișnuit, partea de suprapunere), iar restul a fost supraîncărcat de partea de suprapunere - unități de procesare și proceduri și funcții de încărcare în RAM, după cum era necesar, ceea ce a fost procesarea suprapunerii. programul a făcut-o. Logistica amenajării suprapunerilor a necesitat înțelegerea a ce, unde și unde să plece, deoarece aplicarea unei proceduri dintr-o altă suprapunere a dus la o schimbare a suprapunerii, pierderea variabilelor și alte erori, mai ales având în vedere limitarea RAM.

Astfel, suprapunerile trebuiau folosite pentru programe mari. [2] În DOS, fișierele binare care conțineau suprapuneri aveau adesea o extensie .OVL

Note

  1. Documentația GNU Linker: Overlay Description (3 iunie 2008). Arhivat din original pe 12 august 2012.
  2. totul despre tipul de fișier .ovl . www.cryer.co.uk. Data accesului: 27 iunie 2016. Arhivat din original la 2 octombrie 2009.

Vezi și