如果你的程序因太大(超过640KB)而无法在DOS下运行,有两种办法可为该程序提供更多的内存。一种办法是使用覆盖管理程序(overlay manager)。覆盖管理程序用来管理程序的模块,并根据需要把它们从磁盘中读入内存或从内存中删去。这样,即使你的程序有几兆字节那么大,仍然可以在 只有640KB可用内存的计算机上运行。一些高级的覆盖管理程序允许你对需要同时读入和删除的模块进行“编组”,这有助于你通过精心调整程序来改善它的性 能。其它一些稍差的覆盖管理程序不具备这种功能,因此使用它们时你无法通过编组方式去精心调整覆盖模块。

另一种获得更多的可用内存的办法是使用DOS扩展程序(DOS
extender),DOS扩展程序是一种特殊的应用程序,它通过使用386,486或更新机型的保护模式,按一个平面地址空间的方式来存取多达数兆字节
的内存。当你的程序和DOS扩展程序连接时,DOS扩展程序的代码将成为该程序的启动代码的一部分。当你的程序被执行时,DOS扩展程序将被装入,并且将
掌握程序的控制权。所有的内存分配调用都要通过DOS扩展程序来进行,这样就跳过了DOS,而由DOS扩展程序来分配超过640KB的内存。

遗憾的是,DOS扩展程序也有一些明显的缺点,其中之一就是,在你发行你的程序时,大多数DOS扩展程序要求你交纳运行版税。这可能非常昂贵,特别是在你
有很多用户时。也有少数编译程序带有免收版税的DOS扩展程序,但这只不过是一种例外。使用DOS扩展程序的另一个缺点是它通常要求你通过修改源代码而不
是通过DOS调用来使用其应用编程接口(API)。

覆盖管理程序一般不要求运行费用,因此它具有较高的性能价格比,并且比DOS扩展程序更便宜。此外,在使用覆盖管理程序时,一般不需要修改源代码,在大多数情况下,使用覆盖管理程序对程序来说是透明的。

如果程序太大而不能在DOS下运行,怎样才能使它在DOS下运行呢?的更多相关文章

  1. jvm内存快照dump文件太大,怎么分析

    1.场景 通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出. 对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策. 这时候怎么办 ...

  2. 35岁Android程序员被阿里辞退,生活压力太大痛哭,中年危机如何自救?

    多数人都喜欢安逸的生活,尤其是随着年龄的增长,很多人都希望工作和生活趋于稳定,不愿意再让生活有很大的变动.可是,当达到一定的年龄时,危机还是存在的. 之前有一位阿里员工在脉脉上,晒出了自己被辞退的经历 ...

  3. Unity3D占用内存太大的解决方法

    原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大 ...

  4. apache日志文件太大的问题

    apache日志文件太大的问题 处理Apache日志的两种方法 rotatelogs 是 Apache 2.2 中自带的管道日志程序 rotatelogs [ -l ] logfile [ rotat ...

  5. DB太大?一键帮你收缩所有DB文件大小(Shrink Files for All Databases in SQL Server)

    本文介绍一个简单的SQL脚本,实现收缩整个Microsoft SQL Server实例所有非系统DB文件大小的功能. 作为一个与SQL天天打交道的程序猿,经常会遇到DB文件太大,把空间占满的情况: 而 ...

  6. 解决持久化数据太大,单个节点的硬盘无法存储的问题;解决运算量太大,单个节点的内存、CPU无法处理的问题

    需要学习的技术很多,要自学新知识也不是一件容易的事,选择一个自己比较感兴趣的会是一个比较好的开端,于是,打算学一学分布式系统. 带着问题,有目的的学习,先了解整体架构,在深入感兴趣的细节,这是我的计划 ...

  7. (转)Unity3D占用内存太大的解决方法

    自:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大.  ...

  8. Mysql History list length 值太大引起的问题

    1. 环境 Mysql 主从 Mysql版本:5.1.49-log 系统:Red Hat Enterprise Linux Server release 5.4  64bit 2. 表面现象 数据库操 ...

  9. Unity3D占用内存太大怎么解决呢?

    最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个 ...

随机推荐

  1. python学习笔记(19)--PTVS的安装

    说明: 1. 折腾了两天eclipse,pydev,好不容易都弄好了,发现不会建工程,建完工程打不开,老是提示工作空间里有隐藏文件什么的,网上查了说是把.project里面的name标签的名字改了就行 ...

  2. ativemq使用教程

    本文转自http://www.cnblogs.com/zhuxiaojie/p/5564187.html 目录:  一:JMQ的两种消息模式 1.1:点对点的消息模式 1.2:订阅模式 二:点对点的实 ...

  3. plot sin 04 坐标轴居中

    plot sin 04 坐标轴居中 code #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import matpl ...

  4. Extjs 继承Ext.Component自定义组件

    //自定义HTML组件 Ext.define('MyCmp', { extend: 'Ext.Component', renderTpl: [ '<h1 class="title&qu ...

  5. 打开wps的宏设置,提示你可能没有装vba

    打开wps的宏设置,提示你可能没有装vba?? 因为wps个人版没有vba,安装以下软件即可,亲测可行 VBA6.3提取自WPS2012专业增强版.zip   链接: http://pan.baidu ...

  6. windows系统IIS服务安装

    打开控制面板,win8可以使用快捷键win键+X打开列表   打开程序和功能   打开左上角启用或关闭windows功能   打开internet信息服务下拉单   按照下列图中进行对应项勾选 第一个 ...

  7. 内网环境NTP服务及时间同步(CentOS6.x)配置和部署

    目标环境,5台linux centos 6.3, 一台作为NTPD服务与外部公共NTP服务同步时间,同时作为内网的NTPD服务器,其他机器与这台服务做时间同步.  服务器IP 角色   说明 同步方式 ...

  8. 我的开源主页Blog Lite配置指南

    JinHengyu.github.io --- Blog Lite 0.1.1 好看的东西看多了就会不好看, 简单的东西永远不会难看 GitHub Pages 提供静态网站托管服务的厂商还是很多的, ...

  9. 【C++】线程_beginthreadex参数说明

    unsigned long _beginthreadex( void * _Security, //第1个参数:安全属性,NULL为默认安全属性 unsigned _StackSize, //第2个参 ...

  10. 【转】【c++】指针参数是如何传递内存的

    参数策略 如果函数的参数是一个指针,不要指望用该指针去动态申请内存.如下: void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(c ...