首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
New non-volatile memory (e.g., phase-change memory) provides fast access, large capacity, byte-addressability, and non-volatility features. These features, fast-byte-persistency, will bring new opportunities to fault tolerance. We propose a fine-grained checkpoint based on non-volatile memory. We extend the current virtual memory manager to manage non-volatile memory, and design a persistent heap with support for fast allocation and checkpointing of persistent objects. To achieve a fine-grained checkpoint, we scatter objects across virtual pages and rely on hardware page-protection to monitor the modifications. In our system, two objects in different virtual pages may reside on the same physical page. Modifying one object would not interfere with the other object. This allows us to monitor and checkpoint objects smaller than 4096 bytes in a fine-grained way. Compared with previous page-grained based checkpoint mechanisms, our new checkpoint method can greatly reduce the data copied at checkpoint time and better leverage the limited bandwidth of non-volatile memory.  相似文献   

2.
针对在一定大小的内存空间中Jave虚拟机在处理大型Jave 程序时,Jave 对象之间频繁交互导致内存占用高、处理效率低的问题,给出了减少Jave对象占用内存空间的三种布局规则。该规则利用Jave 虚拟机运行机制,综合对象属性及影响内存空间大小等指标,得出相同对象不同属性之间按规则存放顺序的最优方法。结果表明,相对传统的相同对象不同属性之间无规则的存放方法,按规则存放顺序的方法能够大幅度节省内存空间,并有效提高Jave 虚拟机的运行效率,程序对象越多,该方法对内存空间的节省和计算效率的提高效果就越明显。  相似文献   

3.
With the rapid increase of memory consumption by applications running on cloud data centers,we need more efficient memory management in a virtualized environment.Exploiting huge pages becomes more critical for a virtual machine's performance when it runs large working set size programs.Programs with large working set sizes are more sensitive to memory allocation,which requires us to quickly adjust the virtual machine's memory to accommodate memory phase changes.It would be much more efficient if we could adjust virtual machines'memory at the granularity of huge pages.However,existing virtual machine memory reallocation techniques,such as ballooning,do not support huge pages.In addition,in order to drive effective memory reallocation,we need to predict the actual memory demand of a virtual machine.We find that traditional memory demand estimation methods designed for regular pages cannot be simply ported to a system adopting huge pages.How to adjust the memory of virtual machines timely and effectively according to the periodic change of memory demand is another challenge we face.This paper proposes a dynamic huge page based memory balancing system(HPMBS)for efficient memory management in a virtualized environment.We first rebuild the ballooning mechanism in order to dispatch memory in the granularity of huge pages.We then design and implement a huge page working set size estimation mechanism which can accurately estimate a virtual machine's memory demand in huge pages environments.Combining these two mechanisms,we finally use an algorithm based on dynamic programming to achieve dynamic memory balancing.Experiments show that our system saves memory and improves overall system performance with low overhead.  相似文献   

4.
On virtualization platforms, peak memory demand caused by hotspot applications often triggers page swapping in guest OS, causing performance degradation inside and outside of this virtual machine (VM). Even though host holds sufficient memory pages, guest OS is unable to utilize free pages in host directly due to the semantic gap between virtual machine monitor (VMM) and guest operating system (OS). Our work aims at utilizing the free memory scattered in multiple hosts in a virtualization environment to improve the performance of guest swapping in a transparent and implicit way. Based on the insightful analysis of behavioral characteristics of guest swapping, we design and implement a distributed and scalable framework HybridSwap. It dynamically constructs virtual swap pools using various policies, and builds up a synthetic swapping mechanism in a peer-to-peer way, which can adaptively choose different virtual swap pools.We implement the prototype of HybridSwap and evaluate it with some benchmarks in different scenarios. The evaluation results demonstrate that our solution has the ability to promote the guest swapping efficiency indeed and shows a double performance promotion in some cases. Even in the worst case, the system overhead brought by HybridSwap is acceptable.  相似文献   

