首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 125 毫秒
1.
针对μC/OS-Ⅱ的内存管理策略中内存分配不是总能得到满足的情况,分析其存在的问题,通过将已建立的内存分区用链表链接,对其进行了改进。实验结果表明改进后的方案增加了内存分配的可靠性。同时对内存管理接口进行了改善,降低了内存分配的出错率,使其更加友好,更方便地为应用程序服务。  相似文献   

2.
对嵌入式实时操作系统RTEMS的两种存储管理方法——分区和区域进行了分析和研究。分区管理是将内存划分为大小相等的缓存块,以队列的形成将空闲缓存块组织在一起,并以缓存块为单位动态地分配。区域管理以可变大小的内存段进行分配,用双向链表来管理空闲内存段,采用首次适应算法对内存进行分配。由于区域管理算法复杂,因此,本文提出带辅助位示图的位示图存储管理方案,使内存分配更加简单,同时也解决了空闲区合并问题,提高了RTEMS的可靠性和实时性。  相似文献   

3.
提出一种对动态等尺寸内存管理算法的改进方法。改进的算法取消了用链表连接空闲内存块的做法,采用内存分配表的办法,从而实现了将控制信息从用户的内存块中分离,使内存管理更加安全可靠。  相似文献   

4.
针对复杂嵌入式系统中的动态内存管理,提出了一种新的方法.将可以使用的动态内存划分成多个内存块组,每组中内存块大小相同,不同组的内存块大小不同.分配动态内存时可以按照需求,使用不同大小的内存块.根据这种新的划分方式,设计了相应的内存块管理链表的数据结构和动态内存的分配、释放算法.并在试验中使用了这种管理方法,给出了该方法和其它方法相比较的试验结果.  相似文献   

5.
阐述Java语言的内存分配与回收机制以及Java实现的链表。  相似文献   

6.
许健  于鸿洋 《电子技术应用》2012,38(11):146-149
对内存池中内存块获取、分配机制、内存块大小、内存释放,以及在多线程环境下的安全处理等细节进行了研究,保证了在多线程环境下能够快速同时采用一种基于数组的链表机制,改进内存池中内存块的查找算法,将其时间复杂度稳定在O(1),避免了传统内存池中请求的线程数目过多时,引发的获取内存块性能下降的问题。同时在内部设置管理线程,动态增加或删除空闲的内存块。实验结果表明,改进后的内存池与传统的内存分配方式相比消耗更小,效率更好。  相似文献   

7.
Nginx设计了简单的内存池进行内存管理来降低开发中对内存资源管理的复杂度。Nginx各进程间使用共享内存的方式共享数据,而对共享内存的内存池进行管理的方法是基于经典的Slab算法,其通过构造小的内存块来避免内存碎片、使用链表方式连接有限的页面来提高分配速率。本文详细介绍Nginx的Slab算法,对其进行总结,并与经典的Linux内核的Slab算法对比。  相似文献   

8.
针对嵌入式实时操作系统MQX(Message Queue e Xecutive)中内存管理不够灵活等问题,提出一种基于哈希索引表和最先匹配策略相结合的自适应内存管理算法,针对不同大小的内存采用不同的内存管理策略。对于小块内存采用哈希索引表组织,实现内存分区池的常数级定位,并且通过双向链表将分区池紧密联系提高内存申请的鲁棒性;对于大块内存采用最先适应策略,减少内部碎片的产生,提高内存的利用率。实验结果表明,改进后的算法在保证MQX原有内存管理算法较高实时性的同时,提高了内存申请的命中率以及内存管理的可靠性。  相似文献   

9.
链表是一种重要的数据结构。它是动态地进行存储分配的一种结构。对于一件不确定的事情而言,用数组必须事先定义其容量,且要足够大,才能存放下所有的事件属性。显然这将会造成内存浪费。链表则没有这种缺点,它根据需要开辟内存单元。  相似文献   

10.
针对链式存储结构中的结点在内存中地址分配问题,主要分析两方面的问题,一是链表中结点的内部成员之间的地址是否连续,是如何分配的;二是结点之间是否连续,是如何分配的。  相似文献   

11.
The two most common approaches to managing shared-access memory-free lists and buddy systems-have significant drawbacks. Free list algorithms have poor memory access characteristics, and buddy systems utilize their space inefficiently. In this paper, we present an alternative approach to parallel-access memory management based on the fast-fits algorithm. A fast-fits memory manager stores free blocks in a tree structure, providing fast access and efficient space use. Since the fast-fits algorithm accesses fewer blocks than a free list algorithm, it reduces the amount of cache invalidation overhead due to the memory manager. Our performance experiments show that the parallel-access fast-fits memory manager allows significantly greater access rates than a serial-access fast-fits memory manager does. We note that shared-memory multiprocessor systems need efficient dynamic storage allocators, both for system purposes and to support parallel programs.  相似文献   

12.
王恒  刘清华  李敏  谭帅 《自动化学报》2021,47(11):2664-2674
作为工业网络的关键技术, 确定性调度通过合理安排网络传输资源, 满足工业数据在规定时间内到达目标设备的实时性要求. 工业网络往往部署在环境恶劣、电磁情况复杂的工业现场, 与有线网络相比, 工业无线网络还面临着严重的丢包问题. 考虑到重传是克服链路丢包的简便高效方法, 本文提出了支持持续重传和区间重传两种策略的确定性调度算法. 基于链路时槽松弛度和动态优先级, 调度算法在每个时槽按照调度规则为重传链路配置通信资源, 缓解丢包对数据传输的影响, 并围绕对应重传策略进行相应的时槽、频点优化分配, 保障数据端到端按时到达. 仿真结果表明, 所提调度算法在满足传输确定性的前提下, 有效提升了数据传输的可靠性.  相似文献   

