Dynamic Linking and Loading

Dynamic Linking and Loading

Dynamic Linking and Loading Computer Science and Engineering College of Engineering The Ohio State University Lecture 27 Unifying “X” and “M” Computer Science and Engineering The Ohio State University Don’t really need 2 separate mechanisms! Recall meanings of T _ _ _ _ _ _ M T _ _ _ _ _ _ XSym “Sym” is in EST Add this value of “Sym” to address field Recall that segment names always in EST This suggests that X can be seen as a more general form of M! Replacing “M” with “X” Computer Science and Engineering The Ohio State University T463A4030M9 Prog .ORIG . Loop - - - or . JMP Loop . T463A4030X9Prog Linking with Libraries Computer Science and Engineering The Ohio State University Common functions often defined in libraries Library linking can be made implicit: After pass 1, may still have “unresolved external symbols” in EST If so, search libraries for matching definitions and load them (after pass 1) Still some unresolved externals? Then error Typically, user-specified libraries searched first, then standard ones (automatically) Loader Optimization: Space Computer Science and Engineering The Ohio State University Consider a program that calls “sqrt”, “rnd”, and “substr” Each symbol is defined in its own (large) library So, linked and loaded program is huge Solutions (for saving memory): Virtual memory and paging Dynamic loading Dynamic linking Dynamic Loading Computer Science and Engineering The Ohio State University Observe: program does 1 thing at a time So not all segments need to be present simultaneously Example A 200 BC500 300 F 400 D 300 E 200 Total Size = 1.9 Mb Dynamic Loading - Overlays Computer Science and Engineering The Ohio State University B/D never together with C/E/F Define an “overlay structure” for how segments can be swapped in and out 3 scenarios: A 200 A 200 A 200 B 500C 300 C 300 E 200 F 400 D 300 Total Size = 1000 700 900 Only 1Mb needed (length of longest path) Trade-off: memory space & performance Dynamic Linking Computer Science and Engineering The Ohio State University Instead of branching directly to an external symbol, program issues a call request to OS Subroutine name is parameter for request OS responsibilities Keep table of loaded libraries Load new library if needed Manage swapping of libraries as appropriate Transfer control to appropriate subroutine Return control to original program Dynamic Linking Computer Science and Engineering The Ohio State University “Binding”: the association of a symbolic name (eg “Sqrt”) with an actual address (eg x6E5E) Dynamic linking delays binding from load time to execution time (“late binding”) Advantages: Many programs can share 1 loaded library Library can be recompiled on-the-fly Library only loaded if actually used Optimization: Time Computer Science and Engineering The Ohio State University Every time we want to execute a program, must re-link, relocate and re- load Costly if object code hasn’t changed Idea: separate these two operations Object Linkage Linked Relocating Memory Files Editor Program Loader “Linkage editor” does the binding Loader does alloc’n/reloc’n/loading Small, simple, fast Summary Computer Science and Engineering The Ohio State University Unifying relocation and linking Both require the same kind of patching Dynamic loading with overlays Dynamic linking Defer binding symbols to their values from link/load time to run time Linkage editor: separate linking from loading.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us