In program execution, a program becomes a process with dedicated resources, using memory management mechanisms like the Memory Management Unit (MMU) to translate virtual memory addresses and grant access permissions. The process executes instructions guided by the instruction pointer, stores data on the stack (function calls and variables) and heap (dynamic allocations), maintaining an execution context that holds the program’s state.