Give the reasons that the page size in a virtual memory system should be neither very small nor very large
As the page size grows, more and more bits are used in the offset field, meaning the size of a page table can shrink. Also, there are cache size ramifications. This is an advantage of having larger page size. However, as the page size grows, there is more and more fragmentation (since there are going to be more and more pages brought in that are not fully utilized). It also takes a longer amount of time to bring in a very large page, which can be bad if you are not using much data on that page. This is why smaller page size is preferable.
When page size is very small, very little data is bought in within each page and so need a lot of I/O operations to bring in many small pages. The overhead would also be high for small page size. When page size is very large, main memory would be wasted since according to principle of locality only a small part of the large page would be used for execution.