計量管理系統(tǒng)管理模塊實施和內存空間分配
早期的用戶系統(tǒng),其生存容量一般少64KB,可用的存儲空間受到相當的限制??墒?,某些大作業(yè)的地址空間超過這個限制,而不能將它一次全部裝入主存內這就產生了大作業(yè)與小生存的矛盾。那么,如何使大作業(yè)在這樣的小系統(tǒng)上運行呢?當初采取的一個有效的辦法是“覆蓋”管理。也就是說,把一個大的程序劃分成一系列的覆蓋。每個覆蓋是一個相對獨立的程序單位,我們把程序執(zhí)行時并不要求l司時裝入二乙存的覆蓋組成一組,并稱其為覆蓋段,這個覆蓋分配劍同一個芋儲區(qū)域。這個區(qū)域稱之為覆盞區(qū)它與覆蓋段一對應。顯然,為了使這個覆蓋區(qū)能為相應覆蓋段中每個覆蓋在不同時刻共享使用,其大小應以其中最大的覆蓋來確定。
通常一個大作業(yè)的覆蓋結構要求編程人員事先給出為了實現(xiàn)覆盞管理,則需要得到相應的編譯程序和連接裝配程序的協(xié)助。
為了控制一個程序相,避覆蓋的裝入,它必須包括一個稱為覆蓋管理程序的控制程序這個控制程序常駐內存,它是由編譯程序或裝配程序加到這個程序中的。當程序要引用當前尚未裝入覆蓋區(qū)的覆蓋中的過程或數據時,則調用覆蓋管理程序,請示提取需要的覆蓋并裝入規(guī)定的覆蓋區(qū)巾。先前已裝入到該覆蓋區(qū)中屬同覆蓋段的覆蓋被這新的覆蓋所破壞。
這種覆蓋管理的開銷比較大,但是它解決了小主存與大作業(yè)的矛盾。如果要求作業(yè)的所自.模塊都同時裝入生存的話,就無法運行。這種技術在今天的許多系統(tǒng)中仍然存在,特別在有些微型機系統(tǒng)中。