首页> 外文会议>IEEE International Symposium on Computer Architecture and High Performance Computing >PSU: A Framework for Dynamic Software Updates in Multi-threaded C-Language Programs
【24h】

PSU: A Framework for Dynamic Software Updates in Multi-threaded C-Language Programs

机译:PSU:多线程C语言程序中动态软件更新的框架

获取原文

摘要

A Dynamic Software Update (DSU) system enables an operator to modify a running program without interrupting its execution. However, creating a DSU system to allow programs written in the C programming language to be modified while they are executing is challenging. This paper presents the Portable Software Update (PSU) system, a new framework that allows the creation of C-language DSU programs. PSU offers a simple programming interface to build DSU versions of existing C programs. Once a program is built using PSU, updates can be applied by background threads that have negligible impact on the execution of the program. PSU supports multi-threaded and recursive programs without the use of safe points or thread blocking. PSU uses function indirection to redirect DSU functions calls to the newest version of the function code. Once a DSU function is invoked in a PSU program, it executes to completion using the version of the function that was active when it was invoked. However, if a new version is installed, any future calls to the same function always execute the newest version. This simple mechanism allows for quick loading of updates in PSU. PSU unloads obsolete version of DSU functions after they are no longer executing. This mechanism makes PSU the first DSU system for C-language programs that is able to unload older versions of code. This efficient use of resources enables many patches to be applied to a long-running application. A suite of specialized custom synthetic programs, and a DSU-enabled version of the MySQL database storage engine, are used to evaluate the overhead of the DSU-enabling features. The MySQL storage engine maintains over 95% of the performance of the non-DSU version and allows the entire storage engine to be updated while the database continues executing. PSU includes a simple and straightforward process for the modification of the storage engine that enables DSU.
机译:动态软件更新(DSU)系统使操作员可以修改正在运行的程序而不会中断其执行。但是,创建一个DSU系统以允许以C编程语言编写的程序在执行时被修改是具有挑战性的。本文介绍了便携式软件更新(PSU)系统,这是一个允许创建C语言DSU程序的新框架。 PSU提供了一个简单的编程接口来构建现有C程序的DSU版本。使用PSU构建程序后,可以通过后台线程应用更新,这些更新对程序的执行影响可忽略不计。 PSU支持多线程和递归程序,而无需使用安全点或线程阻塞。 PSU使用函数间接将DSU函数调用重定向到功能代码的最新版本。在PSU程序中调用DSU函数后,它将使用被调用时处于活动状态的函数版本执行至完成。但是,如果安装了新版本,则以后对同一函数的任何调用都将始终执行最新版本。这种简单的机制允许在PSU中快速加载更新。在不再执行DSU功能后,PSU会卸载它们。这种机制使PSU成为第一个能够卸载较旧版本代码的C语言程序的DSU系统。对资源的这种有效利用使许多补丁程序可以应用于长时间运行的应用程序。一套专用的定制合成程序和MySQL数据库存储引擎的启用DSU的版本用于评估启用DSU的功能的开销。 MySQL存储引擎保持了非DSU版本95%的性能,并允许在数据库继续执行的同时更新整个存储引擎。 PSU包括一个简单而直接的过程,用于修改启用DSU的存储引擎。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号