Mikä on osoitteen sidonta?

Tietokoneen litteänäyttö ja näppäimistö - sivukuva

Osoitteensidonta varaa tietokoneen muistia ohjelmistoille.

Kuvan luotto: Ryan McVay/Photodisc/Getty Images

Tietokoneen muisti käyttää sekä loogisia osoitteita että fyysisiä osoitteita. Osoitteensidonta varaa fyysisen muistipaikan loogiselle osoittimelle liittämällä fyysisen osoitteen loogiseen osoitteeseen, joka tunnetaan myös virtuaaliosoitteena. Osoitteensidonta on osa tietokoneen muistin hallintaa, ja käyttöjärjestelmä suorittaa sen niiden sovellusten puolesta, jotka tarvitsevat pääsyn muistiin.

Muistinhallinta

Osoitteensidonta liittyy siihen, kuinka ohjelman koodi tallennetaan muistiin. Ohjelmat on kirjoitettu ihmisen luettavalla tekstillä noudattaen useita sääntöjä, jotka on asetettu ohjelman rakenteellisissa vaatimuksissa ohjelmointikielellä ja käyttämällä avainsanoja, jotka tietokoneen keskuskäsittely tulkitsee toimiksi Yksikkö. Kohta, jossa ohjelman suoritettava versio luodaan, määrää, milloin osoitesidonta tapahtuu. Jotkut ohjelmakielet, kuten "C" ja COBOL, on käännettävä, kun taas toiset, pääasiassa komentosarjat, ajetaan alkuperäisestä ohjelman tekstistä konekoodilla käännetyn binääriversion sijaan.

Päivän video

Kokoamisaika

Ensimmäinen osoitteensidontatyyppi on käännösajan osoitteensidonta. Tämä varaa muistista tilaa tietokoneen konekoodille, kun ohjelma käännetään suoritettavaksi binääritiedostoksi. Osoitteensidonta varaa loogisen osoitteen sen segmentin alkupisteeseen muistissa, johon objektikoodi on tallennettu. Muistin varaus on pitkäaikainen ja sitä voidaan muuttaa vain kääntämällä ohjelma uudelleen.

Latausaika

Jos muistin varaus on määritetty ohjelman varauksen yhteydessä, mikään ohjelma ei voi koskaan siirtyä tietokoneesta toiseen käännetyssä tilassaan. Tämä johtuu siitä, että suoritettava koodi sisältää muistivarauksia, jotka saattavat jo olla muiden uuden tietokoneen ohjelmien käytössä. Tässä tapauksessa ohjelman loogisia osoitteita ei ole sidottu fyysisiin osoitteisiin ennen kuin ohjelma kutsutaan ja ladataan muistiin.

Toteutusaika

Suoritusajan osoitteen sidonta koskee yleensä vain ohjelmien muuttujia ja on yleisin sidontamuoto skripteille, joita ei käännetä. Tässä skenaariossa ohjelma pyytää muistitilaa ohjelman muuttujalle, kun kyseinen muuttuja törmää ensimmäisen kerran komentosarjan käskyjen käsittelyn aikana. Muisti varaa tilaa tälle muuttujalle, kunnes ohjelmajakso päättyy tai ellei komentosarjan tietty käsky vapauta muuttujaan sidottua muistiosoitetta.