SQLOS Resource Monitor and QueryMemoryResourceNotification Win API
This is called external memory pressure assuming that you set the max memory setting to a reasonable value. Generally it happens when processes other than SQL server (ssis, monitoring agents, iis etc.) consumes memory.

You can identify if a memory pressure is internal ör external from ring buffers which is explained in Jonathan's post

An easier way of determining memory pressure is to monitor memory grants pending and memory grants outstanding performance counters. 

In both ways either you have to use a third party monitoring software for alerting or you can create your own alerting mechanism. 

Note: Cited on both question and answer :). Cheers Jonathan.