A computer-implemented method for controlling execution of a computer program, the method comprising: determining, by a processor, a memory sector for storing at least a portion of execution instructions of the computer program in virtual memory address space, wherein the memory sector comprises only a portion of a page; determining, in the virtual memory address space, one or more pages that contain code instructions and data associated with the memory sector; creating a duplicate of the virtual memory address space comprising the memory sector and the one or more pages; identifying each of the one or more pages as one of: a first type of pages containing code instructions and data only for the memory sector or only for the one or more memory sectors, or a second type of pages containing code instructions and data for both the memory sector and the one or more memory sectors; tagging (502, 503) the code instructions and the data in both the virtual memory address space and the duplicate of the virtual memory address space with an opcode of a command of the processor related to notifications, wherein the tagging comprises tagging the first type of pages and the second type of pages corresponding to one another in both the virtual memory address space and the duplicate of the virtual memory address space differently; receiving a notification to transfer execution of the computer program between different memory sectors while executing instructions stored in either the virtual memory address space or the duplicate of the virtual memory address space; and transferring execution of the computer program to a second memory location other than a first memory location in which the notification was received, wherein the execution is transferred from a sector of the first memory location tagged by a first tag to a sector of the second memory location tagged by a second tag. determining, by a processor, a memory sector for storing at least a portion of execution instructions of the computer program in virtual memory address space, wherein the memory sector comprises only a portion of a page; determining, in the virtual memory address space, one or more pages that contain code instructions and data associated with the memory sector; creating a duplicate of the virtual memory address space comprising the memory sector and the one or more pages; identifying each of the one or more pages as one of: a first type of pages containing code instructions and data only for the memory sector or only for the one or more memory sectors, or a second type of pages containing code instructions and data for both the memory sector and the one or more memory sectors; tagging (502, 503) the code instructions and the data in both the virtual memory address space and the duplicate of the virtual memory address space with an opcode of a command of the processor related to notifications, wherein the tagging comprises tagging the first type of pages and the second type of pages corresponding to one another in both the virtual memory address space and the duplicate of the virtual memory address space differently; receiving a notification to transfer execution of the computer program between different memory sectors while executing instructions stored in either the virtual memory address space or the duplicate of the virtual memory address space; and transferring execution of the computer program to a second memory location other than a first memory location in which the notification was received, wherein the execution is transferred from a sector of the first memory location tagged by a first tag to a sector of the second memory location tagged by a second tag.