首页> 外文学位 >Memory footprint reduction of operating system kernels.
【24h】

Memory footprint reduction of operating system kernels.

机译:减少操作系统内核的内存占用。

获取原文
获取原文并翻译 | 示例

摘要

As the complexity of embedded systems grows, there is an increasing use of operating systems (OSes) in embedded devices, such as mobile phones, media players and other consumer electronics. Despite their convenience and flexibility, such operating systems can be overly general and contain features and code that are not needed in every application context, which incurs unnecessary performance overheads. In most embedded systems, resources, such as processing power, available memory, and power consumption, are strictly constrained. In particular, the amount of memory on embedded devices is often very limited. This, together with the popular usage of operating systems in embedded devices, makes it important to reduce the memory footprint of operating systems. This dissertation addresses this challenge and presents automated ways to reduce the memory footprint of OS kernels for embedded systems.;First, we present kernel code compaction, an automated approach that reduces the code size of an OS kernel statically by removing unused functionality. OS kernel code tends to be different from ordinary application code, including the presence of a significant amount of hand-written assembly code, multiple entry points, implicit control flow paths involving interrupt handlers, and frequent indirect control flow via function pointers. We use a novel "approximate decompilation" technique to apply source-level pointer analysis to hand-written assembly code. A prototype implementation of our idea on an Intel x86 platform and a minimally configured Linux kernel obtains a code size reduction of close to 24%.;Even though code compaction can remove a portion of the entire OS kernel code, when exercised with typical embedded benchmarks, such as MiBench, most kernel code is executed infrequently if at all. Our second contribution is on-demand code loading, an automated approach that keeps the rarely used code on secondary storage and loads it into main memory only when it is needed. In order to minimize the overhead of code loading, a greedy node-coalescing algorithm is proposed to group closely related code together. The experimental results show that this approach can reduce memory requirements for the Linux kernel code by about 53% with little degradation in performance.;Last, we describe dynamic data structure compression, an approach that reduces the runtime memory footprint of dynamic data structures in an OS kernel. A prototype implementation for the Linux kernel reduces the memory consumption of the slab allocators in Linux by 17.5% when running the MediaBench suite while incurring only minimal increases in execution time (1.9%).
机译:随着嵌入式系统复杂性的增加,嵌入式设备(例如手机,媒体播放器和其他消费类电子产品)中操作系统(OSes)的使用也越来越多。尽管它们具有便利性和灵活性,但是这样的操作系统可能过于笼统,并且包含每个应用程序上下文中都不需要的功能和代码,这会导致不必要的性能开销。在大多数嵌入式系统中,资源(例如处理能力,可用内存和功耗)受到严格限制。特别是,嵌入式设备上的内存量通常非常有限。这以及嵌入式设备中操作系统的流行用法,使得减少操作系统的内存占用非常重要。本论文解决了这一挑战,并提出了减少嵌入式系统OS内核内存占用的自动化方法。首先,我们介绍了内核代码压缩,这是一种通过删除未使用的功能来静态减少OS内核代码大小的自动化方法。 OS内核代码往往不同于普通的应用程序代码,包括大量的手写汇编代码,多个入口点,涉及中断处理程序的隐式控制流路径以及通过函数指针的频繁间接控制流。我们使用一种新颖的“近似反编译”技术将源代码级指针分析应用于手写汇编代码。我们的想法在Intel x86平台和最低配置的Linux内核上的原型实现可将代码大小减少近24%;即使在典型的嵌入式基准测试下进行代码压缩,也可以删除整个OS内核代码的一部分,例如MiBench,大多数内核代码很少执行。我们的第二个贡献是按需代码加载,这是一种自动化的方法,可以将很少使用的代码保留在二级存储中,并仅在需要时才将其加载到主存储器中。为了最大程度地减少代码加载的开销,提出了一种贪婪节点联合算法,将紧密相关的代码分组在一起。实验结果表明,该方法可以将Linux内核代码的内存需求减少约53%,而性能几乎没有下降。操作系统内核。 Linux内核的原型实现在运行MediaBench套件时将Linux中的平板分配器的内存消耗降低了17.5%,而执行时间仅增加了最小限度(1.9%)。

著录项

  • 作者

    He, Haifeng.;

  • 作者单位

    The University of Arizona.;

  • 授予单位 The University of Arizona.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2009
  • 页码 112 p.
  • 总页数 112
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

  • 入库时间 2022-08-17 11:38:26

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号