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