Final answer:
The correct solution to the problem of external fragmentation is to permit the logical address space of a process to be noncontiguous.
Step-by-step explanation:
The correct solution to the problem of external fragmentation is to permit the logical address space of a process to be noncontiguous. This means that the memory allocated to a process does not have to be contiguous, and the operating system can allocate memory in a fragmented manner. By allowing noncontiguous memory allocation, the operating system can utilize smaller gaps in memory to fit in smaller processes, even if the gaps are scattered throughout the memory space.
Permitting smaller processes to be allocated memory at last is not a solution to the problem of external fragmentation. Allocating memory to smaller processes at last could result in larger gaps being left in the memory, leading to more external fragmentation.
Similarly, permitting larger processes to be allocated memory at last would not solve the problem of external fragmentation either. Allocating memory to larger processes at last could result in smaller gaps being left in the memory, also leading to more external fragmentation.
Therefore, the correct answer is (a) Permit the logical address space of a process to be noncontiguous. By allowing noncontiguous memory allocation, the problem of external fragmentation can be mitigated.