13.
A parallel multithreaded program that is ostensibly deterministic may nevertheless behave nondeterministically due to bugs in the code. These bugs are called determinacy races, and they result when one thread updates a location in shared memory while another thread is concurrently accessing the location. We have implemented a provably efficient determinacy-race detector for Cilk, an algorithmic multithreaded programming language. If a Cilk program is run on a given input data set, our debugging tool, which we call the ``Nondeterminator,' either determines at least one location in the program that is subject to a determinacy race, or else it certifies that the program is race free when run on the data set. The core of the Nondeterminator is an asymptotically efficient serial algorithm (inspired by Tarjan's nearly linear-time least-common-ancestors algorithm) for detecting determinacy races in series-parallel directed acyclic graphs. For a Cilk program that runs in T time on one processor and uses v shared-memory locations, the Nondeterminator runs in O(T α(v,v)) time, where α is Tarjan's functional inverse of Ackermann's function, a very slowly growing function which, for all practical purposes, is bounded above by 4 . The Nondeterminator uses at most a constant factor more space than does the original program. On a variety of Cilk program benchmarks, the Nondeterminator exhibits a slowdown of less than 12 compared with the serial execution time of the original optimized code, which we contend is an acceptable slowdown for debugging purposes. Received December 7, 1997, and in final form October 24, 1998.  相似文献   

14.
查峰 《计算机工程》2009,35(22):77-78
malloc和free是C语言中动态存储管理标准函数,在一个运行繁忙的系统中大量使用这2个函数容易造成内存碎片和系统颠簸。针对上述问题,设计一个内存管理器,采用按最大需求缓存的策略,优化空间复杂度和时间复杂度,进行多线程保护,构成一个通用的内存适配器,特别适用于数据仓库及XML信息处理,可在各类平台类服务器和网关中使用。  相似文献   

15.
Flash memory has its unique characteristics: the write operation is much more costly than the read operation, and in-place updating is not allowed. In this paper, we analyze how these characteristics affect the performance of clustering and non-clustering methods for record management, and show that non-clustering is more suitable in flash memory environment. Also, we identify the problems of the existing non-clustering method when applied to flash memory environment without any modification, and propose an effective method for record management in flash memory databases. This method, which is basically based on the non-clustering method, tries to store consecutively inserted records in the same page in order to make it possible to process them with only one write operation. In this paper, we call this method group write. Moreover, we propose two novel techniques for achieving efficient group writes: (1) dedicated buffers for group writes and (2) free space lists managed in main memory for maintaining only those pages having large free space. Our method greatly improves the write performance of database applications running in flash memory. For performance evaluation, we conduct a variety of experiments. The results show that our method achieves speed up by up to 1.67 times compared with the original non-clustering method.  相似文献   

16.
A parallel multithreaded program that is ostensibly deterministic may nevertheless behave nondeterministically due to bugs in the code. These bugs are called determinacy races, and they result when one thread updates a location in shared memory while another thread is concurrently accessing the location. We have implemented a provably efficient determinacy-race detector for Cilk, an algorithmic multithreaded programming language. If a Cilk program is run on a given input data set, our debugging tool, which we call the ``Nondeterminator,' either determines at least one location in the program that is subject to a determinacy race, or else it certifies that the program is race free when run on the data set. The core of the Nondeterminator is an asymptotically efficient serial algorithm (inspired by Tarjan's nearly linear-time least-common-ancestors algorithm) for detecting determinacy races in series-parallel directed acyclic graphs. For a Cilk program that runs in T time on one processor and uses v shared-memory locations, the Nondeterminator runs in O(T α(v,v)) time, where α is Tarjan's functional inverse of Ackermann's function, a very slowly growing function which, for all practical purposes, is bounded above by 4 . The Nondeterminator uses at most a constant factor more space than does the original program. On a variety of Cilk program benchmarks, the Nondeterminator exhibits a slowdown of less than 12 compared with the serial execution time of the original optimized code, which we contend is an acceptable slowdown for debugging purposes. Received November 11, 1997, and in final form September 21, 1998.  相似文献   

17.
Memory reallocation is used to construct a run-time data structure for fast/efficient storage of information during collection and analysis. The data structure presented uses dynamic memory but does not require the use of pointers to link nodes of information together. It allows for simple and efficient access to data via array indexing rather than through the use of lists or tree structures and it provides flexibility for competing storage requirements that are determined dynamically. The data structure is developed in the C programming language and a suite of ANSI standard C subroutines that make up a run-time data structure management system is provided.  相似文献   

18.
基于视图的查询回答问题在数据管理方面有广泛的应用。为了形式化地描述一组视图V是否含有足够的信息来回答用户提出的一个查询Q,研究人员近期提出了“视图确定性”的概念。介绍了视图确定性相关的研究问题,对比其与查询重写之间的关系,分析出问题的主要研究维度,总结已有的研究成果并指出存在的问题。同时,对未来的研究趋势进行了展望。  相似文献   

19.
《Ergonomics》2012,55(1):20-28
In a free recall experiment, participants learned lists of words in two physiological states: at rest and while exercising aerobically on a bicycle ergometer. Recall of the words was required in either the state consistent with learning or in the alternative state. Word lists learned during aerobic exercise were recalled best during aerobic exercise and vice versa. Greater changes in heart rate in the changed state conditions were associated with greater retrieval decrements. Recall levels for words both learned and recalled at exercise were equivalent to those for words both learned and recalled at rest. This finding rules out the possibility that exercise per se interfered with the original learning. The study is consistent with the view that state-dependent memory should be viewed as a particular form of cue-dependent memory.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号