- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
KLinux操作系统概述 成都研究所操作系统团队 KLinux简介 KLinux实时性改造 KLinux的安装 KShell介绍 KLinux简介—由来 当前实时嵌入式Linux分析 RT-Linux 在普通Linux内核上增加一个小的实时内核,实现了强实时性 缺点是破坏了Linux内核的完整性,并使得很多应用不能在上面运行 Montavista Linux 在普通Linux上加实时补丁,使得响应速度提高, 缺点是整个系统开销没有降下来,称之为低延时 Linux内核更恰当 KLinux简介—由来 Linux性能瓶颈 内核空间与用户空间的频繁切换 调度算法采用就绪队列遍历搜索 其它如:消息队列、信号量 KLinux简介—解决方案 内核修改要点 内核线程库,提供内核线程的操作手段。 内核库函数修改,包括输入/输出、Socket、文件系统等。 调度算法修改,支持O(1)的优先级调度机制。 对多种CPU的适应修改,主要包括对 X86、PPC、 ARM的支持。 支持在内核线程上的移植、包括消息队列、进程通讯、定时器、内存块管理等。 KLinux简介—解决方案 Linux强实时内核解决方案 KLinux简介—体系结构 Linux强实时内核体系结构 KLibc、KCplus:提供基本的C、C++库函数支持 KTH:提供强实时操作系统所需的基本功能管理 Linux内核:在标准内核基础上改造的支持KTH的新内核 KLinux简介—体系结构 模块间的调用关系 KTH库模块和KLibc、KCplus模块直接调用修改后的Linux内核提供的调用接口(通过KAL的封装), Linux内核则使用回调函数与KTH和KLibc模块联系 KTH和KLibc、KCplus模块以可加载模块形式加入内核运行 KLinux简介—关键特性 KLinux关键特性 强实时性 支持在内核线程上的移植 支持多种硬件体系 X86体系(支持所有IA32的CPU、虚拟机) PPC体系(8240/8241/8245、860、852、8260、755) ARM-NOMMU(ARM7 TDMI) ARM(ARM9 TDMI、IXP 1200) MIPS(R4000) KLinux简介—版本状况 KLinux2.0 基于Linux2.4的内核 KTH、KLibc、KShell KLinux2.2 完善KTH、KLibc、Shell,增加了KCplus模块 增加了调试器功能 LSP,KBoot的开发 完整的用户文档 KLinux3.0 基于Linux2.6的内核 设计中 KLinux简介—应用现状 成研所Linux产品应用历史回顾 2005年10月开始在网络事业部A10和DSL产品线进行应用 2006年3月DSL A8000 core板泉州试验局测试通过 2006年4月在中心研究院MSCe所有单板上进行内核替换验证成功 2007 本部北研 数据事业部 KLinux简介 KLinux实时性改造 KLinux的安装 KShell介绍 KLinux实时性改造—内核修改 KLinux实时性改造—KTH库修改 KTH库修改 增强对内核线程的管理工作,提供‘标准’的接口 提供较完备的同步手段(仿造VxWorks的机制) 提供一定的调试排错手段 KLinux实时性改造—KLibc库修改 KLibc库修改 提供内核的c库 由VxWorks的Libc和kLibc(一个专为嵌入式应用的精简版用户态libc库)修改而得。 新增了KCplus库,支持c++ 内核修改—调度 内核调度修改 增加新的调度方式: KTH_SCHED 采用bitMap的调度算法 256级优先级(越大越优先),kth使用0-200, 255由主线程使用 254由2号线程使用,进行软中断操作。 内核修改—抢占 内核抢占修改 进程切换的时机 1)主动放弃 2)抢占 内核的抢占点:中断、提供调用、异常的返回 中断,异常只有在返回到用户态时才进行抢占 可抢占机制 分两种方式进行抢占,对原Linux内核执行代码,不进行抢占,只对KTH及以上支持的代码,进行抢占 内核修改—状态机 线程状态机修改 线程退出方式的增加 线程处于非运行状态时,也能被其他线程强行终止 增加了对STP的转换途径 STP状态可以与其它状态自由转换 KTH修改—线程管理 KTH线程管理 采用主线程和工作线程的方式 工作线程的创建和删除由主线程完成 增加接口函数 线程创建与删除 Kthread_create(),kthread_spawn() Kthread_cancel(),kthread_join() 线程挂起与唤醒 kthread_suspend_np(), kthread_suspend_np() 开调度与关调度 kthread_switch_lo
文档评论(0)