浅析VxWorks和Linux嵌入式实时操作系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总 之 ,VxWorks是 一 个 优 秀 的 嵌 入 式 操作系统,尤其是其具有良好的网络性能, 在涉及网络的应用方面也有一定的优势, 是 目 前 嵌 入 式 系 统 领 域 中 使 用 最 广 泛 、市 场占有率最高的系统。
2 嵌入式Linux
嵌入式Linux是指对桌面Linux经过修 改裁减使之小型化后,可固化在芯片中,应 用 于 特 定 嵌 入 式 场 合 的 各 种 专 用 Linux操 作 系 统 。要 把 Linux用 于 嵌 入 式 系 统 ,需 要 对 Linux内 核 做 一 些 改 动 ,才 能 与 嵌 入 式 系 统的要求相适应。 2.1 嵌入式Linux的优势
寻找拥有这个IP别名的服务器。
ifconfig lo:0 210.38.0.88 broadcast
210.38.0.88 netmask 255.255.255.255 up #在后端服务器上绑定IP别名
rout add –host 210.38.0.88 dev lo:
0 #设置路由规则
仅仅实现流量的负载均衡还不能实现
在 Linux内 核 基 础 上 进 行 实 时 性 扩 展 , 它 的 基 本 原 理 是 在 原 有 Linux基 础 上 再 设
(下转38页 )
36
科技创新导报 Science and Technology Innovation Herald
科技创新导报 2010 NO.14 Science and Technology Innovation Herald
VxWorks也 有 一 些 不 足 ,如 :它 的 任 务 间 通 信 机 制 虽 然 比 较 多 ,包 括 管 道 、互 斥 信 号 量 、共 享 数 据 结 构 、消 息 队 列 、信 号 量 、套 接字及信号灯,但是却不支持两种基本的 方 式 即 邮 箱 和 事 件 。因 此 ,在 实 现 多 个 任 务 在多个事件间同步时必须由开发者自己开 发 这 两 种 同 步 手 段 。在 两 个 任 务 之 间 交 换 最新的信息时不能使用邮箱,因而不得不 使用消息队列,在一定程度上影响了交换 信息的速度。
VxWorks具 有 较 强 的 网 络 功 能,是 最 早 在 内 核 中 加 入TCP/IP网络协议的嵌入 式操作系统,并且最早支持网络文件系统
NFS。对 于 外 部 设 备 ,VxWorks提 供 了 对 不 同 设 备 上 的 设 备 无 关 I/O操 作 。VxWorks还 是 最 先 支 持 RISC处 理 器 的 嵌 入 式 操 作 系 统。 1.2 VxWorks嵌入式系统的不足
VxWorks为 用 户 提 供 了 高 效 的 实 时 多 任 务 调 度 、中 断 管 理 、实 时 的 任 务 间 的 通 信 等 功 能 。系 统 包 含 进 程 管 理 、存 储 管 理 、设 备 管 理 、文 件 系 统 管 理 、网 络 协 议 栈 及 系 统 应用等部分,并且可以裁减,以保证较高的 运行效率。
lb_algo wrr #采用的负载均衡算法
lb_kind DR #采用直接路由模式
persistence_timeout 120
#(同一
IP的 连 接 120秒 内 被 分 配 到 同 一 台 后 端 服
务器
protocol TCP #用TCP协议检查后
端服务器状态
}
real_server 210.38.0.20 80 { weight 3 #权重设置
及如何将通用 Linux 系统进行实时性的改造方法,及在选择实时性嵌入式操作系统时考虑的具体内容。
关键词:VxWorks Linux 嵌入式 实时操作系统
中图分类号: T P 2 7 3 . 5
文献标识码: A
文章编号:1674-098X(2010)05(b)-0036-02
嵌入式实时操作系统应用十分广泛, 包 括 数 据 通 信 、信 息 家 电 、航 空 航 天 、工 业 控 制 、生 物 医 学 电 子 、船 舶 工 程 、计 算 机 外 设 、电 信 设 备 、交 通 运 输 、国 防 武 器 控 制 等 领 域 。VxWorks和 Linux是 被 广 泛 使 用 的 嵌 入式实时系统。
对于Linux进行实时性能的改进有两类 方 法 :一 种 是 改 进 Linux内 核 本 身 ,另 一 种 是 在 Linux内 核 基 础 上 进 行 实 时 性 扩 展 。
对Linux内核本身进行改进主要集中在 任务的抢占性方面,这类改进有两种方法: 一种是在内核中增加抢占点法,另一种是 把 内 核 改 成 抢 占 式 内 核 。其 中 增 加 抢 占 点 法 比 较 简 单 ,但 获 得 的 性 能 并 不 是 很 好 。其 方法是在内核运行的比较长的路径中插入 若干个检测操作,由此来监测系统中是否 有高优先级的任务等待运行,如果有,则将 其 调 入 运 行 。而 把 内 核 改 成 抢 占 式 内 核 的 方法可以获得非常好的实时性能,但是对 内核的改动难度和幅度都比较大。
Linux的 资 源 非 常 丰 富 ,全 世 界 有 众 多 的 Linux爱 好 者 和 技 术 人 员 ,而 且 越 来 越 多 的 人 们 陆 续 加 入 到 Linux行 列 中 来 ,这 是 对 Linux开 发 的 强 大 的 技 术 支 持 。这 也 是 其 他 嵌入式系统厂商很难做到的。
Linux的 源 码 开 放 ,这 样 开 发 人 员 就 可 以从系统源码入手直接对系统进行改写, 得到一个适合特定硬件环境的系统。
Linux是 一 个 高 度 模 块 化 、可 裁 减 的 系 统,因而十分便于用户定制一个适用于某 一个具体嵌入式产品要求的系统。
Linux是 免 费 的 ,比 其 他 的 系 统 在 价 格 上 有 很 大 优 势 ,这 使 得 开 发 、使 用 系 统 的 成 本很低。
1 VxWorks
VxWorks是美国Wind River公司开发 的专门为实时嵌入式系统设计的操作系 统,它能够在多种微处理器上运行,在多种 平台上为用户提供一个统一的编程接口和 一致性的运行特性,屏蔽了不同硬件平台 之间的底层差异,使用户能够将更多的精 力 投 入 到 应 用 程 序 本 身 的 设 计 、开 发 和 优 化上,减少受系统资源及底层硬件的困扰, 使得应用程序可以方便地在不同环境之间 移植,有效地保护了用户的开发。 1.1 VxWorks嵌入式系统的特性
#10秒无响应超
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
4 性能测试
为 了 测 试 LVS-DR的 负 载 均 衡 能 力 ,我 们同时还架设了基于反向代理调度器的负 载均衡系统,分别对其进行压力测试,以方 便 分 析 对 比 。测 试 采 用 静 态 内 容 ,分 别 对 服 务 器 吞 吐 率 、数 据 流 量 等 进 行 了 对 比,结果 显 示 ,随 着 流 量 压 力 的 不 断 加 大 ,基 于 LVS-DR模 式 的 负 载 均 衡 系 统 在 数 据 吞 吐 率 与 流 量 等 方 面 表 现 出 明 显 的 优 势 。可 见 , 基 于 LVS-DR模 式 的 真 实 服 务 器 的 响 应 数 据包由于不经过调度器而直接发往用户 端,使数据流量与吞吐率都成倍提高,有效
I T 技 术
地降Fra Baidu bibliotek调度器转移请求的开销,提高系统 整体性能。
TCP_CHECK { connect_timeout 10 时
#10秒无响应超
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 210.38.0.21 80 {
weight 3
TCP_CHECK { connect_timeout 10 时
转发选项:
echo 1 > /proc/sys/net/ipv4/
ip_forward
同时,在调度器将网卡绑定IP别名: Ifconfig eth0:0 210.38.0.88 #在调
度器上绑定IP别名
在后端实际服务器上配置与调度器相
同 的 IP别 名 ,并 设 置 路 由 规 则 ,阻 止 服 务 器
Linux本 身 不 是 一 个 实 时 操 作 系 统 ,它 在运行过程中,最关心的是系统的整体处 理 能 力 和 吞 吐 量 等 。在 Linux的 进 程 调 度 中,任务是不可抢占的,因此不能保证紧急 的 任 务 能 够 得 到 优 先 、及 时 的 响 应 。而 且 , Linux把 所 有 进 程 都 放 在 一 个 队 列 中 ,采 用 先进先出与时间片轮转相结合的方法来调 度运行,所以对于实时进程的响应没有优 先 权 ,而 且 可 能 被 不 重 要 、不 紧 急 的 任 务 所 中 断 。另 外 ,Linux的 内 存 管 理 采 用 通 用 操 作系统的常规做法即虚拟内存管理方式, 由 此 产 生 的 查 询 、换 页 等 操 作 也 影 响 了 系 统 的 实 时 性 。Linux在 响 应 中 断 时 采 取“ 关 闭 中 断 ”的 模 式,这 种 模 式 可 以 保 证 在 中 断 响应过程中内核不再重入,但是后来的中 断就不能得到及时的响应。
VxWorks的 中 断 处 理 与 普 通 任 务 使 用 不同的栈来处理,这样,中断的产生只会引 起一些关键寄存器的存储而不会导致任务 的 切 换 , 从 而 减 小 了 中 断 处 理 的 时 延 。另 外,中断处理程序只完成在最短时间内通 告中断的发生这样的工作,而将其他的非 实时处理内容放到被触发的中断服务程序 中来完成,这进一步减小了中断处理的时 延,而且增加了中断响应的吞吐量。
Linux可 以 适 应 多 种 硬 件 平 台 ,可 移 植
性 好 。并 且 在 Linux系 统 中 ,各 种 各 样 的 硬 件 厂 商 一 般 也 都 提 供 基 于 Linux的 驱 动 程 序 ,即 使 厂 家 没 有 提 供 ,也 很 容 易 开 发 出 来。
Linux自 身 具 有 很 多 功 能 模 块 ,另 外 还 有很多第三方公司开发了大量的功能组件 库 ,如 ,网 络 协 议 栈 、各 种 文 件 系 统 、图 形 界 面 等 ,这 些 庞 大 的 资 源 大 多 是 免 费 的 、开 源 的,这样在为嵌入式系统增加新的功能时 比较容易。 2.2 Linux用于嵌入式系统的不足与改进
对后端服务器的灵活调度,通过keeplived可
以实现后端服务器的故障隔离及负载均衡
器 间 的 失 败 切 换 。安 装 keeplived后 ,根 据 系
统需求按如下转发策略进行设置:
virtual_server 210.38.0.88 80 {
delay_loop 10 #每隔10秒查询后端
服务器状态
进 行 负 载 均 衡 的 构 建 。Linux系 统 在 内 核2. 6.x的 版 本 内 都 内 置 了 了 IPVS模 块 ,因 此 无
须 重 新 编 译 就 可 以 直 接 使 用 这 功 能 。IPVS 通 过 ipvsadm进 行 管 理 ,安 装 好 ipvsadm后 ,
首先需要按如下命令打开调度器的数据包
VxWorks的 任 务 调 度 策 略 以 可 抢 占 式 调度来优先响应高优先级任务,再辅以时 间片轮转调度算法来并发执行多个相同优 先 级 的 任 务 。这 种 调 度 方 式 可 以 优 先 处 理 优先级比较高的紧急任务,优先保证紧急 而重要的任务的实时性,而在同等优先级 的任务之间则可以并发地执行。
科技创新导报 2010 NO.14 Science and Technology Innovation Herald
I T 技 术
浅析 VxWorks 和 Linux 嵌入式实时操作系统
李月军 陈刚 (长春理工大学光电信息学院 长春 130012)
摘 要:本文探讨了具有硬实时处理能力的嵌入式实时操作系统 VxWorks 的特性及不足, Linux 系统应用于嵌入式系统的优势、不足
相关文档
最新文档