Loader functions: identify what the loader does during program preparation and startup.

Difficulty: Easy

Correct Answer: All of the above

Explanation:


Introduction / Context:
The loader bridges the gap between compiled/assembled object code and execution. It sets up memory, resolves addresses, and relocates code/data as needed. This question checks awareness of the loader’s concrete responsibilities.


Given Data / Assumptions:

  • Input: one or more object modules (and libraries).
  • Output: a loaded, relocatable or fixed image ready to run.
  • Symbol resolution and relocation are required for correct addressing.


Concept / Approach:

  • Loading includes placement, relocation, and link-time resolution (static or dynamic).
  • All listed tasks are classic loader/linker duties.


Step-by-Step Solution:

Allocate memory regions for code, data, stack/heap.Resolve external symbols among modules/libraries.Relocate address-dependent instructions/data to actual memory locations.Transfer control to program entry point.


Verification / Alternative check:

Modern OS loaders (e.g., ELF/PE loaders) perform these steps routinely; dynamic linkers additionally bind shared libraries at load/run time.


Why Other Options Are Wrong:

  • Each of A, B, C is a correct sub-function; therefore “All of the above” is the best answer.
  • None of the above: Incorrect because these are standard loader responsibilities.


Common Pitfalls:

  • Confusing compile-time linking with load-time dynamic linking—both involve symbol resolution but at different stages.


Final Answer:

All of the above

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion