Q. Consider a system in which a program is able to be separated into two parts: code and data. The CPU recognizes whether it wants an instruction (instruction fetch) or data (data fetch or store). Consequently two base-limit register pairs are provided: one for instructions and one for data. The instruction base-limit register couple is automatically read-only so programs can be shared among different users. Converse the advantages and disadvantages of this scheme.
Answer: The main advantage of this scheme is that it is an effective mechanism for code and data sharing. For instance only one copy of an editor or a compiler needs to be kept in memory and this code can be shared by all processes needing access to the editor or else compiler code.
Another benefit is protection of code against erroneous modification. The only drawback is that the code and data must be separated which is typically adhered to in a compiler-generated code.