Read-only | By making pages read-only, you cause a SIGSEGV signal to be generated in any process that tries to modify them. You could do this as a debugging measure, to trap an intermittent program error. You can change read-only pages back to read-write. |
Read-write | You can put read-write protection on pages of program text, but this is bad idea except in unusual cases. For example, a debugging tool makes text pages read-write in order to set breakpoints. |
Executable | Normal data pages cannot be executed. This is a protection against program errors--wild branches into data are trapped quickly. If your program constructs executable code, or reads it from a file, the protection must be changed to executable before the code can be executed. |
No access | You can make pages inaccessible while retaining them as part of the address space. |