ID do artigo: 95555 - Última revisão: segunda-feira, 12 de maio de 2003 - Revisão: 2.0 Visão geral da funcionalidade de gerenciamento de memória no MS-DOS
Nesta páginaSumárioEste artigo contém uma visão geral de memória expandida como que está de acordo com para a memória Specification (EMS) e memória estendida está de acordo com a especificação de memória estendida (XMS) é criada e gerenciada em versões do MS-DOS 5.0 e posteriores pelos drivers de dispositivo Himem.sys e EMM386.exe. Como o MS-DOS é carregado na área de memória alta (HMA) e gerencia blocos de memória superior (UMBs) também são discutidos. Observação: Antes de ler este artigo, convém que você analise as seções sobre gerenciamento de memória, Himem.sys e EMM386.exe em sua documentação impressa do MS-DOS. Se você estiver usando o MS-DOS 6.0, 6.2, 6.21 ou 6.22, consulte a Ajuda on-line. Por exemplo, digite Ajuda emm386.exe no prompt de comando do MS-DOS. Informações neste artigo estão organizadas da seguinte maneira:
Mais InformaçõesMétodos de alocação de memória estendida antigo: Interrupção 15 h & VDisk cabeçalhosNo passado, houve duas maneiras para programas alocar memória estendida: inferior-up (usando cabeçalhos VDisk) e de cima para baixo (usando a interrupção 15).Interrupção 15 h é um serviço de ROM BIOS que inclui várias extensões para o BIOS ROM PC original, incluindo os meios para descobrir quanta memória RAM (convencional mais estendidos) no sistema. Um programa usa esse serviço para descobrir quanta memória estendida existe, em seguida, "ganchos" interrupção 15 h e relatórios para outros programas que não há K <n> menos memória disponível, efetivamente slicing <n> K de memória estendida desativado na parte superior. Fazendo isso, o programa alocou sua própria memória estendida da parte superior do pool de memória. Funciona de alocação de memória de baixo para cima verificando um cabeçalho no início da memória estendida informando que <n> K de RAM está em uso. Se um cabeçalho estiver lá, o programa verifica <n> K ainda mais para o outro cabeçalho. Se nenhum cabeçalho existir, o programa colocará em seu próprio cabeçalho. Esses cabeçalhos são chamados de cabeçalhos VDisk porque o utilitário de unidade IBM DOS RAM original (VDISK.SYS) utiliza esse método. Uma desvantagem para esses métodos é que depois de memória foi alocada para um programa, desalocando ele geralmente não é possível. O XMS foi criado para tornar alocando e desalocando memória estendida mais fácil para todos os envolvidos. HIMEM.sys cria memória XMSHIMEM.sys implementa todos os XMS, exceto a parte UMB opcional. HIMEM.sys versões anteriores que 3.0 são XMS 2.0 compatível com e reconhecem até 16 MB de RAM; versões 3.0 e posterior (primeiro incluído no Windows 3.10 e MS-DOS 6.0) são XMS 3.0 compatível e reconhecem até 4 GB.No carregamento, Himem.sys determina a quantidade de memória estendida disponível. A menos que ele foi carregado com o /INT15 = opção, Himem.sys define alocar toda a memória estendida disponível para uso como memória XMS (Observe a alocação real de toda a memória estendida disponível não ocorre até que um programa faz uma função XMS chamada). HIMEM.sys reserva-se a HMA com um cabeçalho VDisk e ganchos interrupção 15 h. Programas que deseja usar memória estendida (diferente de HMA) sem usar XMS podem fazer isso até que um programa realmente solicita XMS. Depois de um programa realmente pede memória XMS, Himem.sys usa o cabo de 15 h interrupção para notificar programas que somente a quantidade de memória estendida especificada pelo /INT15 = xxxx, menos HMA (64 K), está disponível para uso. Memória disponível por meio de /INT15 = xxxx está fisicamente localizado acima HMA; XMS gerenciados RAM está fisicamente localizado acima qualquer /INT15 = xxxx RAM. A20 e a HMAA HMA é definida como FFFF:0010-FFFF:FFFF em sistemas 80286 e superiores que tenham endereçável de RAM física nesses endereços. Essa área pode ser endereçada em modo real (8086 emulação) nos sistemas 80286 e superiores se a linha de endereço 21 (A20) estiver ativada, que produz 64 bytes de 16 K de RAM adicional pode ser usado. Em um 8086 ou um 80 x 86 com a linha A20 desabilitado, FFFF:0010 "disposição ao redor" e o mesmo 0000: 0000.Esta linha de ativando e desativando é realizada usando a porta de teclado e é dependente do hardware. HIMEM.sys inclui um número de "A20 manipuladores" para máquinas diferentes. O XMS aloca e Desaloca HMA como um bloco, ou seja, somente um programa pode usá-lo uma vez. MS-DOS 5.0 e posterior pode executar no HMA se DOS = alta está no arquivo config.sys. DOS = alta solicita MS-DOS para executar na HMASe DOS = LOW ou não DOS = comando é no arquivo config.sys, MS-DOS e seus dados são inicializados e carregados em seu lugar final de baixa memória antes do DEVICE = e DEVICEHIGH = comandos são processados.Se o MS-DOS = comando alta é no arquivo config.sys, dados de MS-DOS (que devem permanecer baixos para compatibilidade) são carregados em seu lugar final na memória convencional. Depois de cada driver de dispositivo é inicializado, uma verificação é feita para determinar se um driver XMS tiver sido instalado. Em caso afirmativo, e se a HMA estiver disponível, MS-DOS é movidos na HMA. Se não, o MS-DOS mantém verificando após cada DEVICE [alta] = comando e começa a instalação de processamento = comandos. Se DOS = alta comando existe mas MS-DOS não carregada alta (se nenhum driver XMS foi carregado ou não estava disponível a HMA), relatórios do MS-DOS "HMA não disponíveis/carregamento DOS baixos" e carrega próprio na memória convencional acima de todos os programas terminate-e-stay-resident (TSR) carregados com a instalação e/ou os drivers de dispositivo instalável =. Parte do Command.com temporário permanece na memória convencional se MS-DOS estiver carregado alta ou baixa. A maioria da parte residente Command.com, as páginas de código de software e os buffers de disco (geralmente) também carrega alta se DOS = alta está no arquivo config.sys. EMM386.exe [RAM | NOEMS] usa XMS criar UMBs e/ou EMSEMM386.exe é um driver de dispositivo para sistemas 80386 ou superiores com memória XMS. EMM386.exe usa memória XMS para criar e gerenciar memória EMS e/ou XMS blocos de memória superior (UMBs). EMS está disponível para programas por meio de EMS 4.0 interface; UMBs estão disponíveis por meio da interface XMS. Ao fornecer UMBs, EMM386.exe responde somente as solicitações para alocar ou desalocar UMBs; todos os outra memória XMS é gerenciada pelo Himem.sys.No carregamento, EMM386.exe mostra um relatório de sua atividade. Entre outras coisas, este relatório inclui:
Observação: EMM386.EXE versões 4.45 e posterior não exibir essas informações durante a inicialização, a menos que o /verbose alternar são usadas. DOS = UMB solicita MS-DOS para gerenciar UMBsDOS = UMB comando solicita MS-DOS para alocar qualquer UMBs disponíveis através de XMS a mesmo. MS-DOS, em seguida, torna UMBs disponíveis por meio de seus próprios serviços de gerenciamento de memória em interrupção 21 h, incluindo:Function Description Version ------------------------------------------------------- 48h Allocate memory 2.0 49h Free allocated memory 2.0 4Ah Set memory block size 2.0 5800h Get allocation strategy 2.0 5801h Set allocation strategy 2.0 5802h Get upper-memory link status 5.0 5803h Set upper-memory link status 5.0 Os usuários podem determinar se o MS-DOS tem qualquer UMBs disponíveis usando o comando MEM /C. Programas podem usar interrupção 21 h, 5803h de função para determinar se existem UMBs. <drive><path><filename>DEVICEHIGH = [<unidade>:] [\ <caminho> \] <nome_do_arquivo>O DEVICEHIGH = comando solicita que o arquivo de driver de dispositivo ser carregado em um UMB MS-DOS se houver um disponível que seja grande o suficiente. Se não houver, o driver é carregado na memória convencional e executado; nenhum erro é exibido pelo MS-DOS.LH (LOADHIGH)O comando LH (ou LOADHIGH) informa ao MS-DOS para carregar o arquivo de programa em um UMB MS-DOS se houver um disponível é grande o suficiente. Se não houver, o programa está carregado na memória convencional e executado; nenhum erro é exibido pelo MS-DOS.DEVICEHIGH E LOADHIGH COM/L: E /SSe você estiver usando o MS-DOS versão 6.0, 6.2, 6.21 ou 6.22, você pode usar as opções /S e /L para controlar as regiões de memória em que um programa ou driver de dispositivo é carregado.DEVICEHIGH [[/L:region1[,minsize1][;region2[,minssize2] [/S]]= A opção /S Encolhe o UMB para o tamanho mínimo (minsize) enquanto o programa está carregando. Essa opção só pode ser usada em conjunto com a opção /L: e afeta somente UMBs para o qual um tamanho mínimo foi especificado. A seguir está um exemplo: LOADHIGH /L:1,12194;2,34213 /S C:\PROGDIR\PROGRAM.EXE Observação: melhor que tentar configurar manualmente a memória regiões programas carrega no, MS-DOS 6.0, 6.2, 6.21 e 6.22 usuários são incentivados a executar o programa de otimização de memória MemMaker. Para executar MemMaker, digite memmaker no prompt de comando do MS-DOS. Relatórios MEM na memória MS-DOS está gerenciandoSe o MS-DOS está gerenciando UMBs (DOS = UMB), MEM /C ou MEM /D inclui UMA no seu relatório. Quaisquer áreas não sendo gerenciadas pelo MS-DOS são chamadas de "SYSTEM" neste relatório. Para informações UMB, digite mem /c | mais no prompt de comando do MS-DOS. (Observe que se você estiver usando o MS-DOS 6.0 ou posterior, você pode digitar mem /c /p para exibir a tela de um relatório de memória em um tempo).Se o MS-DOS não está gerenciando as UMBs, MEM não informa em UMA. Outros Gerentes UMB normalmente têm algum meio para determinar o que está carregando alta. Verifique a documentação do seu gerente UMB para obter detalhes. MEM também inclui informações sobre o EMS (relatado por meio da interface EMS 3.2 ou 4.0) para sua conveniência, memória estendida (determinado usando a interface de 15/VDisk cabeçalho interrupção) e XMS (relatado por meio de 2.0 XMS ou interface 3.0). Como o MS-DOS usa adicionais ou memória expandidaComo um todo, o MS-DOS não usa memória estendida ou expandida para uso geral ou para carregar aplicativos.No entanto, alguns utilitários do MS-DOS e drivers usam memória estendida ou expandida para áreas de dados. Além disso, as versões 5.0 e posteriores do MS-DOS carregar a maioria do kernel do MS-DOS, interpretador de comandos, páginas de código (se usado) e disco buffers na HMA, que é o primeiros 64 K de memória estendida. A tabela abaixo descreve os utilitários do MS-DOS usam a memória estendida sem um driver de memória estendida, memória por meio de um driver XMS estendida ou expandida memória por meio de um driver do Lotus-Intel-Microsoft (LIM) EMS. Esses utilitários carregar na memória convencional mas usam a memória não convencional para áreas de dados. Porque versões diferentes de muitos utilitários fornecidos com o MS-DOS também fornecido com o Microsoft Windows, as versões do Windows estão incluídas nesta tabela. A Microsoft recomenda que você não misture versões desses drivers incluídos com produtos diferentes.
Non-XMS
Conv. Extended XMS LIM 3.2/4.0 EMS
------------------------------------------
RAMDRIVE.SYS 3.3 Yes Yes No Yes
RAMDRIVE.SYS 4.x Yes Yes No Yes
RAMDRIVE.SYS Win30 Yes No Yes Yes
RAMDRIVE.SYS 5.x Yes No Yes Yes
RAMDRIVE.SYS Win31 Yes No Yes Yes
RAMDRIVE.SYS 6.0-6.22 Yes No Yes Yes
SMARTDRV.SYS 4.x No Yes No Yes
SMARTDRV.SYS Win30 No No Yes Yes
SMARTDRV.SYS 5.x No No Yes Yes
SMARTDRV.EXE All No No Yes No
HIMEM.SYS (1) All No Yes Provider No
EMM386.SYS(2) 4.x No Yes No Provider
EMM386.SYS(3) Win30 No No Yes Provider
EMM386.EXE(3) All No No Yes(4) Provider
(1) Uses extended memory to provide XMS memory
(2) Uses extended memory to provide EMS memory
(3) Uses XMS memory to emulate EMS memory
(4) MS-DOS 5.0 and later EMM386.EXE can also be configured to
provide UMBs according to the XMS. This causes EMM386.EXE
to be a provider of the UMB portion of the XMS.
buffers, ems e /x Carregar os buffers de disco na memória EMS não tem suporte em versões do MS-DOS 5.0 e posteriores. Essas versões dão suporte para carregar o kernel do MS-DOS e, se houver espaço, os buffers de disco na HMA. MS-DOS acessa a HMA por meio do protocolo XMS. Referências disponíveisA especificação LIM EMS oficial, "Lotus/Intel/Microsoft Expanded Memory especificação versão 4.0", está disponível no Intel ligando para (800) 538-3373.A especificação de XMS oficial, "Extended Memory Specification versão 3.0", está disponível gratuitamente da Microsoft. Para obter a especificação, consulte a seção "Instruções para download" abaixo. A MS-DOS programa interface documentação oficial, "Referência do programador do Microsoft MS-DOS", está disponível no Microsoft Press (por chamada [800] 677-7377) ou internacionalmente até livros de pingüim. A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 95555
(http://support.microsoft.com/kb/95555/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções deste artigo |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Voltar para o início