Asymmetric multiprocessing (AMP)
Several cores on one chip, each running its own program and its own operating system rather than sharing one.
Under symmetric multiprocessing (SMP), a single OS treats every core as interchangeable and migrates threads between them at will. AMP does the opposite: each core lives in its own world. The textbook case is an SoC such as the STM32MP1 or NXP i.MX 8M, where a Cortex-A runs Linux while a neighbouring Cortex-M runs an RTOS or plain bare-metal code. Linux handles networking, filesystems and the display; the microcontroller core handles the motor loop that cannot tolerate the scheduler taking a breather.
The cores share memory and an interrupt controller but nothing else, so cooperation has to be spelled out: who owns which peripheral, which RAM belongs to whom, how messages get across. That is the job RPMsg and OpenAMP exist for. The payoff is real-time behaviour without giving up Linux; the cost is that a bug can now consist of two programs that are each individually correct.