DOS Protected Mode Interface (DPMI)

DPMI (DOS Protected Mode Interface) é uma interface de programa que permite que um programa aplicativo rodando sob o Sistema Operacional em Disco (DOS) tire vantagem de um extensor DOS , que permite que o programa endereçe uma gama maior de memória de acesso aleatório ( RAM ) do que os 640 kilobytes aos quais os programas de PC estão basicamente restritos. Para usar o extensor, o programa deve estar em "modo protegido", um modo que assegura que os pedidos de programa não sejam permitidos para acessar certas porções de memória "protegida". (Programas rodando no "modo real" alternativo têm acesso a todas as porções de memória, incluindo dados do sistema.)

O primeiro sistema operacional amplamente distribuído para computadores pessoais, o DOS foi projetado para rodar no microprocessador Intel 8088 . O 8088 forneceu um megabyte de RAM que poderia ser endereçado por uma instrução de programa (ou seja, o espaço total de armazenamento para armazenar e obter dados entre o microprocessador e a RAM foi de um milhão de bytes). Como determinado espaço tinha que ser reservado para uso "sistema" (mantendo o controle das aplicações, status do sistema, etc.), apenas 640 kilobytes estavam disponíveis para um programa de aplicação. Esses bytes eram contíguos no armazenamento (ou seja, continuamente adjacentes uns aos outros e não divididos em diferentes partes da RAM) e os programas de aplicação eram necessários para executar e manter seus dados dentro desse espaço de 640 kilobytes. Na verdade, uma instrução que violasse o espaço de 640 kilobytes não seria executada (protegendo assim o espaço do sistema na RAM). Um programa que funcionasse em "modo real" poderia endereçar todo o 1 megabyte de RAM incluindo dados do sistema, mas com o risco de escrever dados para o lugar errado.

Como novos microprocessadores como o 80286 seguiram o 8088, o DOS continuou a preservar a limitação de endereçamento de 640 kilobytes para que programas de aplicação recém-escritos pudessem continuar a funcionar tanto nos microprocessadores antigos quanto nos novos. O programa extensor DOS permitiu que programas de aplicação escritos para DOS fossem liberados da restrição de 640K pela inserção de código de gerenciamento de memória na aplicação. A Microsoft desenvolveu o DPMI para uso no Windows 3.0 (que era uma aplicação DOS) e mais tarde deu o padrão para uma organização da indústria, o Comitê DPMI.

Os computadores pessoais de hoje, usando microprocessadores que sucederam o 8088, normalmente contêm oito ou mais megabytes de RAM. Os sistemas operacionais de hoje (incluindo as últimas versões do DOS) vêm com gerenciamento de memória estendida que liberta o programador das restrições originais de endereçamento.

Além da interface padrão DPMI, existem duas outras interfaces padrão de gerenciamento de memória estendida. A especificação de memória estendida (XMS) é um programa adicionado às versões mais recentes do DOS e do Windows quando o sistema é carregado. É chamado de HIMEM.SYS. Outro gerenciador de memória estendida é o Virtual Control Program Interface (VCPI).