Dynamic Address Translation, or DAT, is the process of translating a virtual address during a storage reference into the corresponding real address. If the virtual address is already in real storage, the DAT process may be accelerated through the use of a translation lookaside buffer; if the virtual address is not in real storage, a page fault interrupt occurs, z/OS is notified, and z/OS brings the page in from auxiliary storage.
Looking at this process more closely reveals that the machine can present any one of a number of different types of faults. A type, region, segment, or page fault will be presented depending on at which point in the DAT structure invalid entries are found.
The faults will repeat, down the DAT structure until ultimately a page fault is presented and the virtual page is brought into real storage either for the first time (there is no copy on auxiliary storage) or by bringing the page in from auxiliary storage.
DAT is implemented by both hardware and software through the use of page tables, segment tables, region tables and translation lookaside buffers. DAT allows different address spaces to share the same program or other data that is for read only. This is because virtual addresses in different address spaces can be made to translate to the same frame of real storage. Otherwise, there would have to be many copies of the program or data, one for each address space.