DOS memory management
Published by JAcK UMB under computers, Expanded Memory, Extended memory, MS-DOS, Processor and Memory on 16:30MS-DOS is an operating system that runs in real mode of the Intel x86 processors. In real mode, only 20-bit address bus of the first that will be used by the operating system to access memory, making the amount of memory that can be accessed only reach 220 = 1048576 bytes (1 MB) only, from which should 32-bit/40- -bit processor on a modern processor.
The types of memory address space of MS-DOS
DOS will share the memory area only 1 MB is a two address space, namely as follows:
* Conventional memory (conventional memory)
* Upper Memory, or the Upper Memory Block, or High Memory
If installed in the memory manager in CONFIG.SYS (for example, when HIMEM.SYS and EMM386.EXE installed), then the amount of address space can grow. In addition duajenis above, the DOS also offers two types of memory again, namely:
* Extended Memory
* Memory expanded
Conventional Memory
This address space is address space used by the program can be executed in order. Only 640 kilobytes in size only, which was taken from the address space of the first 1 MB. All computer programs that are running (whether it is running in the foreground or background) space using this area.
Expanded Memory
Extended memory is additional memory after 1 Megabyte first in which a combination of upper memory and conventional memory block ends. User can add more memory to a computer, but MS-DOS will not use it, except a few programs that are designed to be able to access the address space of the Extended memory, such as Windows.
Extended memory requires a driver to be used, referred to as the Extended Memory Manager, such as HIMEM.SYS. Managers will set the memory address space of memory that can be used by applications that need it, than of course prevent the two applications do not use the same memory address at a time (which can cause crash / collision between the two applications)
The types of memory address space of MS-DOS
DOS will share the memory area only 1 MB is a two address space, namely as follows:
* Conventional memory (conventional memory)
* Upper Memory, or the Upper Memory Block, or High Memory
If installed in the memory manager in CONFIG.SYS (for example, when HIMEM.SYS and EMM386.EXE installed), then the amount of address space can grow. In addition duajenis above, the DOS also offers two types of memory again, namely:
* Extended Memory
* Memory expanded
Conventional Memory
This address space is address space used by the program can be executed in order. Only 640 kilobytes in size only, which was taken from the address space of the first 1 MB. All computer programs that are running (whether it is running in the foreground or background) space using this area.
Upper Memory
Upper memory is the address space that can be used for special purposes, as well as to set the video memory. What size is the rest of the first 1 MB of memory that is not used by conventional memory, ie, 384 KBExtended Memory
Extended memory is additional memory after 1 Megabyte first in which a combination of upper memory and conventional memory block ends. User can add more memory to a computer, but MS-DOS will not use it, except a few programs that are designed to be able to access the address space of the Extended memory, such as Windows.
Extended memory requires a driver to be used, referred to as the Extended Memory Manager, such as HIMEM.SYS. Managers will set the memory address space of memory that can be used by applications that need it, than of course prevent the two applications do not use the same memory address at a time (which can cause crash / collision between the two applications).
Extended memory requires a driver to be used, referred to as the Extended Memory Manager, such as HIMEM.SYS. Managers will set the memory address space of memory that can be used by applications that need it, than of course prevent the two applications do not use the same memory address at a time (which can cause crash / collision between the two applications).
Extended memory is additional memory after 1 Megabyte first in which a combination of upper memory and conventional memory block ends. User can add more memory to a computer, but MS-DOS will not use it, except a few programs that are designed to be able to access the address space of the Extended memory, such as Windows.
Extended memory requires a driver to be used, referred to as the Extended Memory Manager, such as HIMEM.SYS. Managers will set the memory address space of memory that can be used by applications that need it, than of course prevent the two applications do not use the same memory address at a time (which can cause crash / collision between the two applications)
How to put address DOS memory ????
Source :
www.wikipedia.com
DOS put address memory with a way which is called the Segmentation (segmentation). In segmentation, the memory address space will be divided into several parts called segments. Put address to a location that is required, a program must determine the absolute address (absolute address) with the format xxxx: yyyy where xxxx is the segment address and yyyy is the address offset (offset is the address to the location of the segment that starts from the beginning of the segment). Both numbers are represented in hexadecimal numbers. Absolute value of the address can be calculated using the calculation is simple: to do with promotion to the number 16 (because the base is used 16/heksadesimal basis) of the segment and offset address menjumlahkannya with. Doing promotion address segments can easily be done, namely by adding the number 0 (zero) on the side of the segment number, so that was only four-digit number will be worth five digits. Results from this promotion are added to the offset address, and be an absolute memory address.
Because in real mode, the computer memory is only accessible to only 1 MB, the address segment is created in such a way. DOS akan share 1 MB of address to the 16 segments in size 65536 bytes (64k), which are given addresses from 0x0000 to 0x10000. Conventional memory addressed by DOS at the address 0x0000 to 0xA000 segment (10 segments); Upper DOS memory addressed by the address segment 0xA000 to 0x10000 (6 segments). Some segments in the upper memory allocated for some purposes (but not necessarily so), ie the segment 0xA000 and is provided for Video 0xB000 Memory; 0xC000 segment 0xD000 and allocated to a disk (such as SCSI) card and some other; 0xE000 and temporary segments allocated 0xF000 for the ROM BIOS. The allocation of segments in the upper memory is only a general guide, and does not apply in every case.
Because in real mode, the computer memory is only accessible to only 1 MB, the address segment is created in such a way. DOS akan share 1 MB of address to the 16 segments in size 65536 bytes (64k), which are given addresses from 0x0000 to 0x10000. Conventional memory addressed by DOS at the address 0x0000 to 0xA000 segment (10 segments); Upper DOS memory addressed by the address segment 0xA000 to 0x10000 (6 segments). Some segments in the upper memory allocated for some purposes (but not necessarily so), ie the segment 0xA000 and is provided for Video 0xB000 Memory; 0xC000 segment 0xD000 and allocated to a disk (such as SCSI) card and some other; 0xE000 and temporary segments allocated 0xF000 for the ROM BIOS. The allocation of segments in the upper memory is only a general guide, and does not apply in every case.
Source :
www.wikipedia.com