But there is usually more than one program running at any given time, so the total amount of memory devoted to page tables is 4K times the number of jobs that can be allowed at any given time. Supposing there can be 50 jobs, then 200K would have to be set aside for page tables. This is only the "skinny" version, too, without disk addresses, so more than 200K would have to be set aside on the disk drive. Adding 40 bytes for a disk address to 2 bytes per page table entry, we get 42 bytes times 2048, or 86,016 which is 84K for one job's complete page table. Fifty jobs, each getting 84K, would eat up an astonishing 4.2 megabytes for page tables, which is twice as much memory as we assumed the entire computer had! Further, these assumptions of 8K pages are large. More typically, pages are 4096 bytes, which would double all the numbers. |