5.
In object-oriented systems, runtime memory is composed of an object graph in which objects refer to other objects. This graph of objects evolves while the system is running. Graph exporting and swapping are two important object graph operations. Exporting refers to copying the graph to some other memory so that it can be loaded by another system. Swapping refers to moving the graph to a secondary memory (e.g., a hard disk) to temporary release part of the primary memory (e.g., RAM).Exporting and swapping are achieved in different ways and the speed in the presence of large object graphs is critical. Nevertheless, most of the existing solutions do not address well this issue. Another challenge is to deal with common situations where objects outside the exported/swapped graph point to objects inside the graph. To correctly load back an exported subgraph, it is necessary to compute and export extra information that is not explicit in the object subgraph. This extra information is needed because certain objects may require to be reinitialized or recreated, to run specific code before or after the loading, to be updated to a new class definition, etc.In this paper, we present all general problems to our knowledge about object exporting and swapping. As a case of study, we present an analysis of ImageSegment, a fast solution to export and swap object graphs, developed by Ingalls. ImageSegment addresses the speed problems in an efficient way, as shown by the results of several benchmarks we have conducted using Pharo Smalltalk. However, ImageSegment is not a panacea since it still has other problem that hampers its general use.  相似文献   

6.
This paper proposes a new memory allocation method for shared memory multiprocessors with large virtual address spaces. An evaluation of its performance is also presented. For effective use of shared memory multiprocessors, it is important that no processor's execution is blocked. If several processors simultaneously access a shared variable, their processes are blocked and access to the variable is serialized. Thus, frequent access to shared variables reduces the parallelism. In particular, the parallelism is significantly reduced when a special shared variable – the ‘allocation pointer’ – is frequently accessed in the dynamic object allocation by an application program. In this paper, we propose a new method for allocating physical memory pages where the allocation pointer is monotonically increased in the virtual address space in contrast to the conventional method. This allows the critical sections for access to the allocation pointer to be executed effectively and atomically by using the fetch-and-add primitive. Our method improves the application program's parallelism by access to the allocation pointer with considerably short blocking time to the process. © 1997 John Wiley & Sons, Ltd.  相似文献   

7.
Unikernels provide an efficient and lightweight way to deploy cloud computing services in application-specialized and single-address-space virtual machines (VMs). They can efficiently deploy hundreds of unikernel-based VMs in a single physical server. In such a cloud computing platform, main memory is the primary bottleneck resource for high-density application deployment. Recently, non-volatile memory (NVM) technologies has become increasingly popular in cloud data centers because they can offer extremely large memory capacity at a low expense. However, there still remain many challenges to utilize NVMs for unikernel-based VMs, such as the difficulty of heterogeneous memory allocation and high performance overhead of address translations. In this paper, we present UCat, a heterogeneous memory management mechanism that support multi-grained memory allocation for unikernels. We propose front-end/back-end cooperative address space mapping to expose the host memory heterogeneity to unikernels. UCat exploits large pages to reduce the cost of two-layer address translation in virtualization environments, and leverages slab allocation to reduce memory waste due to internal memory fragmentation. We implement UCat based on a popular unikernel--OSv and conduct extensive experiments to evaluate its efficiency. Experimental results show that UCat can reduce the memory consumption of unikernels by 50% and TLB miss rate by 41%, and improve the throughput of real-world benchmarks such as memslap and YCSB by up to 18.5% and 14.8%, respectively.  相似文献   

8.
周翔宇  程春玲  杨雁莹 《计算机科学》2016,43(7):203-207, 216
针对现有移动索引仅对内存/磁盘两层结构进行优化,忽略了索引节点在内存中的缓存敏感性,提出一种基于分布式内存数据库的全时态索引结构DFTBx树。该索引结构针对存储器Cache、内存和磁盘3层结构进行优化,根据Cache行、指令数量和TLB失配数等多个条件设计内存索引节点的大小。同时,根据磁盘数据页的大小设计历史数据迁移链节点的大小,使得Cache和内存能够一次读取索引节点和迁移链节点数据,避免多次读取数据带来的延迟。此外,构建历史数据迁移链,实现历史数据持久化,从而支持移动对象全时态索引。实验结果表明:与Bx树、Bdual树、TPR*树和STRIPES算法相比,DFTBx树具有较高的查询和更新效率。  相似文献   

