1. A computer readable storage medium encoded with routines executable by a computing device for allocating a memory to a process being executed within an operating system of the computing device, wherein said memory includes a plurality of memory regions, and wherein a particular one of the plurality of memory regions is to be allocated to the process being executed on the computing device, said computer readable storage medium comprising: a first routine for identifying a type of the particular memory region to be allocated to the process being executed on the computing device, the type of the particular memory identified being selected from a group consisting of a stack, a heap, a memory mapped file, an image file mapping, an environmental block, and an arbitrary memory allocation; a second routine for selectively randomizing an address associated with the particular memory region based on the identified type and whether randomization is enabled for the identified type; and a third routine for allocating the particular memory region having the randomized address to the process being executed on the computing device.