Abstract :
The issue of quantitative determination of memory usage and utilization is central to multiprogramming computer systems. In such systems, one tries to improve the system performance by loading a set of independent jobs together into main memory. If the jobs have complementary resource requirements and the system is capable of parallel resource operation, the total time required to complete all jobs is less than if they were processed serially, i.e., in a uniprogramming mode. The situation is illustrated in Figure 1 showing a space-time diagram of memory occupancy, where the available memory space is dynamically covered with jobs. The term "job" is used in the sense of "process" as defined in [1], which also gives an excellent survey of related subjects. However, we restrict jobs to keep a fixed amount of memory until they are completed. Generalization of the concepts to be developed to include systems with dynamic allocation, swapping, paging is possible but not attempted here.