9.
马明理  陈刚  董金祥 《计算机测量与控制》2006,14(11):1551-1553,1556
介绍了一种新的多线程内存分配技术(NIXMalloc)的设计和实现,提出了两种高效的分配策略及其自适应调优方法,有效地提高多线程应用程序的内存管理性能;其中Local分配策略对超级块对象Span进行了线程私有化,基于超级块对象为单位的垃圾回收和内存布局调整使多线程性能更优越;Global分配策略采用了自适应调优方法,在动态检测应用程序内存使用情况的基础上进行内存预取和线程缓存限值的动态调整;实验证明NIXMalloc可改善内存管理性能,提高吞吐量,同时降低内存使用量;在多线程应用系统中能获得较好的时空效率。  相似文献   

10.
Donald B. Innes 《Software》1977,7(2):271-273
Many implementations of paged virtual memory systems employ demand fetching with least recently used (LRU) replacement. The stack characteristic of LRU replacement implies that a reference string which repeatedly accesses a number of pages in sequence will cause a page fault for each successive page referenced when the number of pages is greater than the number of page frames allocated to the program's LRU stack. In certain circumstances when the individual operations being performed on the referenced string are independent, or more precisely are commutative, the order of alternate page reference sequences can be reversed. This paper considers sequences which cannot be reversed and shows how placement of information on pages can achieve a similar effect if at least half the pages can be held in the LRU stack.  相似文献   

11.
针对无线传感器网络节点资源受限、网络维护与软件更新困难的特点,以Contiki操作系统为开发平台,设计了一种可以满足无线传感器网络特点和应用的节点软件更新方法。通过连续分配和基于重定位信息的内存移动,设计了一种高利用率的内存使用策略;基于黑板模型的管理方法,实现了服务模块注册、更新和卸载的生命周期管理。实验结果显示:更新模块的大小与更新时间分别减小15%和13%,整个系统设计显著提高了传感器节点的能量和内存效率,延长了节点寿命。  相似文献   

12.
大型3D场景漫游系统内存管理   总被引:1,自引:0,他引:1  
在大型3D场景漫游系统中,单个资源(如模型、纹理)所需内存较大且分配和释放频繁,为了防止内存碎片的产生并提高内存分配速度,提出了一种新型内存管理方法.根据程序需求首先划分出一块或多块大的虚拟内存区域,然后基于所划分的内存区域进行内存分配和回收管理.在该管理方法中,对于程序中的小资源,使用内存池;对于大的资源,则使用伙伴系统内存管理方法.实验结果表明,该内存管理方法高效且稳定.  相似文献   

13.
We present an improved uniform subdivision based discrete and continuous collision detection approach for deformable objects consisting of triangle meshes without any assumption about triangle size. A previously proposed technique using control bits can effectively eliminate redundant object pairs appearing in multiple cells, but this scheme requires the grid cell size adapted to the largest object, and efficiency tends to be severely impaired when object size varies strongly. In this paper, we discuss an approach that virtually subdivides large triangles into a number of child triangles to enable the use of a smaller, better suited cell size, resulting in a considerable decrease in the number of collision tests in the broad phase, with a corresponding reduced memory requirement. The virtual subdivision is used only for the purpose of collision detection and is recomputed each frame, with the original mesh retained for collision response and physical simulation. Our method exploits the benefits of GPU architecture to accelerate the computationally intensive task for improved performance. The results show that the method provides speedups by comparing performance with existing methods.  相似文献   

