Module properties — safe multi-instance execution: In which type of module can multiple executions overlap in time and still produce the same correct result?

Computer Science Language Processors Difficulty: Easy
Choose an option
  • A
    non-reusable module
  • B
    serially reusable
  • C
    reenterable module
  • D
    recursive module
  • E
    interrupt-driven module

Answer

Correct Answer: reenterable module

Explanation

Introduction / Context:Systems programming often requires routines that can be invoked concurrently (e.g., by interrupts or multiple tasks). Such routines must be designed to be safely reentered without corrupting state.

Given Data / Assumptions:

  • “Multiple instances of execution” may interleave or overlap.
  • Correctness must be preserved regardless of overlapping calls.

Concept / Approach:A reenterable (reentrant) module contains no hidden writable shared state, or protects it appropriately. Its code is pure (read-only), and any writable data is on per-invocation stacks or passed explicitly, allowing simultaneous execution by different callers without interference.

Step-by-Step Solution:Identify need: safe overlapping calls.Match term: “reenterable module” is specifically defined for this property.Eliminate alternatives: “serially reusable” requires one-at-a-time execution.

Verification / Alternative check:Operating systems specify reentrancy for interrupt service routines and library functions, ensuring safety under concurrency.

Why Other Options Are Wrong:(a) Non-reusable cannot be safely reused. (b) Serially reusable forbids overlap. (d) Recursive is about self-calls depth, not safe concurrency. (e) Interrupt-driven describes invocation mechanism, not concurrency safety.

Common Pitfalls:Confusing recursion with reentrancy; they are independent concepts.

Final Answer:reenterable module.

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