Artigo: 95555 - Última revisão: segunda-feira, 12 de Maio de 2003 - Revisão: 2.0 Descrição geral da funcionalidade de gestão de memória no MS-DOS
Nesta páginaSumárioEste artigo contém uma descrição geral da memória expandida como que está em conformidade com a EMS (Expanded Memory Specification) e o memória expandida que esteja em conformidade com a especificação de memória expandida (XMS) é criada e gerida no MS-DOS versões 5.0 e posterior, os controladores de dispositivo Himem.sys e EMM386.exe. Como o MS-DOS é carregado na área de memória alta (HMA, High Memory AREA) e gere blocos de memória superior (UMBs) também são discutidas. NOTA: Antes de ler este artigo, poderá rever as secções sobre gestão de memória, Himem.sys e EMM386.exe na documentação impressa do MS-DOS. Se estiver a utilizar o MS-DOS 6.0, 6.2, 6.21 ou 6.22, consulte a ajuda online. Por exemplo, escreva ajudar emm386.exe na linha de comandos do MS-DOS. Informações contidas neste artigo são organizadas da seguinte forma:
Mais InformaçãoMétodos de atribuição de memória expandida antigo: Interrupção 15 h & VDisk cabeçalhosNo passado, ocorreram duas formas de programas atribuir memória expandida: cima para baixo (utilizando a interrupção 15) e inferior-up (utilizando cabeçalhos VDisk).Interrupção 15 h é um serviço de ROM BIOS que inclui várias extensões original PC ROM BIOS, incluindo os meios para saber a quantidade de RAM (convencional mais expandida) no sistema. Um programa utiliza este serviço para saber a quantidade de memória expandida existe, em seguida, "rotinas" interrupção 15 h e relatórios para outros programas que não existe K <n> menos memória disponível, eficazmente filtrar <n> K de memória de extensao desactivar o início. Ao fazê-lo, o programa atribuiu própria memória expandida da parte superior do agrupamento de memória. Memória inferior mais atribuição funciona procurando um cabeçalho no início da memória de extensao indicando que <n> K de RAM está a ser utilizado. Se um cabeçalho de existir, o programa verifica <n> K mais para outro cabeçalho. Se o cabeçalho de não existir, o programa coloca no respectivo cabeçalho. Estes cabeçalhos são denominados cabeçalhos VDisk porque o utilitário de unidade IBM DOS RAM original (VDISK.SYS) utiliza este método. Uma desvantagem estes métodos é que depois de memória foi atribuída a um programa, anular normalmente não é possível. O XMS foi concebido para atribuir e Desatribuir memória expandida mais fácil para todos os envolvidos. Himem.sys cria memória XMSHimem.sys implementa das XMS excepto a parte umb, Upper Memory Block opcional. Himem.sys versões anteriores à 3.0 são XMS 2.0 compatível e reconhecem 16 MB de RAM; versões 3.0 e posterior (primeiro incluído 3.10 do Windows 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 expandida disponível. A menos que foi carregado com o /INT15 = opção, Himem.sys define atribuir toda a memória expandida disponível para utilização como memória XMS (Repare que a atribuição de todos os memória expandida disponível real 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 rotinas interrupção 15 h. Programas que pretende utilizar memória expandida (que não a HMA) sem utilizar XMS podem fazê-lo até que um programa solicita realmente XMS. Depois de um programa na realidade pede memória XMS, Himem.sys utiliza a respectiva rotina de 15 h interrupção para notificar programas que apenas a quantidade de memória expandida especificada por /INT15 = xxxx, menos a HMA (64 K), está disponível para utilização. Memória disponível através de /INT15 = xxxx é fisicamente acima HMA; XMS gerida RAM se encontra fisicamente acima qualquer /INT15 = xxxx RAM. A20 e a HMAA HMA é definida como FFFF:0010-FFFF:FFFF em sistemas 80286 e versões posteriores que ter RAM física endereçável estes endereços. Esta área pode ser resolvida em modo real (8086 emulação) em sistemas 80286 e versões posteriores de se a linha de endereço XXI (R20) é activada, o que produz 64 16 K bytes da RAM adicional utilizável. Na x 8086 ou um 80 86 com a linha A20 desactivado FFFF:0010 "moldagens volta" e é o mesmo 0000: 0000.Activar esta linha e desactivar é efectuada utilizando a porta de teclado e é dependente do hardware. Himem.sys inclui um número de "A20 processadores" para computadores diferentes. O XMS atribui e retira a atribuição a HMA como um bloco, ou seja, apenas um programa pode utilizá-lo ao mesmo tempo. MS-DOS 5.0 e posterior pode executar na HMA se DOS = alta está no ficheiro Config.sys. DOS = alta pede MS-DOS para executar na HMASe DOS = LOW ou nenhum DOS = comando é no ficheiro Config.sys, MS-DOS e os respectivos dados são inicializados e carregados no seu lugar final em falta de memória antes da DEVICE = e DEVICEHIGH = comandos são processados.Se DOS = alta comando é no ficheiro Config.sys, dados de MS-DOS (que tem de permanecer baixos para compatibilidade) são carregados no respectivo lugar final na memória convencional. Depois de cada controlador de dispositivo é inicializado, é efectuada uma verificação para determinar se um controlador XMS foi instalado. Se for esse o caso e se a HMA estiver disponível, o MS-DOS é movido para a HMA. Se não, MS-DOS continua a verificar após cada DEVICE [alta] = comando e, em seguida, começa a processar a instalação = comandos. Se DOS = alta comandos existe mas MS-DOS não carregada alta (não se foi carregado nenhum controlador XMS ou a HMA não estava disponível), relatórios do MS-DOS "HMA, High Memory AREA não disponíveis/carregamento DOS baixos" e carrega-se na memória convencional acima de todos os controladores de dispositivo instaláveis e/ou programas terminate-e-stay-resident (TSR) carregados com a instalação =. Parte do Command.com transitória permanece na memória convencional se MS-DOS estiver carregado alta ou baixa. A maioria da parte residente de Command.com, quaisquer páginas de código de software e as memórias intermédias disquete (normalmente) também carrega alta se DOS = alta está no ficheiro Config.sys. EMM386.exe [RAM | NOEMS] utiliza XMS para criar EMS e/ou UMBsEMM386.exe é um controlador de dispositivo para sistemas 80386 e superiores com memória XMS. EMM386.exe utiliza memória XMS para criar e gerir a memória EMS e/ou XMS blocos de memória superior (UMBs). Está disponível para programas através de EMS 4.0 EMS interface; UMBs estão disponíveis através da interface XMS. Quando fornecer UMBs, EMM386.exe responde apenas a pedidos para atribuir ou deallocate UMBs; todos os outra memória XMS é gerida pelo Himem.sys.No carregamento, EMM386.exe mostra um relatório da sua actividade. Entre outras coisas, este relatório inclui:
NOTA: EMM386.EXE versões 4.45 e versões posterior fazer não apresentar estas informações durante o arranque a menos que o /verbose mudar são utilizadas. DOS = umb, Upper Memory Block pede MS-DOS para gerir UMBsDOS = umb, Upper Memory Block comando pede MS-DOS atribuir qualquer UMBs disponíveis através de XMS a próprio. MS-DOS, em seguida, disponibiliza UMBs através do respectivos serviços de gestão da memória de 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 utilizadores podem determinar se o MS-DOS tem qualquer UMBs disponíveis utilizando o comando MEM /C. Programas podem utilizar interrupção 21 h, 5803h de função para determinar se existem UMBs. <drive><path><filename>DEVICEHIGH = [<unidade>:] [\ <caminho> \] <nomeficheiro>O DEVICEHIGH = comando pede que o ficheiro de controlador de dispositivo ser carregado num umb, Upper Memory Block MS-DOS se existir um disponível que seja suficientemente grande. Se não houver, o controlador é carregado na memória convencional e executado; sem erros é apresentado pelo MS-DOS.LH (LOADHIGH)O comando LH (ou LOADHIGH) indica o MS-DOS para carregar o ficheiro de programa num umb, Upper Memory Block MS-DOS caso exista alguma disponível é suficientemente grande. Se não existir, o programa é carregado na memória convencional e executado; sem erros é apresentado pelo MS-DOS.DEVICEHIGH E LOADHIGH COM/L: E /SSe estiver a utilizar o MS-DOS versão 6.0, 6.2, 6.21 ou 6.22, pode utilizar os parâmetros /L e /S para controlar as regiões de memória no qual um controlador de dispositivo ou programa é carregado.DEVICEHIGH [[/L:region1[,minsize1][;region2[,minssize2] [/S]]= O parâmetro /S diminui o umb, Upper Memory Block para o tamanho mínimo (minsize) enquanto o programa está a carregar. Este parâmetro só pode ser utilizado em conjunto com o parâmetro /L: e afecta apenas UMBs para os quais foi especificado um tamanho mínimo. Segue-se um exemplo: LOADHIGH /L:1,12194;2,34213 /S C:\PROGDIR\PROGRAM.EXE NOTA: em vez de tentar configurar manualmente a memória regiões programas carregar para MS-DOS 6.0, 6.2, 6.21 e 6.22 utilizadores são incentivados a executar o programa de optimização de memória MemMaker. Para executar MemMaker, escreva memmaker na linha de comandos do MS-DOS. É gerir relatórios MEM na memória MS-DOSSe o MS-DOS está a gerir UMBs (DOS = umb, Upper Memory Block), MEM /C ou/d MEM inclui UMA no relatório. As áreas não geridas pelo MS-DOS estão identificados como "SYSTEM" neste relatório. Para obter informações de UMB, Upper Memory Block, escreva mem /c | mais na linha de comandos do MS-DOS. (Repare que se estiver a utilizar MS-DOS 6.0 ou posterior, pode escrever mem /c /p para ver o relatório de memória um ecrã a um tempo.)Se MS-DOS não está a gerir os UMBs, MEM não regista numa. Outros Gestores de UMB, Upper Memory Block normalmente têm algumas meios para determinar o que está a carregar alta. Consulte a documentação para o Gestor de UMB, Upper Memory Block para obter detalhes. MEM também inclui informações sobre memória expandida (determinado utilizando a interface de cabeçalho de 15/VDisk interrupção), XMS (comunicado através o XMS 2.0 ou 3.0 interface) e o EMS (comunicado através da interface do EMS 3.2 ou 4.0) para sua comodidade. Como utiliza o MS-DOS expandido ou memória expandidaComo um todo, o MS-DOS não utiliza a memória expandida ou expandida para utilização geral ou carregamento de aplicações.No entanto, alguns utilitários do MS-DOS e controladores utilizam memória expandida ou expandida para áreas de dados. Além disso, MS-DOS 5.0 e versões posteriores carregar a maior parte do MS-DOS kernel interpretador de comandos, páginas de código (se utilizado) e disco memórias intermédias para a HMA, que é o primeiro 64 K de memória expandida. A tabela abaixo destaques os utilitários do MS-DOS utilizam memória expandida sem um controlador de memória expandida, alargado memória através de um controlador XMS ou expandido memória através de um controlador Lotus-Intel-Microsoft (LIM) EMS. Estes utilitários carregados na memória convencional, mas utilizam memória nonconventional para áreas de dados. Uma vez que versões diferentes de muitos utilitários fornecidos com o MS-DOS também fornecidos com o Microsoft Windows, as versões do Windows estão incluídas nesta tabela. A Microsoft recomenda que não a misturar versões destes controladores estão incluídos no 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.
memórias intermédias e /x ems Carregar na memória EMS memórias intermédias de disco não é suportada no MS-DOS 5.0 e versões posteriores. Estas versões suportam a carregar o kernel do MS-DOS e, se existir room, memórias intermédias do disco para a HMA. MS-DOS acede a HMA através do protocolo XMS. Referências disponíveisA especificação LIM EMS oficial, "Lotus/Intel/Microsoft Expanded memória especificação versão 4.0", está disponível Intel chamando (800) 538-3373.A especificação de XMS oficial, "Extended Memory especificação versão 3.0," está disponível gratuitamente a partir do Microsoft. Para obter a especificação, consulte a secção "Instruções de transferência" abaixo. A oficial MS-DOS interface documentação do programa, "Do programador do Microsoft MS-DOS Reference", está disponível a Microsoft Press (por chamada [800] 677-7377) ou livros de pinguim internacionalmente a. 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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 de Artigos |






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



Voltar ao topo