14.
C++对象的持久化中的问题和解决方案   总被引:1,自引:0,他引:1       下载免费PDF全文
陶伟  麦中凡 《软件学报》1996,7(2):73-82
多媒体智能数据库系统MIDS(multimediaintelligentdatabasesystem)是一个对象数据库管理系统.它的数据库编程语言是P++,P++个语言是一种基于C++的语言.作者在P++的实现过程中遇到了以下问题:首先,C++的指针有二义性,它无法在语义上区分成员指针和引用指针,以及易失性指针和持久性指针,从而给事务管理中的对象加锁及其它方面带来问题.其次,具有虚拟函数或虚拟基类的对象中含有指向内存中的指针,而这些指针不是由程序员定义的.如果C+个对象被持久化,这些指针在不同的程序调用中有可能无效.最后,如果作者用文件系统调用来存储对象,那么必须要设计复杂的Cache系统和做大量对象的格式转化工作,这需要大量的空间和时间,所以他们采用了另外的一种方法──基于虚拟内存空间映射的存储方案.  相似文献   

15.
孙瑞辰  孙磊 《计算机科学》2015,42(Z11):218-221, 235
云计算平台和虚拟化技术的结合为虚拟机域间通信带来了新的需求,基于内存共享的域间通信可以提高运行在同一物理机上的虚拟机间的通信效率。但是,基于内存共享的域间过程中产生的上下文状态切换限制了其优化能力。引入一种新的内存共享模型PAMM,即通过添加一个管理模块对内存共享过程中所传递的内存页进行聚合管理,减少申请超级调用的次数,以达到减少状态切换的目的。实验表明,PAMM能够提升基于内存共享的域间通信的通信效率。  相似文献   

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

17.
Checkpointing is a basic mechanism for backward error-recovery in fault-tolerant systems. A checkpointed process stops execution and saves its states to files periodically. To reduce the file sizes, only data modified between two consecutive checkpoint times is saved. However, existing approaches do not consider operating system paging activities; which, if ignored may double the number of disk accesses required to checkpoint non-resident dirty pages. In this paper, we propose continuous checkpointing, which combines the checkpoint facility with virtual memory paging operations. Thus, checkpointing is continuous during the lifetime of a process without extra overhead. Checkpoint size is no longer proportional to application size, but rather is bounded by resident dirty pages. Experimental results show that disk accesses can be reduced by about 80% when checkpointing large applications. © 1997 John Wiley & Sons, Ltd.  相似文献   

18.
外存模型简化中数据读取及内存分配的优化   总被引:1,自引:0,他引:1  
由于外存模型的数据量极大,其简化计算只能采用分批读入模型数据并局部处理的方式,其中,数据读入和内存分配的操作对简化效率影响很大,提出一种动态优化方法,在对先处理的一小部分数据进行简化操作的同时,检测数据读取块大小和内存分配模式对简化操作的影响,由此可使不同配置的计算机在处理不同的外存模型时能自适应地得到相应的优化数据读取块大小和内存分配模式,加速后续大量数据的简化操作,实验结果表明,文中方法能有效地提高外存模型简化的效率。  相似文献   

19.
虚拟化是云计算的关键技术. Hypervisor在虚拟机与主机硬件之间提供了一个抽象层,允许用户为运行着的虚拟机分配的内存总值超过主机的可用内存,这种技术称为内存过量分配. 为了能够降低这个技术对虚拟机性能的影响,hypervisor必须提供高效率的内存回收机制. 在本论文中,作者提出了一种解决方案:使用非易失性内存作为hypervisor交换页面数据的缓存设备. 作者从系统内存中划分出空间模拟了非易失性内存设备,修改了KVM模块中的算法,并制定了五种测试环境. 通过实验数据证明,相比现有的Ballooning技术与Hypervisor swapping技术,使用非易失性内存并配合低优先级队列算法时,虚拟机性能可提高30%和50%左右.  相似文献   

20.
Summary We present a queueing network model of a virtual memory computer system including the effect of memory sharing among processes. Page fault and file request system overheads are explicitly taken into account. The fact that some memory pages have to be saved in the secondary memory at the moment of a page fault, is also taken into consideration. We obtain an approximate solution using an equivalence and decomposition approach. The effect of system and program behavior parameters (primary memory size, drum and disk characteristics, program locality, input-output rates and different pages ratios) as well as that of the total number of processes, are examined for two different system organizations. In the first one, all the processes share real core; in the second, processes having issued a file request lose their memory space until the I/O is performed.  相似文献   

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

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

京公网安备 11010802026262号