Linker: Forskelle mellem versioner

Content deleted Content added
Rune (diskussion | bidrag)
Beskrivelse af statisk og dynamisk link
Rune (diskussion | bidrag)
Sammenligning af statisk og dynamisk link. exit stub
Linje 20:
Med dynamisk link udsættes så mange af adresseberegningerne som muligt til afviklingtidspunktet. For at få det til at virke, skal man sikre sig, at compileren har genereret kode, der kan afvikles forskellige steder i ram fra gang til gang. Hvert modul befinder sig i en fil, som først bliver læst, når der er brug for det. I eksemplet ovenfor vil modulet Intro være det program, som brugeren aktiverer. Når modulet Spil skal bruges, vil den dynamiske linker indlæse modulet, og rette Intro i ram, så alle referencer til funktioner i Spil kan bruges. Når der bliver brug for andre moduler vil de også blive indlæst, og adresserne i de kaldende moduler vil blive rettet til.
 
==Sammenligning==
{{stub}}
Der er fordele og ulemper ved begge måder at lave link af prgrammer på. Statisk link er enkel, men da moduler ofte anvendes på tværs af programmer kan det give et anledning til en del resourcespild. Jo større modulerne er, jo større er problemet. På den anden side er statisk linkede programmer hurtige at læse fra [[disk]], da alt hentes på en gang. Et program, der er statisk linken har færre afhængigheder til det system, det afvikles på, så det kan potentielt virke på flere maskiner.
 
Dynamisk link giver mulighed for, at det samme modul kan bruges fra mange programmer. Det sparer hukommelse. På den anden side tager det lidt tid at lavet selve linken, og indlæsning af mange små moduler er ikke effektivt. På de fleste systemer bruges dog dynamisk link fordi mange programmer slet ikke bruger alle moduler hver gang det afvikles. Til gengæld bruger næsten alle programmer en del moduler, som [[styresystem]]et stiller til rådighed, og de skal kun læses fra disk første gang de bliver brugt.
 
[[kategori:datalogi]]