1. A monitor, comprising: a register configured to store at least two contexts and a context change value, wherein each context includes information defining a range of addresses in memory that is permitted for instruction fetch access or data read/write access by a software process executed by a processing unit, and wherein each of the at least two contexts is associated with an identifier value; a context selector circuit configured to select one of the at least two contexts for context monitoring dependent on determining that the context change value stored in the register matches a first part of a data access address output by the processing unit, and wherein the context selector circuit selects said selected one of the at least two contexts for context monitoring dependent on whose identifier value matches a second part of the data access address output by the processing unit; and an address monitor circuit configured to receive a memory access address output by the processing unit for an instruction fetch access or a data read/write access requested by the executed software process and compare a value of the memory access address against the information defining the permitted range of addresses in memory for the selected one of the at least two contexts, said address monitor circuit further configured to raise an interrupt of processing unit execution of the software process if the memory access address is outside of the permitted range of addresses in memory for the selected one of the at least two contexts.