2013 m. sausio 10 d., ketvirtadienis

10.6. Temos apibendrinimas



  1. Atminties segmentavimas yra visu pirma reikalingas kaip priemonė, daranti programą mažai priklausomą nuo jai išskirtos vietos atmintyje.
  2. Labai svarbus, segmentavimo privalumas yra tas, kad sudarant programą iš keliu moduliu, ryšių redaktoriui nereikia ištiesinti visu moduliu į vieną tiesinę adresu erdvę.
  3. Į I8086 programinį modelį įvesti segmentų registrai leidžia padidinti fizinės atminties adresaciją iki 1MB.
  4. I8086 komandų formatuose nurodomas 16-kos skilčių adresas (poslinkis). Realus fizinis kreipties į atmintinę adresas gaunamas prie vykdomojo adreso prisumavus atitinkamo segmento registro turinį, perstumtą 4-riomis skiltimis į kairę.
  5. Esant segmentacijai, programos yra dalomos į nepriklausomai adresuojamus segmentus ir jie yra laikomi atskirose adresinėse erdvėse. Segmentacija reikalauja papildomo žingsnio, kai yra atliekama adreso transliacija.
  6. Kai programa yra įkeliama į atmintį, operacinė sistema sukuria segmentų lentelę, kurioje yra nurodomas (absoliutus) kiekvieno programos segmento pradžios adresas. (Kiekvienai aktyviai programai yra atskira segmentų lentelė). Vėliau, kai operacinė sistema pradeda vykdyti šią programą, jos segmentų lentelės adresas yra įkeliamas į specialų registrą.
7.    Programos vykdymo metu  adresai turi būti transliuojami iš santykinių į absoliučius, kadangi programuotojai naudoja santykinius adresus, o kompiliatoriai juos transliuoja į bazę plius poslinkis.
  1. Programos segmentai gali skirtis savo ilgiu. Taikant puslapiavimą, programa yra sudaloma į fiksuoto ilgio puslapius. Puslapio dydis paprastai yra nedidelis ir yra parenkamas siekiant efektyvumo techninės įrangos atžvilgiu.
  2. Kaip ir segmentų atveju, programos puslapiai nėra talpinami į vientisą atmintį, jie išmėtomi į laisvas atminties sritis. Tokiu atveju adresas yra sudaromas iš dviejų dedamųjų, puslapio numerio (adreso vyresnėse bitų skiltyse) bei poslinkio (nurodomo adreso jaunesnėse bitų skiltyse).
  3. Adresų dinaminė transliacija yra atliekama programos vykdymo metu. Instrukcijos vykdymo metu, bazinis adresas bei poslinkis yra paverčiami absoliučiu adresu techninės įrangos priemonėmis. Puslapio bazinis adresas yra gaunamas iš programos puslapių lentelės (kaip kad segmento adresas – iš segmentų lentelės), šią lentelę tvarko operacinė sistema. Puslapio adresas sumuojasi su poslinkio reikšme ir tuo būdu yra nustatomas absoliutus adresas.
  4. Kartais segmentacija ir puslapiavimas naudojami kartu, tokiu atveju adresas nusakomas segmento numerio, puslapio numerio segmente bei poslinkio reikšmės puslapyje.   Vykdant tokio adreso transliaciją pradžioje yra nagrinėjama su programa surišta segmentų lentelė. Iš jos yra gaunama atitinkamo segmento puslapių lentelė, iš kurios yra randamas puslapio bazinis adresas, prie kurio pridėjus poslinkį yra nustatomas absoliutus adresas.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės