美文网首页
系统软件的内存管理。

系统软件的内存管理。

作者: helloKimmy | 来源:发表于2018-06-26 21:11 被阅读0次

从内存管理这个话题产生出来,所有的程序员就都对此非常感兴趣,而且觉得很神秘。

最早的计算机,一直到IBM发明的卡片输入和纸带输入计算机,行业中还没有内存这个概念,所以也就没有内存管理这个需求。后来发明了内存芯片,那时已经接近八十年代了。当时流行的计算机语言是C语言和Fortran语言,主要是在大型机上运行。此外还有Apple II,运行自己开发的Basic语言。

当时,内存分为存放系统代码的固化内存和用户使用的动态内存,内存管理只与动态内存有关。当时的内存管理需要系统管理员给分配内存容量和运行权限,分配后由系统按照用户的操作使用内存,也就是说、用户是无权知道内存有关的任何细节的。而Apple II 则提供了监控指令和汇编伪指令,可以使用户直接使用和操作内存系统。

在早初的时候,C语言提供了变量声明而且还提供了为指针分配内存的伪指令,Fortran语言则支持变量声明和不太好用的数据交换区,来使用内存。二者共同的特点是,用户可以使用内存、却不知道具体的细节。所以,除了汇编语言,所有的程序开发环境或者语言、都对程序员隐藏了与内存有关的细节。

至于内存有关的话题是如何引起了广泛的关注的?应该说,是与微软有关的。

PC 的升级使用户拥有了使用大量内存的可能,但是大量内存的管理成了新的问题。有专业公司发现,Dos系统对内存的分配和管理是极不负责的:所有运行程序被装入时被分配占用64K内存,之后装入的程序、被安装在前一程序实际占用内存的尾部紧邻的整位地址。于是,他们就按照自己想好的出错模型、编制代码,设法证明这一设计缺陷。但奇怪的是,Dos系统并没有崩溃或者发生异常。不过,人们已经知道“DOS系统是不够安全的系统”了。

之后,微软进入了Windows时代,但是从Dos时代产生的不安全感、并没有解除,反而因为其新推出的开发工具Windows API的复杂性、而直接进入了程序员的工作体验。与之相关的就是内存泄漏与堆崩溃。所谓内存泄漏,就是一种代码缺陷:程序声明的内存占用、在程序被卸载后、还留存在系统中。可能产生内存泄漏的原因:对C语言来说,一般与静态变量或者指针分配后忘记收回有关;对Windows 开发来说,大多与使用资源后没有释放有关。至于堆崩溃,主要是指:发生内存泄漏后、系统没有发现,在短时间内发生积累,占用了系统的内存资源、使系统没有内存可用,这种情况。当然,堆崩溃这种情况在Windows系统运行时会被遇到,但通常只是局部问题(运行中的程序被系统关闭),很少会造成系统死机。于是,对Windows 系统的不信任感、因此被加强了。

再然后,为了改善和减少、内存泄漏和堆崩溃的发生,垃圾收集技术应运而生。内建了垃圾收集机制的Java 语言受到了广泛关注和一致好评,虽然这种服务过去一直由系统提供。

严格的来讲,内存管理相关的技术、对于程序员来说,只是个知识性的问题;系统永远不可能提供相关的技术手段、来让程序员自主操作或者管理内存系统。

全文完。

相关文章

  • 系统软件的内存管理。

    从内存管理这个话题产生出来,所有的程序员就都对此非常感兴趣,而且觉得很神秘。 最早的计算机,一直到IBM发明的卡片...

  • iOS内存管理详解

    目录 block内存管理 autorelease内存管理 weak对象内存管理 NSString内存管理 new、...

  • JavaScript —— 内存管理及垃圾回收

    目录 JavaScript内存管理内存为什么需要管理?内存管理概念JavaScript中的内存管理JavaScri...

  • 3. 内存管理

    内存管理 内存管理包含: 物理内存管理; 虚拟内存管理; 两者的映射 除了内存管理模块, 其他都使用虚拟地址(包括...

  • 第10章 内存管理和文件操作

    1 内存管理 1.1 内存管理基础 标准内存管理函数堆管理函数虚拟内存管理函数内存映射文件函数 GlobalMem...

  • 东云会员管理系统有哪些功能可以顾客经营加速升级?

    东云会员管理系统软件是一款专注于顾客经营的会员营销与管理的系统软件,在顾客经营及会员营销都有着非常高的知名度,是中...

  • 操作系统之内存管理

    内存管理 包括内存管理和虚拟内存管理 内存管理包括内存管理概念、交换与覆盖、连续分配管理方式和非连续分配管理方式(...

  • jvm 基础第一节: jvm数据区

    程序内存管理分为手动内存管理和自动内存管理, 而java属于自动内存管理,因此jvm的职能之一就是程序内存管理 j...

  • 内存管理

    内存管理的重要性。 不进行内存管理和错误的内存管理会造成以下问题。 内存泄露 悬挂指针 OC内存模型 内存管理是通...

  • OC - OC的内存管理机制

    导读 一、为什么要进行内存管理 二、内存管理机制 三、内存管理原则 四、MRC手动内存管理 五、ARC自动内存管理...

网友评论

      本文标题:系统软件的内存管理。

      本文链接:https://www.haomeiwen.com/subject/xixvyftx.html