标题:
用Linux构造嵌入式实时应用系统(二)
[打印本页]
作者:
yuyang911220
时间:
2017-6-12 15:29
标题:
用Linux构造嵌入式实时应用系统(二)
3.4. Linux/RK
Linux/RK 由卡内基梅隆大学实时和多媒体系统实验室所开发[RKWeb][ Oikawa98]。它是该实验室资源内核(Resource Kernel)[Rajkumar98]思想在Linux系统中的具体实现。他们最先在RT-MACH中实现了资源内核的思想,后来又用资源内核的思想对 Linux进行了修改。资源内核的概念是网络中资源预留思想在操作系统领域的扩展,应用程序先向操作系统请求预留资源,而操作系统内核在给应用进行资源预 留,并能给应用提供有及时的、保证的资源访问。
资 源内核中有两个基本的概念:资源预留和资源集。一个资源预留代表一份计算资源,这个资源可以是CPU、内存、磁盘、网络带宽等。在内核中,一个资源预留有 对应的描述它的数据结构,而一个资源集指一组资源预留的集合。一般情况下我们将某一个应用程序所请求的所有资源预留组合在一起组成一个资源集,这样方便管 理和分配。
Linux/RK 增强了普通Linux内核的功能,从而使Linux内核可以提供对于系统中各种计算资源的准入控制、资源预留和统计管理。Linux/RK由两部分组成: 普通的Linux内核以及可移植的资源内核;这两个部分之间通过回调钩子函数(Callback hooks)进行交互。类似于RT-Linux,为了防止Linux内核中的封中操作以及提高调度精度,Linux/RK也截取系统中的中断,并提高了系 统时钟频率,只有在需要的时侯才将中断送给Linux内核。另外它使用Proc文件系统来显示资源预留和使用的情况;
3.5. Qlinux
Qlinux是由AT&T、德州大学分布式多媒体计算实验室和马萨诸塞大学高级系统软件实验室联合开发出来的一种软实时(soft real-time)核心[QLinuxWeb]。它能够为实时多媒体应用提供QoS支持。
QLinux实现了近年来操作系统领域内一些最新的研究成果,包括:
- H-SFQ资源调度算法(Hierarchical Start-time Fair Queuing)[Goyal96];
- 网络包的延迟处理技术(Lazy Receiver Processing
RP)[Druschel96];
- Cello磁盘调度算法[Shenoy98];
图3 QLinux系统结构
H- SFQ资源调度算法由由德州大学的Pawan Goyal等人提出,它采用了一种分级调度的思想,先将资源在不同的应用类别之间进行按比例分配,并在应用类别之间提供对于资源使用的隔离,同时在每一个 应用类别中还可以使用不同的资源调度算法。这样做的目的是为了在多媒体系统中提供QoS支持。
LRP技术是一种新颖的设计OS网络子系统的思想,它由Rice大学计算机系的Peter Druschel等人提出,其目的是为了解决普通Unix和类Unix系统中网络包接收的问题。
传 统的Unix系统没有对到来的网络包的协议处理的显式调度,它们一般采用中断驱动的机制。当网卡有中断时,CPU就立刻进行一系列由网卡中断程序启动的包 接收和协议处理操作,将最终的数据送给等待接收的进程,并唤醒该进程。但这种处理方式会影响应用程序资源调度的性能,并在系统处于过载状态时可能会引起一 些应用层任务的饥饿,降低网络吞吐率,甚至会让系统没有响应。为了解决这些问题,LRP的核心思想就是每一个Socket有一个IP包的队列,只有当上层 应用程序请求数据时才进行协议处理,同时对协议处理操作以请求数据的应用的优先级进行显式的调度。通过这种途径增强了资源调度的公平性,能够提供一定程度 的流量隔离,同时能够提高系统过载状态时的吞吐量。
Cello磁盘调度算法由德州大学Prashant J. Shenoy等人提出。它能够支持多种应用类别,比如:交互式尽力而为应用、大吞吐量尽力而为应用、以及软实时应用等类别,并公平地给各个类别的应用分配磁盘访问带宽。
在结构上Cello磁盘调度采用的是一种两级式的调度方式,它由多个与应用类别相关的调度器以及一个与应用类别无关的调度器组成(如图 4所示)。
图 4 Cello磁盘调度
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0