I still am confused whether I am asking the right question but here goes

Consider a X bit processor. It can address theoretically a main memory of 2^x bytes(assuming byte addressable). Now consider an operating system which supports virtual memory. This allows it to execute programs much larger than the actual main memory available (like on most modern 64-bit cpus we have ram sizes of 4-16 GB and even others but never 2^64 bytes of ram altogether). Each process would generate a logical address of its own which also is of some fixed size(I read somewhere that in linux processes have 42-48 bit logical address). So a process size would be upper bounded by the size of logical address(am I right?). What would happen if a process of size greater than what is allowed by the logical address space is executed( assuming the filesystem supports such a big file size on disk). Would it be executed or not? And what would be the reason for it? Or is such a scenario not possible?

If you find anything wrong in my question please do correct me.

  • $\begingroup$ process size would be upper bounded by the size of logical address would seem to depend on the exact abstraction used to model process. At the end of the usefulness of 16 bit address spaces, "split I/D" and ("Intel style") "segmentation" reared their heads. Guess what happened when more memory than addressable with 32 bits became affordable. $\endgroup$
    – greybeard
    Dec 12, 2021 at 12:49
  • $\begingroup$ so basically there's no way to do that right, other than the obvious solution to increase the no. of bits for the logical address(which would then make my question irrelevant). I was thinking if there could be a solution to this, perhaps something on the lines of overlay. $\endgroup$
    – Rinkesh P
    Dec 12, 2021 at 13:54


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.