In uClinux, since it has noMMU, it occupies contiguous address in memory.
When a compiler is linking a program, it identifies the text segment to be shared and data segment to be unshared for the because of less availability of physical memory.
If it follows position independent code and So when multiple processes run, suppose 3 processes run and don't share complete text but part of a code section is shared among the 3 processes. Then is the shared memory located somewhere other than the memory locations of these three processes?
Or the shared segment resides in one of the process's memory and is referred from the code segment of other processes?
If so, then it is not occupying contiguous memory locations right! then how can we say a process occupies contiguous memory locations?