Linux内核的嵌入式系统应用.docx





《Linux内核的嵌入式系统应用.docx》由会员分享,可在线阅读,更多相关《Linux内核的嵌入式系统应用.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux内核的嵌入式系统应用caojing导语:在数字信息技术和网络技术高速开展的后PC时代,嵌入式技术越来越与人们的生活严密结合。随着多媒体技术与通讯技术相结合的信息技术的快速开展和互联网的广泛应用,PC时代也过渡到了后PC时代。在数字信息技术和网络技术高速开展的后PC时代,嵌入式技术越来越与人们的生活严密结合。操纵系统为用户使用计算机及其外部设备提供最根本的接口程序,治理计算机上的资源。随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵敏性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为根底、软硬件可裁剪、适应应用系统对功能、可靠性、本钱、体积、功耗要求严格的专用计算机系
2、统嵌入式操纵系统随之延生。Linux操纵系统是一种性能优良、源码公开且被广泛应用的免费操纵系统,由于其体积小、可裁减、运行速度高、良好的网络性能等优点,可以作为嵌入式操纵系统。随着2.6内核的发布,Linux向现有主流的RTOS提供商在嵌入式系统市场提出了宏大挑战,例如VxWorks和WinCE,具有很多新特性,将成为更优秀的嵌入式操纵系统。Linux的低本钱和开放性,为其在嵌入式系统领域的应用营造了肥沃的土壤。本文着重介绍Linux2.6内核的新特性及其嵌入式应用中的上风,并将其移植到嵌入式平台中,成功支持H.264编解码多媒体系统。1Linux2.6内核针对嵌入式开发显著特点实时可靠性是嵌
3、入式应用较为普遍的要求,尽管Linux2.6并不是一个真正的实时操纵系统,但其改良的特性可以知足响应需求。Linux2.6已经在内核主体中参加了进步中断性能和调度响应时间的改良,其中有三个最显著的改良:采用可抢占内核、更加有效的调度算法以及同步性的进步4。在企业效劳器以及嵌入式系统应用领域,Linux2.6都是一个宏大的进步。在嵌入式领域,Linux2.6除了进步其实时性能,系统的移植更加方便,同时添加了新的体系构造和处理器类型包括对没有硬件控制内存治理方案的MMU-less系统的支持,可以支持大容量内存模型、微控制器,同时还改善了I/O子系统,增添更多的多媒体应用功能4。1.1可抢占内核在先
4、前的内核版本中包括2.4内核不允许抢占以核心态运行的任务包括通过系统调用进入内核形式的用户任务,只能等待它们自己主动释放CPU。这样必然导致一些重要任务延时以等待系统调用完毕。一个内核任务可以被抢占,为的是让重要的用户应用程序可以继续运行。这样做最主要的上风是极大地增强系统的用户交互性。2.6内核并不是真正的RTOSRealTimeOperationSystem,其在内核代码中插入了抢占点,允许调度程序中止当前进程而调用更高优先级的进程,通过对抢占点的测试防止不公道的系统调用延时。2.6内核在一定程度上是可抢占的,比2.4内核具备更好的响应性。但也不是所有的内核代码段都可以被抢占,可以锁定内核
5、代码的关键局部,确保CPU的数据构造和状态始终受到保护而不被抢占。软件需要知足最终时间限制与虚拟内存恳求页面调度之间是互相矛盾的。慢速的页错误处理将会破坏系统的实时响应性,而2.6内核可以编译无虚拟内存系统防止这个问题,这是解决问题的关键,但要求软件设计者有足够的内存来保证任务的执行。1.2有效的调度程序2.6版本的Linux内核使用了由IngoMolnar开发的新的调度器算法,称为O1算法,如图1所示。它在高负载情况下执行得极其出色,并且当有很多处理器并行时也可以很好地扩展2。过去的调度程序需要查找整个readytask队列,并且计算它们的重要性以决定下一步调用的task,需要的时间随tas
6、k数目而改变。O1算法那么不再每次扫描所有的任务,当task停当时被放入一个活动队列中,调度程序每次从中调度合适的task,因此每次调度都是一个固定的时间。任务运行时分配一个时间片,当时间片完毕,该任务将放弃处理器并根据其优先级转到过期队列中。活动队列中任务全部调度完毕后,两个队列指针互换,过期队列成为当前队列,调度程序继续以简单的算法调度当前队列中的任务。这在多处理器的情况更能进步SMP的效率,平衡处理器的负载,防止进程在处理器间的跳跃。图1O1调度算法1.3同步原型与分享内存多进程应用程序需要分享内存和外设资源,为防止竞争采用了互斥的方法保证资源在同一时刻只被一个任务访问。Linux内核用
7、一个系统调用来决定一个线程阻塞或者是继续执行来实现互斥,在线程继续执行时,这个费时的系统调用就没有必要了。Linux2.6所支持的FastUser-SpaceMutexes可以从用户空间检测是不是需要阻塞线程,只在需要时执行系统调用终止线程。它同样采用调度优先级来确定将要执行的进程4。多处理器嵌入式系统各处理器之间需要分享内存,对称多处理技术对内存访问采用同等优先级,在很大程度上限制了系统的可量测性和处理效率。Linux2.6那么提供了新的治理方法NUMANonUniformMemoryAccess。NUMA根据处理器和内存的拓扑布局,在发生内存竞争时,给予不同处理器不同级别权限以解决内存抢占
8、瓶颈,进步吞吐量。1.4POSIX线程及NPTL新的线程模型基于一个1:1的线程模型一个内核线程对应一个用户线程,包括内核对新的NPTLNativePOSIXThreadingLibrary的支持,这是对以前内核线程方法的明显改良。2.6内核同时还提供POSIXsignals和POSIXhigh-resolutiontimers。POSIXsignals不会丧失,并且可以携带线程间或者处理器间的通讯信息。嵌入式系统要求系统按时间表执行任务,POSIXtimer可以提供1kHz的触发器使这一切变得简单,进而可以有效地控制进度。1.5微控制器的支持Linux2.6内核参加了多种微控制器的支持。无M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 内核 嵌入式 系统 应用

限制150内