基于Solaris操作系统内存资源泄漏与预防的研究.pdfVIP

基于Solaris操作系统内存资源泄漏与预防的研究.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第23卷第4期 齐齐哈尔大学学报 V01.23.Nf— JoumaIof mdv0007 2007年7月 OiqiharUn~e倍;ty 崔超 (齐齐哈尔大学应用技术学院,黑龙江齐齐哈尔161006) 摘要:内存泄漏是多用户系统开发应用过程中经常会j皿到的问题.用户应用长时间的运千j擞易产生内存泄漏,r写 用大量系统内存资源.降低资源利用率.直接导致应用程序运行不稳定.严重时甚至影响到操作系统的正常运行, 导致系统瘫痪。在参考sun公司相关英文技术文档基础上。并结合uND【实践,本文探讨了鲥adR平台内存泄漏 产生的原因和对直的BuG定位,并提出了解决方案。 美键词:内存;内存分配和释放;内存泄漏;系统 中图分类号:1∞16.s9 文献标识码:A 文章编号:1007—984x(煳04—0024—05 操作系统用户内存是计算机编程中必须科学使用的宝贵系统资源。内存管理是在程序目标运行中,在 操作系统干预下完成的资源分配。用户内存的申请是由相关的系统调用或指令运行实现的,内存科学管理 在程序运行过程中起着非常重要的作用。 在S01aris平台上的实际编程中,从作业角度正确理解内存管理机制的能力与局限性至关重要,当作业 运行完毕不再需要所分配的内存时,进程便会释放内存区域。存储释放实际上是解除逻辑地址空问与物理 地址空间的对应联系,并释放物理空间。存储释放程序将回收的内存区域重新设定为自南区,并将其安排 进入自由区队列。进入自由区队列的具体位置也必须依据分配算法。 l问题的提出 面对内存泄漏,就其产生的机理来讲,它是用户软件程序设计和编制的一种根本缺陷。在比较大的项 目开发过程中,必须柏先尘确定的设计文档,包括设计目标、实现手段和系统排错等模块。南于许多应用 系统的开发大都是在任务重、周期短的情况下完成的,致使产品冗余码多、指令效牢抵.过多的原子操作 使系统中断机制功能下降,在主调甬数和子模块的实现过程中,全局变量、局部变量定义和使用的逻辑共 享缺乏总体设计,有的甚至在目标系统链接中只是模块节点的简单链接,没有从用户整体需求的方向上科 学地整合系统,割裂了系统应用功能模块的有机联系,直接导致了用户系统的内存泄漏。 正常情况下,用户进程使用完这块内存后,应通过内存管理的有关指令释放内存块。主动通知操作系 统回收这些堆内存以便重用。如果由于用户应用设计上的缺陷导致在某些情况下程序没有主动地释放相应 内存并通报操作系统,丽后应用又失去了对这块内存的管理,则该堆内的相应存储块将成为既不受程序控 制,又不能被系统回收重用的“游离”内存块,形成内存泄漏。 2内存泄漏形成机理 序的多进程中,且泄漏速度很快,在单用户下的单进程模式下无此问题。 2.1源程序代码引起的内存泄漏 2.1.1变量内容交换时的泄漏 例l: char·s伍“gl=malloc(120); void缸ncti∞l() char+B血H92=tn且H0c(220); 收稿日埘:2007—∞一10 作者简介:栏超(196i-】.男,黑龙江齐齐喻尔市人,削教授.高级工程师.学士.主要从事计算机直JfJ研究,电子倍箱cv63@163脚。 万方数据 万方数据 ·26· 齐齐哈尔大学学报 2007年 如果在编译时能确定目标程序运行所需全部数据空间的大小,编译时则确定目标程序运行时全部数据 。配分储存态静为略策配分种这称,置位储存象对据数个每定确并,问空 3.2动态存储分配 技术。因为对于这种程序在编译时无法知道它在运行时需要多大的存储空间,它所需要的数据空问的太小

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档