基于嵌入式linux的内核线程库KTH的设计与实现

基于嵌入式linux的内核线程库KTH的设计与实现

论文摘要

Linux 作为一款优秀的免费操作系统,有着其独特的优势。近年来已得到国内外通讯设备制造商的高度重视,并已开发出基于嵌入式Linux 的通讯设备与智能手机终端。经过长期的发展,Linux 已经具备在大型通讯设备中使用的条件,开展对嵌入式Linux 的研究与应用,对于降低产品成本、提高产品质量具有重要的战略意义。本论文详细分析了嵌入式系统的基本概念,系统地介绍了linux 用作嵌入式操作系统所具有的实时支持,网络支持,GUI 支持等特点,并深入地研究了嵌入式Linux 内核机制,认为在嵌入式Linux 中,应用程序经常使用的系统调用涉及到用户态和内核态的切换,这样会增加系统开销,影响系统性能。在上述基础上,本论文提出了在linux 内核态中建立内核线程库KTH,实现应用程序的内核化,并阐述了内核线程库所要达到的功能、性能,提出了KTH的体系结构,然后详细介绍和分析了本人所完成的各KTH 模块的设计和实现,以及在设计和实现过程中所采用的主要数据结构、主要算法及函数流程。最后分别以线程处理速度、信号量处理速度两方面对本KTH 进行了测试。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪论
  • 1.1 课题背景
  • 1.2 攻读学位期间完成的主要工作
  • 1.3 论文章节安排
  • 第二章 嵌入式系统概述
  • 2.1 嵌入式系统的定义
  • 2.2 嵌入式系统的发展历程
  • 2.3 嵌入式系统的特点
  • 2.4 嵌入式系统的应用领域
  • 2.5 嵌入式系统的发展趋势
  • 第三章 嵌入式linux 系统概述
  • 3.1 Linux 的历史和现状
  • 3.2 linux 用作嵌入式操作系统
  • 3.2.1 嵌入式处理器支持
  • 3.2.2 实时支持
  • 3.2.3 网络支持
  • 3.2.4 GUI 开发支持
  • 3.2.5 使用成本低
  • 3.2.6 文档完善
  • 3.3 小结
  • 第四章 KTH 系统的设计
  • 4.1 需求分析
  • 4.1.1 功能需求
  • 4.1.2 性能需求
  • 4.1.3 属性需求
  • 4.2 体系结构
  • 4.2.1 线程管理子模块
  • 4.2.3 对象管理子模块
  • 4.2.4 信号量管理子模块
  • 4.2.5 内存管理子模块
  • 4.2.6 日志管理子模块
  • 4.2.7 Shell 子模块
  • 第五章 KTH 模块的设计与实现
  • 5.1 KTH 库的初始化
  • 5.2 线程管理子模块
  • 5.2.1 主要思想
  • 5.2.2 线程管理初始化
  • 5.2.3 主线程处理
  • 5.2.4 线程创建
  • 5.2.5 线程中止
  • 5.2.6 线程挂起
  • 5.2.7 线程唤醒
  • 5.2.8 等待指定线程结束
  • 5.2.9 线程调度参数的设定和获取
  • 5.2.10 线程本地存储的设定和获取
  • 5.2.11 线程延迟
  • 5.2.12 线程管理退出
  • 5.3 对象管理子模块
  • 5.3.1 主要思想
  • 5.3.2 对象申请
  • 5.3.3 对象释放
  • 5.3.4 对象遍历
  • 5.4 信号量管理子模块
  • 5.4.1 主要思想
  • 5.4.2 B 信号量
  • 5.4.3 C 信号量
  • 5.4.4 优先级继承协议PIP
  • 5.4.5 M 信号量
  • 5.5 内存管理子模块
  • 5.5.1 内存管理的结构
  • 5.5.2 内存模块初始化
  • 5.5.3 内存分配
  • 5.5.4 内存释放
  • 5.5.5 内存回收
  • 5.5.6 查看内存分配情况
  • 5.6 日志管理子模块
  • 5.6.1 主要实现思想
  • 5.6.2 日志信息的产生
  • 5.6.3 日志信息的过滤
  • 5.6.4 日志的处理
  • 5.7 Shell 子模块
  • 5.7.1 Shell 的处理流程
  • 5.8 KTH 库的退出
  • 第六章 KTH 的测试
  • 6.1 测试内容
  • 6.2 测试环境
  • 6.3 测试方法
  • 6.3.1 线程的创建和删除测试
  • 6.3.2 等待线程结束测试
  • 6.3.3 强制线程结束
  • 6.3.4 线程的挂起和唤醒
  • 6.3.5 动态改变KTH 线程的优先级
  • 6.3.6 获取KTH 线程的调度参数
  • 6.3.7 杀死所有的KTH 线程
  • 6.3.8 延迟当前线程
  • 6.3.9 信号量相关操作测试
  • 6.3.10 线程切换的时间
  • 6.3.11 测试创建和删除线程的时间
  • 6.3.12 测试挂起线程(SUSPEND)的时间
  • 6.3.13 测试恢复运行线程(RESUME)的时间
  • 6.3.14 测试创建信号量的时间
  • 6.3.15 测试删除信号量的时间
  • 6.3.16 测试获取信号量的时间(信号量可用)
  • 6.3.17 测试获取信号量的时间(信号量不可用)
  • 6.3.18 测试释放信号量的时间(信号量等待队列不为空)
  • 6.3.19 测试释放信号量的时间(信号量等待队列为空)
  • 6.3.20 长时间创建极限个线程再删除
  • 6.3.21 长时间创建极限个信号量再删除
  • 6.3.22 长时间测试极限个线程运行中防止优先级反转的表现
  • 6.4 测试结果记录
  • 第七章 结束语
  • 参考文献
  • 致谢
  • 个人简历
  • 相关论文文献

    标签:;  ;  ;  ;  

    基于嵌入式linux的内核线程库KTH的设计与实现
    下载Doc文档

    猜你喜欢