Linux2.6内核嵌入式系统有哪些特点

82次阅读
没有评论

共计 2271 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要介绍“Linux2.6 内核嵌入式系统有哪些特点”,在日常操作中,相信很多人在 Linux2.6 内核嵌入式系统有哪些特点问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux2.6 内核嵌入式系统有哪些特点”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

1. 可抢占内核

在先前的内核版本中 (包括 2.4 内核) 不允许抢占以核心态运行的任务(包括通过系统调用进入内核模式的用户任务), 只能等待它们自己主动释放 CPU。这样必然导致一些重要任务延时以等待系统调用结束。

一个内核任务可以被抢占, 为的是让重要的用户应用程序可以继续运行。这样做最主要的优势是极大地增强系统的用户交互性。

2.6 内核并不是真正的 RTOS(Real Time Operation System), 其在内核代码中插入了抢占点, 允许调度程序中止当前进程而调用更高优先级的进程, 通过对抢占点的测试避免不合理的系统调用延时。2.6 内核在一定程度上是可抢占的, 比 2.4 内核具备更好的响应性。但也不是所有的内核代码段都可以被抢占, 可以锁定内核代码的关键部分, 确保 CPU 的数据结构和状态始终受到保护而不被抢占。

软件需要满足最终时间限制与虚拟内存请求页面调度之间是相互矛盾的。慢速的页错误处理将会破坏系统的实时响应性, 而 2.6 内核可以编译无虚拟内存系统避免这个问题, 这是解决问题的关键, 但要求软件设计者有足够的内存来保证任务的执行。

2. 有效的调度程序

2.6 版本的 Linux 内核使用了由 Ingo Molnar 开发的新的调度器算法, 称为 O(1)算法, 如图 1 所示。它在高负载情况下执行得极其出色, 并且当有很多处理器并行时也可以很好地扩展 [2]。过去的调度程序需要查找整个 ready task 队列, 并且计算它们的重要性以决定下一步调用的 task, 需要的时间随 task 数量而改变。O(1) 算法则不再每次扫描所有的任务, 当 task 就绪时被放入一个活动队列中, 调度程序每次从中调度适合的 task, 因而每次调度都是一个固定的时间。任务运行时分配一个时间片, 当时间片结束, 该任务将放弃处理器并根据其优先级转到过期队列中。活动队列中任务全部调度结束后, 两个队列指针互换, 过期队列成为当前队列, 调度程序继续以简单的算法调度当前队列中的任务。这在多处理器的情况更能提高 SMP 的效率, 平衡处理器的负载, 避免进程在处理器间的跳跃。

3. 同步原型与共享内存

多进程应用程序需要共享内存和外设资源, 为避免竞争采用了互斥的方法保证资源在同一时刻只被一个任务访? 省inux 内核用一个系统调用来决定一个线程阻塞或是继续执行来实现互斥, 在线程继续执行时, 这个费时的系统调用就没有必要了。Linux2.6 所支持的 Fast User-Space Mutexes 可以从用户空间检测是不是需要阻塞线程, 只在需要时执行系统调用终止线程。它同样采用调度优先级来确定将要执行的进程[4]。多处理器嵌入式系统各处理器之间需要共享内存, 对称多处理技术对内存访问采用同等优先级, 在很大程度上限制了系统的可量测性和处理效率。Linux2.6 则提供了新的管理方法――NUMA(Non Uniform Memory Access)。NUMA 根据处理器和内存的拓扑布局, 在发生内存竞争时, 给予不同处理器不同级别权限以解决内存抢占瓶颈, 提高吞吐量。

4.POSIX 线程及 NPTL

新的线程模型基于一个 1:1 的线程模型 (一个内核线程对应一个用户线程), 包括内核对新的 NPTL(Native POSIX Threading Library) 的支持, 这是对以前内核线程方法的明显改进。2.6 内核同时还提供 POSIX signals 和 POSIX high-resolution timers。POSIX signals 不会丢失, 并且可以携带线程间或处理器间的通信信息。嵌入式系统要求系统按时间表执行任务,POSIX timer 可以提供 1kHz 的触发器使这一切变得简单, 从而可以有效地控制进度。

5. 微控制器的支持

Linux2.6 内核加入了多种微控制器的支持。无 MMU 的处理器以前只能利用一些改进的分支版本, 如 uClinux, 而 2.6 内核已经将其整合进了新的内核中, 开始支持多种流行的无 MMU 微控制器, 如 Dragonball、ColdFire、Hitachi H8/300。Linux 在无 MMU 控制器上仍旧支持多任务处理, 但没有内存保护功能。同时也加入了许多流行的控制器的支持, 如 S3C2410 等。

6. 面向应用

嵌入式应用有用户定制的特点, 硬件设计都针对特定应用开发, 这给系统带来对非标准化设计支持的问题 (如 IRQ 的管理)。为了更好地实现, 可以采用部件化的操作系统。Linux2.6 采用的子系统架构将功能模块化, 可以定制而对其他部分影响最小。同时 Linux2.6 提供了多种新技术的支持以实现各种应用开发, 如 Advanced Linux Sound Architecture(ALSA) 和 Video4Linux 等, 对多媒体信息处理更加方便; 对 USB2.0 的支持, 提供更高速的传输, 增加蓝牙无线接口、音频数据链接和面向链接的数据传输 L2CAP, 满足短距离的无线连接的需要; 而且在 2.6 内核中还可以配置成无输入和显示的纯粹无用户接口系统。

到此,关于“Linux2.6 内核嵌入式系统有哪些特点”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2271字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)