文档库 最新最全的文档下载
当前位置:文档库 › 基于模拟器的嵌入式操作系统能耗估算与分析

基于模拟器的嵌入式操作系统能耗估算与分析

基于模拟器的嵌入式操作系统能耗估算与分析
基于模拟器的嵌入式操作系统能耗估算与分析

基于模拟器的嵌入式操作系统能耗估算与分析

赵 霞

1,2

,郭 耀1,雷志勇1,陈向群

1

(1.北京大学信息科学技术学院软件研究所,高可信软件技术教育部重点实验室,北京100871;

2.北京工商大学计算机学院,北京100037)

摘 要: 随着嵌入式系统低能耗技术研究的深入,软件对系统能耗的影响越来越受到人们的关注,并向着定量分析方向发展.本文提出一种嵌入式操作系统能耗量化分析方法,通过模拟运行嵌入式操作系统和应用软件,利用微体系结构能耗模型估算单时钟周期指令能耗.提出基于软件功能结构的操作系统内核能耗估算模型并估算分析内核执行路径、服务、例程、原子函数的能耗,发现操作系统内核中显著影响系统能耗的关键软件模块及其特征.实验结果表明,本方法可以从很大程度上提高嵌入式操作系统能耗估算和分析的准确性,估算结果有助于嵌入式操作系统能耗的量化分析和操作系统及应用程序的能耗优化设计.

关键词: 嵌入式操作系统;能耗估算与分析;量化方法

中图分类号: TP393 文献标识码: A 文章编号: 0372-2112(2008)02-0209-07

Estimation and Analysis of Embedded Operating System Energy Consumption

ZHAO Xia 1,2,GUO Yao 1,LEI Zh-i Yong 1,C HEN Xiang -qun 1

(1.Institute of So ftware,Sc hool o f Ele ctronics Engine ering and Com pute r Science ,Pe king Unive rsit y ,

K e y laboratory o f High Con fidence So ftware Technologies (Pe king Unive rsity ),Ministry o f Education,Bei jing 100871,China ;

2.Colle ge o f Computer Scie nce and Tec hnology ,Be ijing Tec hnology and Business Unive rsit y ,Be ijing 100037,China)

Abstract: With the progress of low -power research on embedded systems,the estimation and analy sis of the energy con -sumption of operating system becomes a hot topic.This paper presents a quantitative approach to es timate and analyze the energy consu mption of embedded operating system (EOS).In this approach,EOS and applications are executed on two cooperated si mula -tors.Ins truction execution energy is estimated using a cycle -accurate micro -architecture power model.We propo s e an OS energy consu mption estimation model based on software functionali ty and structure.The app roach can calculate the energy consumption for functions,routines,s ervices and kernel execution paths in an EO S,and can identify the key modules and factors impacting the sys -tem energy consumption.Our experiments show that the propo sed approach improves the accuracy and efficiency of energy es tima -tion of EOS significantly.The estimation results can be used to quantitatively analyze and optimize the energy consumption of EOS and applications.

Key words: embedded operating system;energy consumption estimation and analysis;quanti tative approach

1 引言

随着嵌入式系统处理器复杂度提高和软件功能日益复杂,系统功耗不断增加.不仅硬件的设计实现对系统功耗起决定作用,系统中的软件,特别是操作系统的算法、结构等设计实现也越来越显著地影响系统能耗[1,2].为了分析影响系统能耗的关键软件设计要素,评估软件优化对系统能耗的影响,以及为动态电源管理决策提供支持,需要在软硬件设计早期阶段从软件角度对计算机系统中的各个组成部分进行能耗分析与评估.

计算机系统中软件能耗模型及评估方法的研究[3~5,8~15],成为近年来低能耗研究领域的新热点.操

作系统对系统能耗的影响以及如何优化操作系统提高系统能耗效率的问题也成为其中备受重视的问题[6,7,16,18,19].

功耗和能耗评估原本是硬件领域的概念,根据部件物理结构和电路参数等建立能耗模型[9]进行评估是常用方法之一.1994年,Tiwari 等人认为仅从硬件结构角度评估系统能耗无法满足系统级能耗评估的需求,提出软件能耗的概念.软件能耗是指令在处理器上执行过程

收稿日期:2007-05-14;修回日期:2007-08-21

基金项目:国家863高技术研究发展计划(No.2007AA01Z462,No.2007AA010304)

第2期2008年2月电 子 学 报ACTA ELECTRO NICA SINICA Vol.36 No.2

Feb. 2007

中系统部件消耗的能量[2].研究软件能耗的目的是通过把硬件能耗映射到软件结构和软件特征上,来研究软件成分对处理器功耗和能耗的影响,并利用软件设计优化技术提高系统能耗效率.

基于能耗模型和模拟器的方法是目前软件能耗估算的一种主流方法,它能够在软硬件系统开发早期阶段进行软件能耗估算和分析,不干扰软件系统的运行,不需要修改操作系统和应用程序代码.微体系结构能耗模型[9]

可以精确地估算指令执行过程中处理器各部件的能耗,比其他模型[2,10]更易于提高软件能耗估算的准确度.操作系统能耗估算比用户态软件能耗估算更为复杂,需要全系统模拟器支持操作系统模拟运行.现有的基于SPARCv9体系结构[11]和MIPS R10000体系结构[12]

的全系统模拟器,分别针对Solaris 操作系统和SGI I RI X5.3操作系统进行能耗分析.这些方法针对服务器硬件和软件,其中的能耗估算方法和工具无法直接用于嵌入式操作系统能耗估算研究.Austin 等人在Sim -pleScale r [13]的基础上开发的Power Anaylzer 能耗模型[14]和估算工具[15]

虽然针对嵌入式处理器体系结构,可以估算用户程序能耗;但不能用于操作系统能耗估算.钟伟军[16]等人提出支持嵌入式操作系统的AR M 能耗模拟器,模拟估算每个并发运行程序的能耗,但不能用于分析嵌入式操作系统内核能耗.因此,目前尚未见到能够细化分析嵌入式操作系统内核函数、例程等粒度的,基于模拟器和微体系结构能耗模型的能耗估算方法,也未见到对嵌入式操作系统内核能耗的深入分析.

本文提出的嵌入式操作系统能耗估算方法借鉴了Austin 等人的微体系结构能耗模型,通过集成全系统指令模拟器和微体系结构能耗模拟器支持嵌入式操作系统的模拟运行.提出基于软件功能结构的操作系统内核能耗估算模型,并估算内核执行路径、服务、例程、原子函数的能耗.在此基础上,对内核能耗进行了深入的分析,发现操作系统内核中显著影响系统能耗的关键软件模块及其特征,并对软件能耗优化设计方法进行讨论.

2 嵌入式操作系统能耗估算方法

本文提出的能耗估算方法由三部分组成:操作系

统目标代码的模拟执行;指令流的单时钟周期能耗的估算,不同粒度的操作系统内核模块能耗的估算.分别由全系统指令级模拟器,微体系结构能耗模拟器和内核能耗估算器来实现,如图1所示.

全系统指令级模拟器模拟嵌入式微处理器指令集的指令功能和外围系统硬件,支持嵌入式操作系统模拟运行.模拟器输入是嵌入式操作系统的可执行目标映像文件和包含应用程序的根文件系统,输出是动态

执行的指令流地址和指令码给微体系结构能耗模拟器.微体系结构能耗模拟器模拟处理器内部的流水线结构和组成部件的操作;按照各部件的能耗模型统计指令流执行过程中每个时钟周期微处理器各部件的能耗(称为单时钟周期能耗),发送到例程/服务能耗估算器.内核能耗估算器合成操作系统内核中各种粒度代码模块的能耗.本文提出基于软件功能结构分析的操作系统内核能耗估算模型:把运行时的操作系统内核看作由原子函数、例程和服务组成的软件实体和动态执行路径构成的逻辑实体,估算不同粒度的内核实体能耗.

3 单时钟周期能耗估算与能耗模型

微体系结构能耗模拟器每个时钟周期从缓冲区中取一条指令,分析该指令经过各段流水线时操作的微体系结构部件(如AL U 、Cache 、TLB 等部件),按照微体系结构能耗模型计算被访问部件的能耗.能耗模型考虑连续指令执行过程中分支延迟、流水线停顿、控制流预测失效和Cache 失效等对能耗的影响,并根据操作系统用户态到内核态转换调节微体系结构部件的能耗.每个时钟周期累计该周期内流水线上所有被访问部件的能耗和访存能耗,作为该时钟周期内的处理器能耗 单时钟周期能耗.

微体系结构部件可以抽象为Datapath 、Cac he 、Clock 和Me mory 四类和其他逻辑单元.其中,Datapath,Cache 和Clock 部件用基于CMOS 电路的功耗计算公式.设V 表示供电电压,f 表示微处理器时钟频率,C 为部件所有门输出结点电容之和, 是介于0-1之间的因子,表示门翻转的概率,I sort 表示短路电流,I l eak 表示泄漏电流.基于CMOS 技术的半导体器件功耗计算公式为

[17]

:P = CV 2f +t V I sho r t +V I leak

(1)

设N 是访问部件所用时钟周期数,则能耗的计算公式为[17]:

E =N P/f (2)

Memory 部件的能耗与活动状态的电流和访存时钟

210 电 子 学 报2008年

周期数相关,I act ive 是处于活动状态时的电流,N 是一次访存的时钟周期数.其能耗计算公式如下[18]:

E =N V I acti ve /f

(3)

根据以上部件能耗模型计算指令经过每个流水段

时各部件能耗获得单时钟周期能耗e i ,计算公式是:

e i =e dat apat h +e cache +e sram +e clock +e misc

(4)

其中,e data path 是在处理器流水线中数据路径能耗,e cache 是Cache 访问能耗,e s ram 是TLB 操作能耗,e clo ck 是时钟电路能耗,e misc 是其他逻辑单元的能耗.

4 操作系统内核的能耗估算

基于软件功能结构分析的操作系统内核能耗估算模型把运行时的操作系统内核看作由原子函数、例程和服务组成的软件实体和动态执行路径构成的逻辑实体.原子函数由连续指令序列构成,不再调用子函数,是操作系统能耗估算的最小单位.例程是若干相互调用的函数集合.服务是通过硬件陷入机制开始执行,并且具有特定函数入口的例程.服务有三种类型:系统调用、异常服务和中断服务.内核执行路径表示一个从用户态进入内核开始,到返回用户态结束的完整执行过程,是服务和例程的集合.4 1 原子函数的能耗估算

原子函数的能耗估算用指令地址标识单时钟周期能耗,累计原子函数中所有指令对应的单时钟周期能耗,作为该函数的能耗.

本文利用求和运算的可组合性并通过微体系结构模拟器处理,保证用函数所属的指令流的单时钟周期能耗之和来计算函数能耗的准确性.单时钟周期能耗不同于单条指令能耗:后者指该指令经过各段流水线部件时的能耗之和;而单时钟周期能耗是在同一个时钟周期里各段流水线部件的能耗之和,与相互关联的指令流有关.在指令顺序执行情况下,相邻指令均属于同一函数.在发生程序异常或中断时,模拟器执行完前面的指令并刷新流水线.当遇到函数调用和返回时,指令流的地址变为不连续指令,预取失效,模拟器刷新流水线,下一个函数的指令进入流水线之前,属于上一个函数的指令对应的能耗已经统计并输出,流水线停顿等的能耗算在上一个函数中.

估算函数能耗的另一个问题是判断指令是否属于某函数,关键是识别函数调用和返回.Strong AR M 体系结构平台上的嵌入式操作系统代码,利用堆栈操作、改程序计数器、中断异常等方式改变指令流进入或离开一个函数,识别指令码方法不可行.我们构造函数符号信息表和地址匹配方法来正确识别函数调用与返回,

并通过构造函数调用树来识别更复杂的程序结构.

4 2 例程和服务的能耗估算

例程是具有调用关系的函数集合,用函数调用树来表达,例程能耗由该节点的子孙节点能耗递归计算得到,即调用树根节点的能耗,记为E R outi ne =E f 0.设例程的函数调用树由节点f 0,f 1, ,f n 组成,每个节点对应一个函数,f 0是根节点.函数f i 的能耗为E f i ,属于该函数的指令集合为I f i

,其子函数为f j 1,f j 2, ,f jm ,(i

j 2<

E f i =

i I f

e i ,

不调用子函数

i I f e i + m

k =1

E f

jk

,调用子函数

(5)

构造函数调用树的过程如图2所示.

repeat:

从缓冲队列中获得指令的地址和能耗; 查找指令所属函数,将名称赋给func; IF (系统调用或异常入口)THEN 创建新树; IF (返回用户态)THEN 结束旧树建新树; c ur -node 指向当前节点; IF (func 是cur -node)THEN

把指令能耗累加到当前节点上;CO NTIN UE; 沿父指针和子指针查找,返回NULL 或节点; IF(找到节点)THEN pre -node 指向当前节点; cur -node 指向找到节点;

把pre -node 能耗加到cur -node 上; CO NTIN UE;

为当前函数创建新节点作为当前节点子节点;

图2 内核能耗估算算法

内核服务通过硬件陷入机制从特定程序入口被调用执行,通过识别特定入口地址,从指令流中发现内核服务,并为内核服务建立函数调用树,按照式(5)估算其能耗.

4 3 执行路径的能耗估算

已有的能耗分析方法[18,19]认为一个系统调用的能耗是从系统调用进入内核开始到返回用户态的软件能耗.实际上,从系统调用进入内核到返回用户态过程中,会随机性地存在中断服务等与系统调用无直接关系的内核例程/服务.因此,把这个过程的能耗全部作为系统调用的能耗会造成估算错误.

本文把从进入内核开始到返回用户态过程执行的服务和例程的集合定义为内核执行路径,并提出两种内核服务类型.显式服务定义为用户显式调用的系统调用服务,且仅包括实现该服务功能的例程,例如sys -

211

第 2 期赵 霞:基于模拟器的嵌入式操作系统能耗估算与分析

read,sys -fork 等;隐式服务定义为对应用程序透明的,不属于当前执行逻辑的内核服务,例如中断、异常处理

等.

由此,内核执行路径能耗计算分为两种情况:(1)单一执行路径:是不被中断的显式系统调用服务执行路径,其能耗为该显式服务的能耗;(2)复合执行路径:当显式服务被中断时,执行路径对应于该路径上出现的显式服务、中断服务、进程调度例程等多棵子树构成的函数调用树,其能耗为所有子树能耗的和.综上所述,执行路径能耗计算公式为:

E execpath =

E explict

-

ser vice ,单一执行路径

E explict -

ser vice +

E implict -service +

E Rou tin e ,复合执行路径

(6)

5 操作系统内核能耗分析

本文按照上述方法实现了能耗估算工具模拟Stron -gAR M -1100处理器嵌入式硬件平台,对ARMLinux 2.4.18内核进行能耗分析.工具包括经过改进的全系统指令模拟器Skyeye [20]

和微体系结构能耗模拟器Power Analyz -er [21],以及内核能耗估算器.StrongARM 处理器的微体系结构参数见表1.测试程序集包括嵌入式系统工具包busybox 和自己开发的消息通信测试程序(见表2).

表1 StrongARM -1100处理器微体系结构参数

Parameter Valu e Feature Size 0 18 m V dd 1.5V Frequency

200M Hz Fetc h/Is sue/Retire Width 2(inorder)R UU/LSQ size 4

L1I -Cac he 16KB(32B cache line,2-way ass oc.)L1D -Cache

8KB(32B cache li ne,32-way ass oc.)TLB (full ass oc)entries

32

表2 部分测试程序

功能类型交互类测试程序非交互类测试程序

文件操作cat,ls,ln,echo,more,du rm,mount,cp,gzip,gunzip,tar

网络命令ifc onfi g,ftpget,telnet

netstat 进程用户管理ps,whoami kill,chgrp,消息通信程序

M s g client

M s g server

能耗估算分析工具实时估算操作系统内核能耗,以层次列表形式输出函数调用树及其每个节点能耗(见图3),每条记录包括例程或函数名称、微体系结构能耗以及内存访问能耗.

s ys -read(micro:523 169,mem:0 000) fget(micro:3 106,me m:0 000)

proc -file -read(micro:428.426,mem:0.000) ...

free -pages(micro:8 810,me m:0 000) fput(micro:1.084,mem:0.000))

(b)s ys -read 在proc -file -read 执行路径上的能耗

s ys -read(micro:14962.155,mem:164.220) fget(micro:3.106,mem:0.000)

tty -read(micro:14953.539,mem:139.230) ...

cpu -idle(micro:14924.231,mem:42.840) -

irq -svc(micro:31.205,me m:0.000)

fput(mic ro:1.132,mem:0.000)

)

(c)sys -read 在tty -read 执行路径上的能耗

图3 不同执行路径下的例程能耗

5 1 不同类型程序下服务调用次数及能耗特征

从软件能耗分析的角度,本文把测试程序划分为非交互型和交互型两类(如表2所示).交互型程序在执行过程中要等待用户输入或者向屏幕输出;非交互型程序开始执行后不进行用户交互.

从图4可见两类程序对应的内核能耗特征如下:

(1)交互型程序的处理器空闲(a rch -idle)能耗所占比例显著高于非交互性程序,前者占总能耗的81%;后者占总能耗的3%.人机交互造成大量的处理器空闲造成能耗浪费.

(dabt -usr)和预取异常处理(pabt -.在所有的内核服务,在交互程序中,在非交互程序中占总数的57%.原因是平台上的AR MLinux 2.4采用虚拟存储器

212 电 子 学 报

2008年

技术,通过频繁的缺页异常和预取异常处理把代码和数据加载到内存.

(3)系统调用次数与能耗在两类应用程序中有较大差别.在交互程序中,系统调用次数之和占总数的37%,比非交互程序中所占比例高17%,但能耗之和所占比例只有8%,比后者低34%.可见,非交互程序中系统调用能耗是较主要部分,由于空闲能耗比例较大,所以交互程序中系统调用能耗不太显著.

综上所述,交互式系统中处理器空闲是能耗主要来源,而非交互程序中的异常处理是能耗主要来源,优化这部分内核例程和服务是降低内核能耗的途径之一.另外,通过改进设备I/O例程功能和内核调度策略,或通过动态功耗管理和电压/频率调节减少处理器空闲和高功耗状态也可以达到降低系统能耗的目的.

5 2 例程/服务的功能与能耗关系分析

分析结果表明,内核例程/服务能耗与其功能的复杂度有较大关联.表3给出部分内核例程/服务能耗估算结果的统计和分类.

表3 部分例程与服务的能耗

类别例程/服务名执行

次数

能耗(uJ)

平均值最低值最高值标准偏差

ID 操作s ys-getegid25 4.99 3.529.51 1.70 s ys-geteui d20 3.12 2.1437.59 1.91 s ys-getgid20 2.17 1.95 2.710.18 s ys-getpgrp19 3.03 2.15 4.970.97 sys-getpid19 1.550.20 2.170.41

进程控制

-

s witch-to110 1.24 1.08 1.780.16 -

tas klet-schedule69 1.090.93 1.660.19 -

wake-up427 2.780.20 5.970.77 wake-up-process30 5.48 3.048.57 1.30 schedule1138.77 1.0428.677.80

内存访问

sys-brk14712.21 4.4529.607.00 s ys-fork2489.4073.10113.7311.04 sys-e xecv24453.31372.001219.60164.83 sys-exit21138.34115.81188.5019.09 s ys-clone643.8825.1872.3916.24

文件系统s ys-stat647753.3420.25243.3629.11 sys-open4471.6329.2445.9462.105 sys-wri te29180.9738.72204.9432.71 sys-read26644.748.10355.0040.78 sys-close6678.448.02330.5893.59

IO 读写tty-read19723.7412.4735.474 4.64 tty-write29171.8831.46197.7832.31

异常中断处理-

dabt-s vc3946.0432.98165.1520.53 -

pabt-user121134.27191.27402.6937.36 -

irq-s vc24434.129.5086.5712.41 do-ti mer8416.79 6.6232.05 4.70

根据功能和能耗特征,可以把内核例程/服务分为I D操作、进程控制、内存访问、文件系统、I/O读写、异常中断处理六大类.其能耗特征如下:

(1)功能简单的例程能耗低,能耗值稳定.由原子

函数组成的I D操作服务,如sys-ge tpid等读取进程信息,能耗平均值不超过5uJ.部分内核例程,如进程上下文切换(

-

switch-to)、唤醒进程(wake-up-process)能耗平均值不超过10uJ,标准偏差不超过2.

(2)功能复杂的服务和内核执行路径在不同情境下能耗差别大,如进程管理、内存管理、文件系统服务.从图3的函数调用树及能耗估算结果可见,系统调用引发的内核执行路径在不同情况下代码执行量和能耗差别很大,值得仔细分析.

(3)需要关注单次执行能耗显著和总能耗显著的内核例程/服务.进程管理相关的服务有较多的内存和

外存操作,单次执行能耗较大.如sys

-

e xecv加载新程序

执行,能耗开销为453 31uJ.又如sys

-

fork进程创建服

务,能耗为89 40uJ;线程创建服务sys

-

clone能耗为43 88uJ,如果用内核线程代替进程来实现操作系统并发操作,可减少进程管理带来的能耗、时间和内存开销.另外,通过减少这类例程/服务的调用次数或者优化这些服务/例程是降低系统的能耗的重要途径.

5 3 内核执行路径中的隐式服务能耗

我们对由系统调用引发的内核执行路径能耗进行深入分析,发现异常、中断、进程调度等内核服务/例程等隐式能耗是内核能耗中不可忽视的部分,虽然不被应用程序所感知,但由于其随机性和频繁性,会对系统调用能耗估算带来误差.目前尚未看到相关研究涉及该问题.

表4 s ys

-

read执行路径中显式和隐式服务能耗试验结果

内核执

行路径

能耗

显式调

用(uJ)

Tty中断

服务(uJ)

进程调

度(uJ)

Idle进

程(uJ)

Timer

中断

显式服务能

耗所占比例tty-read

异步读

1170541130101476482.40%

23060320226930301470.06%

31568930169415435510.19% generic-

file-

read

1123784500063.41%

2137855200062.04%

340400000100%

413130000100%

以sys

-

read为例,表4给出系统调用sys-read陷入内核后,执行路径上显式服务和隐式服务执行情况及

其能耗.表中列出两种执行实例,一种是通过tty

-

read 异步读用户从键盘输入的字符.内核执行路径包括tty 设备驱动程序等待输入,进程进等待队列,执行空闲进程,用户输入引发中断处理,最终把输入数据复制到用户缓冲区.此情况下,执行了tty中断、进程调度、Timer 中断等隐式服务,特别是Idle进程消耗了大量的时间和能量,显式服务的能耗所占的比例不到3%.另一种generic-file-read读取文件,调用数据缺页异常服务把文件从Flash读到内存,显式服务所占的比例为62 04%

213

第 2 期赵 霞:基于模拟器的嵌入式操作系统能耗估算与分析

~63 41%.

5 4 关于操作系统内核能耗优化问题的讨论

从上文分析结果可以看出,操作系统内核能耗具有一定的规律与特征,操作系统内核对系统能耗的影响与以下几方面因素有关:

(1)应用程序对内核服务的调用次数决定内核对系统能耗影响所占的比例;

(2)不同功能的内核服务例程,由于访问资源和算法不同,能耗差异较大;

(3)由用户交互造成的处理器空闲等待是交互系统中处理器能耗主要来源。

根据以上因素的分析,可以从以下几方面优化设计来降低系统能耗:

(1)优化应用程序结构和流程设计,减少对能耗显著例程/服务的调用次数,或改进进程间通信方式;

(2)优化操作系统的进程管理、异常和预取处理等例程/服务,如减少进程调度次数,或减少不必要的中断和异常处理;

(3)改进I/O例程/服务功能与设计和内核调度策略,或通过动态电压/频率调节减慢程序执行速度,减少处理器空闲。

此外,也可以根据本方法得出的能耗估算结果设计能耗估算宏模型[12,22],利用宏模型来评估和优化操作系统和应用软件设计。

6 结论

目前没有适用的测量方法来分析操作系统内核的软件能耗,而低能耗设计领域又非常需要能够评价和分析嵌入式系统软件能耗的手段.本文提出了一种基于模拟器的估算嵌入式操作系统能耗的方法,并对嵌入式操作系统进行了能耗估算和分析.本文的贡献在于:(1)用基于微体系结构能耗模型的模拟器估算操作系统能耗,达到时钟周期精度.(2)基于指令流地址分析过滤方法,有效判别函数调用关系;(3)提出基于软件功能结构的操作系统内核能耗估算模型,实现对操作系统内核函数、例程、服务和内核执行路径等多种粒度能耗分析.(4)通过分析发现影响内核能耗的隐含和随机因素,对正确估算应用程序和操作系统能耗有重要意义.该方法有助于提高嵌入式操作系统内核能耗分析和优化的准确性,有效支持操作系统及应用软件的能耗评估与优化设计.本方法独立于具体的处理器类型和操作系统,可以与其他指令级模拟器和微体系结构能耗模拟器集成为新的操作系统能耗估算工具.

参考文献:

[1]李允,罗蕾,熊光泽.面向普适计算的自适应技术研究

[J].电子学报.2004,32(5):740-744.

Li Y,Luo L,Xiong G.The Adaptive T echnolo gy for Pervasive Computing[J].A cta Electronica Sinica,2004,32(5):740-744.(in Chinese)

[2]Tiwari V,malik S,wolfe A.Power analysis of embedded soft-

ware:A first step towards software power minimization[J].

IEEE Transactions on Very L arge Scale Integration.1994,2

(4):437-444.

[3]Hu C,Jimenez D A,Kremer U.Toward an evaluation infras-

tructure for power and energy optimizations[A].Proceedings 19th IEEE International Parallel and Distribu ted Processing Symposium[C].Lo s Alamitos,California:Ieee compu ter soc-i ety Press,2005.8-14.

[4]Chandra K,Selim G.A run-time,feedback-based energy es t-i

mation model For embedded devices[A].Pro ceedings of the 4th international conference Hardware/software codesign and system synthesis[C].Seoul,Korea,2006.

[5]Dunkels A,Sterlind F,T siftes N,et al.Software-bas ed on-line

energy estimation for sens or nodes[A].In Proceedings of the Fourth Workshop on Embedded Networked Sensors(Emnets IV)[C].New York:ACM Press,2007.23-27.

[6]Banerjee K S,A gu E.PowerSpy:fine-grained s oftware energy

profiling for mobile devices[A].International Conference on Wireless Networks,Communications and Mobile Computing

[C].Los Alamitos,California:Ieee computer s o ciety Press,

2005.1136-1141.

[7]Li T,John L K.Operating system power minimization through

run-time processor resource adaptation[A].M icroprocessors and Microsystems[C].Guildford,Surrey,England:IPC Science and Technology Press,2006.173-224.

[8]粟雅娟,魏少军.针对分布式系统的快速能耗估计方法及

应用[J].电子学报.2005,33(9):1706-1709.

Su Yajuan,Wei Shao Jun.A fast energy-aware design tech-nique for dis tributed rea-l time sy s tems[J].A cta Electronica Sinica,2005,33(9):1706-1709.(in Chinese)

[9]Brooks D,Tiwari V,M artonosi M.Wattch:A framework for

architectura-l level power analysis and optimizations[A].27th Annual International Sympo sium on Computer Architecture

[C].2000.

[10]T an T K,Raghunathan A,Jha N K.Software architecture

transformations:a new approach to low energ y embedded

software[A].D esign,Automation and Test in Europe Confer-

ence and Exhibition(DATE 03)[C].2003.11046.

[11]Chen J,Dubo is M,Stenstrom P.Integrating complete-system

and user-level performance/power simulators:the SimWattch approach[A].IEEE International Sympo sium on Performance Analysis of Systems and Software[C].L os Alamitos,Califor-nia:Ieee computer society Press,2003.1-10.

[12]Gurumu rthi S,Sivasubramaniam A,Irwin M J,et https://www.wendangku.net/doc/701674264.html,ing

214 电 子 学 报2008年

complete machine simulation for software power estimation:

The softWatt approach[A].Proceedings of the International Symposium on High Performance Compu ter Architectu re[C].

Cambridge,M A:M organ Kaufmann Publishers,2002.141-

150.

[13]A us tin T M.A U ser s and Hacker s Guide to the Sim-

pleScalar Architectural Res earch Too l set[EB/OL].http:// https://www.wendangku.net/doc/701674264.html,/~skadron/cs654/slides,2003-08-20.

[14]M udge T,A ustin T.sim-panalyzer2.0-Reference M enual[Z].

University of M ichigan,University of Colorado,2002. [15]M udge T,A us tin T,Gru nwald D.The PowerAnaly zer project

[EB/OL].https://www.wendangku.net/doc/701674264.html,/~tnm/power/.

2003-09-02.

[16]钟伟军,刘明业.支持嵌入式操作系统的ARM能耗模拟

器设计[J].计算机应用研究.2006(4):219-221.

Zhong W,Liu M.Design of ARM energy consumption simu-lator supporting embedded operating system[J].Application Research of Computers.2006,(4):219-221.(in Chinese) [17]Chandrakasan A P,Sheng S,Brodersen R W.Low-power

CMOS dig ital design[J].IEEE Jo u rnal of Solid-State Cir-

cuits.1992,27(4):473-484.

[18]D ick R P,L aks hminarayana G,Raghu nathan A,et al.Power

analysis of embedded operating systems[A].Proceedings of the37th Conference on D esign Automation[C].L os Alam-i

to s,California:Ieee computer society Press,2000.312-315.

[19]Acquaviva A,Benini L,Ricco B.Energy characterization of

embedded rea-l time operating systems[A].Workshop on Compilers and Operating Systems for L ow Power,COLP 01

[C].New York:ACM Press,2001.13-18.

[20]陈渝.源码开放的嵌入式系统软件分析与实践 基于

SkyEye和ARM开发平台[M].北京:北京航空航天大学出版社,2004.

Chen Y.The Analysis and Practice on Open Sou rce Embedded System Software Based on SkyEye and ARM Developing Platform[M].Beijing:Beihang University Press,2004.(in Chinese)

[21]M udge T,Austin T,Grunwald D.PowerAnalyzer for Pocket

Compu ters.[EB/OL].http://www.eecs.u https://www.wendangku.net/doc/701674264.html,/~

tnm/power/,2002-02-10.

作者简介:

赵 霞 女,1972年生于甘肃迭部,北京大

学信息科学技术学院博士生,北京工商大学副教

授.研究方向为系统软件、低能耗软件设计与软

件工程.

E-mail:z haoxia@https://www.wendangku.net/doc/701674264.html,

郭 耀 男,1976年生于山西襄汾,北京大

学信息科学技术学院讲师,2007年获得美国马

萨诸塞大学计算机工程博士学位.研究方向为系

统软件、低功耗系统设计、编译技术、软件工程

等.

雷志勇 男,1982年生于湖南,硕士研究生.研究方向为系统软件.

陈向群 女,1961年生于北京,北京大学信息科学技术学院教授.研究方向为系统软件与软件工程.

215

第 2 期赵 霞:基于模拟器的嵌入式操作系统能耗估算与分析

三种常用的嵌入式操作系统分析与比较

三种常用的嵌入式操作系统分析与比较 摘要:提要三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同点及各自的适用范围。 1 嵌入式系统与嵌入式操作系统 1.1 嵌入式系统 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。 嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。 1.2 嵌入式操作系统 嵌入式操作系统EOS (Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、调度作,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而方的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点: ①可装卸性。开放性、可伸缩性的体系结构。 ②强实时性。EOS实时性一般较强,可用于各种设备控制当中。 ③统一的接口。提供各种设备驱动接口。

嵌入式系统课程复习题

1、何谓嵌入式系统?嵌入式系统与传统计算机有何区别?嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统(简称“嵌”)和传统计算机(简称“传”)的主要区别包括以下几点:形式与类型:传:实实在在的计算机。按其体系结构、运算速度和规模可分为大型机,中型机,小型机和微机嵌:“看不见”的计算机,形式多样,应用领域广泛,按应用进行分类。组成:传:通用处理器、标准总线和外设、软硬件相对独立嵌:面向特定应用的微处理器,总线和外设一般集成在处理器内部,软硬件紧密结合。系统资源:传:系统资源充足,有丰富的编译器、集成开发环境、调试器等嵌:系统资源紧缺,没有编译器等相关开发工具。开发方式:传:开发平台和运行平台都是通用计算机嵌:采用交叉编译方式,开发平台一般是通用计算机,运行平台是嵌入式系统。二次开发性:传:应用程序可重新编程嵌:一般不能重新编程开发。发展目标:传:编程功能电脑,普遍进入社会嵌:变为专用电脑,实现“普及计算”。 2、主流的嵌入式操作系统有哪几种?各有何特点?①传统的RTOS,特点:提供了高效的实时任务调度、中断管理、实时的系统资源以及实时的任务间通信。②嵌入式Linux操作系统,特点:免费、开源、支持软件多等。③Android系统,特点:不存在任何以往阻碍移动产业创新的专利障碍,是一个为移动终端构建的真正开放和完整的系统软件。④Windows CE 嵌入式操作系统,特点:具有模块化、结构化和基于Win32应用程序接口和与处理器无关等⑤μC/OS-Ⅱ实时操作系统,特点:包括了一个操作系统最基本的一些特性,并且是一个代码完全开放的实时操作系统,简单明了的结构和严谨的代码风格。 3、主流的嵌入式微处理器有哪几种?各有何特点?①ARM,特点:体积小,低功耗,低成本,高性能;能很好地兼容8位/16位器件;大量使用后寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行高效;指令长度固定。②MIPS,特点:尽量利用软件办法避免流水线中的数据相关问题。③PowerPC,特点:有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量④x86,特点:对以前的处理其保持了良好的兼容性,但是限制了CPU性能的提高。⑤Motorola 68000,特点:是CISC结构. 4、例举你在生活中使用过的嵌入式系统,并分析其系统构成。 5、从当前人们的生活、工作、娱乐等方面来看,未来嵌入式系统的发展趋势如何?你认为未来将会出现哪些嵌入式产品?网络化,信息化,智能化,网络互连,移动互联成为必然趋势!实现手写输入、语音输入、语音播报的一班嵌入式产品。 第2 章ARMCortexM3 微处理器基础 1、ARM 微处理器有什么特点?ARM 微处理器常用于哪些领域?特点:体积小,低功耗,低成本,高性能;能很好地兼容8位/16位器件;大量使用后寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行高效;指令长度固定。领域: ①工业控制领域②无线通讯③网络应用④消费类电子产品⑤成像和安全产品 2、简述 CM3 是如何处理异常的。1、CM收到中断服务请求2、CM判断向量表是否重映射,并从对应的中断入口取址 3、CM内核将MSP装入SP寄存器。并修改CONTROL[1]为0。 4、CM 内核进入特权级,并修改CONTROL[0]为0 5、CM内核修改ICSR、SHCSR、XPSR等寄存器 6、CM内核根据CONTROL[1]将R0-R3、R12、LR、PC、XPSR寄存器存入MSP或PSP栈 7、CM内核将LR修改为EXC_RETURN的特殊值 8、CM内核调入中断向量表,跳转至中断入口处。 3、简要说明 CM3 处理器的存储器系统特点及映射分区。特点:存储器映射是预定义的,并且规定了那个位置使用哪条总线。支持位带操作,实现了在特殊的存储器区域对单一比特的原子操作。分区:代码区,片上SRAM区,片上外设区,片外RAM去和片外外设区,私有外设区,芯片商指定区。

嵌入式操作系统实验指导书1

嵌入式操作系统实验 实验一 Linux常用命令 一.实验目的 1. 熟悉VMware Workstation虚拟机的使用。 2. 熟悉ubuntu操作系统。 3. 掌握常用的Linux命令。 二.实验设备 硬件:PC机。 软件:VMware Workstation虚拟机、ubuntu操作系统。 三.实验内容 1.基于虚拟机的Linux操作系统的使用。 2.文件与目录相关命令的使用。 3.磁盘管理与维护命令的使用。 4.系统管理与设置命令的使用。 5.网络相关命令的使用。 6.压缩备份命令的使用。 四.实验步骤 1.基于虚拟机的Linux操作系统的使用 (1)启动VMware Workstation应用程序,启动windows以后,点击开始→程序→VMware→VMware Workstation,出现如图1所示界面。

图1 启动VMware Workstation (2)点击菜单File Open选择安装好的Linux虚拟机文件,或者直接点击Start this virtual machine启动Linux操作系统。 (3)启动系统后需要输入用户名和密码,如图2所示,这里用户名为root,密码为“123456”。 图2输入用户名和密码 (3)启动终端,成功进入系统后,选择应用程序->系统工具->终端,如图3所示。 图3 启动终端 (4)在终端中执行Linux命令,终端运行以后,就可以在这里输入Linux命令,并按回车键执行,如图4所示。

图4运行Linux命令 2.文件与目录相关命令的使用 理解12个常用的文件与目录相关命令的使用,完成如下练习。 (1)查询/bin目录,看一看有哪些常用的命令文件在该目录下:ll /bin (2)进入/tmp目录下,新建目录myshare: cd /tmp mkdir myshare ls -ld myshare/ (3)用pwd命令查看当前所在的目录 pwd (4)新建testfile文件 touch testfile ls -l (5)设置该文件的权限模式 chmod 755 testfile ls -l testfile (6)把该文件备份到/tmp/myshare目录下,并改名为testfile.bak。 cp testfile myshare/testfile.bak ls -l myshare/ (7)在/root目录下为该文件创建1个符号连接。 ln -s /tmp/testfile /root/testfile.ln ls -l /root/testfile.ln (8)搜索inittab文件中含有initdefault字符串的行。 cat /etc/inittab | grep initdefault 3.磁盘管理与维护命令的使用 理解2个磁盘管理与维护命令,完成如下练习。 (1)Linux下使用光盘步骤: ?确认光驱对应的设备文件:ll /dev/cdrom ?挂载光盘:mount -t iso9660 /dev/cdrom testdir ?查询挂载后的目录:ll /media/cdrom ?卸载光盘(umount testdir)umount /dev/cdrom (2)Linux下USB设备的使用 ?挂载U盘,看看系统认出的盘(或者使用#fdisk -l)。cat /proc/partitions

嵌入式操作系统精彩试题集61374

第一章嵌入式系统概论 一.填空 1. 嵌入式系统是以嵌入式应用为目的、以计算机技术为基础的计算机系统。 2. 计算机系统按应用可以分为通用计算机系统和嵌入式计算机系统。 3. 嵌入式系统按软件结构可分为嵌入式单线程系统和嵌入式事件驱动系统。 4. 嵌入式系统按是否具有实时性能可分为嵌入式非实时系统和嵌入式实时系统。 5. 嵌入式实时系统除具有嵌入式系统的基本特征外,还具实时性和可靠性的重要特点。 6. 嵌入式系统的硬件架构是以嵌入式处理器为中心,由存储器,I/O设备,通信模块以及电源等必要的辅助接口组成。 7. 嵌入式系统的软件通常固态化存储在ROM、FLASH或NVRAM中。 8. 嵌入式系统的开发由于受到系统资源开销的限制,通常采用交叉开发环境。 9. 嵌入式系统开发采用的交叉开发环境是由宿主机和目标机组成的。 10. 嵌入式系统的设计是使用一组物理硬件和软件来完成所需功能的过程。 二.选择 1. 以下哪一项不属于嵌入式操作系统(C) A.VxWorks B. WinCE C. BSD D. uClinux 2. 以下关于嵌入式系统说确的是(A) A.以开发为中心 B 对实时,成本,功耗要求严格 C.软硬件协同 D 软件可剪裁 3. 以下关于嵌入式系统说确的是(A) A.嵌入的系统中可以共存多个嵌入式系统 B.对高性能要求严格

C.软硬件缺乏协同 D.不要时性 4. 对响应时间有严格要求的嵌入式系统是(A) A.嵌入式实时系统 B.嵌入式多线程系统 C.嵌入式多核系统 D.嵌入式轮转询问系统 5. 以下哪一项属于嵌入式系统不具备的特点(B) A.采用专用处理器 B. 跨平台可移植 C.软硬件协同一体化 D.小型化与有限资源 6. 嵌入式系统硬件的核心是(B) A.存储器 B.嵌入式微处理器 C.嵌入式微控制器 D.BSP 7. 嵌入式系统的软件部分不包括(A) A.DSP B.嵌入式操作系统 C.设备驱动程序D.应用程序 8. 对性能要求高的嵌入式系统是(C) A.嵌入式实时系统 B.嵌入式多线程系统 C.嵌入式多核系统 D.嵌入式轮转询问系统 9. 嵌入式应用软件的开发阶段不包括(D) A.交叉编译和 B.开发环境的建立 C.联机调试 D.应用程序模块加载 10. 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都保存在(A) A.存储器芯片 B.磁盘 C.cache D.CDROM

常见的嵌入式操作系统

常见的嵌入式操作系统 分类:嵌入式操作系统2012-12-11 10:06 459人阅读评论(1) 收藏举报嵌入式操作系统 嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠。 2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。 3.面向应用,强实时性,可用于各种设备控制当中。 国际上常见的嵌入式操作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone等,系统有Microsoft的WinCE,3Com 的Palm,以及Symbian和Google的Android等。 一、VxWorks VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是T ornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。 然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。 二、Windows CE Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操

基于Linux嵌入式操作系统的研究

基于Linux 嵌入式操作系统的研究 李红卫1,潘瑜1,王树亮2,薛小锋1 (1.江苏技术师范学院计算机科学与工程学院,江苏常州213001; 2.江苏技术师范学院图书馆,江苏常州213001) 摘要:从Linux内核实时性、实时调度策略以及时钟细粒度定时器三个方面,对Linux嵌入式实时化技术进行了探讨。在内核中插入抢占点或采用双内核系统,改善Linux的实时性能;通过动态优先级提高实时任务的调度性能;通过增加时钟中断频率或采用实时时钟一次性模式,实现时钟细粒度。 关键词:Linux;嵌入式系统;实时性;进程调度 中图分类号:TP316.2文献标识码:A 0引言 嵌入式系统是集软硬件于一体可独立工作的计算机系统,它通常是更大系统中一个完整的部分[1]。 在早期的嵌入式系统设计中一般不包含操作系统,但当系统越来越复杂、应用范围越来越广泛时,没有操作系统已成为系统开发的最大障碍;因此,在嵌入式系统的发展中,出现了各种各样的商用嵌入式操作系统。嵌入式操作系统的出现改变了以往嵌入式软件设计只能针对具体的应用从头做起,使嵌入式系统的开发方法更具科学性;同时,采用嵌入式操作系统提高了系统的开发效率,减少了开发的工作量,增强了软件的可移植性。操作系统成为嵌入式系统的核心,是一个时代的特征,也是嵌入式系统从简单的单片机、微处理器走向愈来愈复杂的嵌入式SOC和CPU的自然体现[2]。开源Linux操作系统的出现,给嵌入式操作系统的发展带来生机,将Linux应用于嵌入式系统开发环境中已十分广泛;但就目前而言,嵌入式Linux的研究成果与市场的真正需求仍有一段差距,还需要在嵌入式Linux系统的实时性、进程调度等方面对其进行不断的改进和完善。 1改造Linux为嵌入式操作系统的分析 实时系统最重要的特征是实时性,实时性是指系统对外部事件的响应和处理要在一个给定的时间内 完成,即计算必须在到达死线(deadline)前完成[1]。根据丢失死线的容忍程度可将实时系统分为硬实时系 统和软实时系统:硬实时系统必须保证任务在到达死线之前完成,丢失死线将会引发灾难;软实时系统能保证任务在死线之前完成,但死线的丢失并不会带来致命的错误。 在大多数嵌入式系统应用中往往要求系统具有实时性。虽然Linux是一个分时操作系统,但其符合POSIX1003.1b关于实时扩展部分的标准,尤其Linux2.6的推出给嵌入式系统以及实时系统的应用带来生机。将Linux改造为嵌入式实时操作系统具有(1)Linux功能强大、(2)开放源码、(3)支持多种硬件平台、(4) 收稿日期:2006-02-21;修回日期:2006-04-03 基金项目:江苏技术师范学院科研基金资助项目(KYY04001) 作者简介:李红卫(1966-),男,山西阳城人,江苏技术师范学院计算机科学与工程学院副教授。 JOURNALOFJIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY江苏技术师范学院学报 Apr.,Vol.12,No.22006 2006年4月第12卷第2期

(完整word版)嵌入式系统复习及答案

一、单项选择题 1、下面关于哈佛结构描述正确的是(A )。 A、程序存储空间与数据存储空间分离 B、存储空间与IO空间分离 C、程序存储空间与数据存储空间合并 D、存储空间与IO空间合并 2、下面哪一种工作模式不属于ARM特权模式(A )。 A、用户模式 B、管理模式 C、软中断模式 D、FIQ模式 3、ARM9TDMI的工作状态包括( D )。 A、测试状态和运行状态 B、挂起状态和就绪状态 C、就绪状态和运行状态 D、ARM状态和Thumb状态 4、指令“LDMIA R0!, {R1, R2, R3, R4}”的寻址方式为( C )。 A、立即寻址 B、寄存器间接寻址 C、多寄存器寻址 D、堆栈寻址 5、对寄存器R1的内容乘以4的正确指令是( C )。 A、LSR R1,#2 B、LSL R1,#2 C、MOV R1,R1, LSL #2 D、MOV R1,R1, LSR #2 6、下面指令执行后,改变R1寄存器内容的指令是( D )。 A、TST R1,#2 B、ORR R1,R1,R1 C、CMP R1,#2 D、EOR R1,R1,R1 7、下面哪一种功能单元不属于I/O接口电路。( D ) A、USB控制器 B、UART控制器 C、以太网控制器 D、LED 8、下面哪个操作系统是嵌入式操作系统。(B ) A、Red-hat Linux B、μCLinux C、Ubuntu Linux D、SUSE Linux 9、使用Host-Target联合开发嵌入式应用,( B )不是必须的。 A、宿主机 B、银河麒麟操作系统 C、目标机 D、交叉编译器 10、下面哪个系统不属于嵌入式系统( D )。 A、MP3播放器 B、GPS接收机 C、“银河玉衡”核心路由器 D、“天河一号”计算机系统

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

嵌入式操作系统期末考试答案

填空 1、嵌入式系统是以应用为中心、以计算机技术为基础、软硬件可裁剪、适用于应用系统,对(功能)、(可靠性)、(成本)、(体积)、(功耗)严格要求的专用计算机系统。 2、嵌入式系统开发采用的交叉开发环境是由(宿主机)和(目标机)组成的。 3、挂载设备到文件系统的命令是(mount),从文件系统中卸载设备命令是(umounts)。 4、在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面,进入vi之后,是处于 (命令)模式,要切换到(编辑)模式才能够输入文字。 5、GCC的编译流程分为4个步骤,分别为:(预处理),编译,(汇编),链接。 6、Linux系统的设备分为三类:(字符设备)、(块设备)和网络设备。 7、操作系统的功能包(处理机管理)、(存储管理)、(设备管理)、(信息管理)、(作业管理)。 选择 1、下面哪点不是嵌入式操作系统的特点。(C) (A)内核精简(B)专用性强(C)功能强大(D)高实时性 2、嵌入式Linux下常用的文件系统不包括以下哪一项(A) (A)nfs(B)romfs(C)yaffs(D)jffs 3、下面关于Shell的说法,不正确的是:(D) (A)操作系统的外壳(B)用户与Linux内核之间的接口程序(C)一个命令语言解释器(D)一种和C语言类似的程序语言 4、在Bootloader()模式下,目标机可以通过通信手段从主机更新系统。(B) (A)启动加载模式(B)下载模式(C)实时模式(D)保护模式 5、文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是: (A) (A)chmoda+xg+wexer1(B)chmod765exer1(C)chmodo+xexer1(D)chmodg+wexer1 6、在vi编辑环境中,下面()选项不是从命令行模式切换到插入模式。(C) (A)i(B)o(C)ESC(D)a 7、shell变量名命名中不包括()。(D) (A)字母(B)数字(C)下划线(D)括号 8、下列关于字符设备说法不正确的是()。(C) (A)以字节为单位逐个进行I/O操作(B)字符设备中的缓存是可有可无的 (C)支持随机访问(D)字符设备可以通过设备文件节点访问 9、以下哪一项是是硬盘设备文件()。(B) (A)fd0(B)hda(C)eth1(D)ht0 10、共享内存通信机制的缺点是()。(B) (A)需要花费额外的内存空间(B)需要使用额为的同步机制 (C)需要额外硬件支持(D)通信过程中需要反复读取内存,时间开销大 简答题 1.嵌入式操作系统在哪些方面较为突出的特点并请列举出4种目前较常用的手机嵌入 式操作系统。 四个方面:系统实时高效性硬件的相关依赖性软件固态化应用的专用性 四种手机操作系统:Window Mobile SymbianOSAndriod OSE

几种主流嵌入式操作系统分析

几种主流嵌入式操作系统分析 1.嵌入式Linux 嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化 在容量只有几KB或者几MB 字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。 这与它自身的优良特性是分不开的。 嵌入式Linux 同Linux 一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux 还在Linux 基础上 做了部分改进,如下所示。 ? 改善的内核结构 Linux 内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这____________样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、 资源有限的特点不相符合。因此,在嵌入式系统经常采用的是另一种称为微内核(Microkernel) 的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断 处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际 需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。 ? 提高的系统实时性 由于现有的Linux 是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行 和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux 作为底层 操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等 各种领域。 嵌入式Linux 同Linux 一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux 的主要版本如表4.1所示。 表4.1 嵌入式Linux主要版本 版本简单介绍 μCLinux 开放源码的嵌入式Linux 的典范之作。它主要是针对目标处理器没有存储管理单元 MMU,其运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备 的支持,并提供标准丰富的API RT-Linux 由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。它已有广泛的应用 Embedix 根据嵌入式应用系统的特点重新设计的Linux发行版本。它提供了超过25种的Linux 《嵌入式Linux应用程序开发详解》——第4章、嵌入式系统基础 系统服务,包括Web服务器等。此外还推出了Embedix的开发调试工具包、基于图 形界____________面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 :安磊 班级:计科0901 学号: 0909090310 指导老师:宋虹

目录 课程设计容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------ 6 文件系统的层次结构和功能模块 --------------------- 6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录 -------------------------------------------------- 12

课程设计容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统核,它仅仅包含了任务调度,任务管理,时间管理,存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时核,并在这个核之上提供最基本的系统服务,如信号量,,消息队列,存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

LInux嵌入式操作系统期末试题

简答题:请简单概括什么是嵌入式系统、并举出嵌入式系统的特点;(6分) 答: 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统; 其特点如下: (1)嵌入式系统是面向特定系统应用的。 (2)嵌入式系统涉及计算机技术、微电子技术、电子技术、通信和软件等各个行业; 是一个技术密集、资金密集、高度分散、不断创新的知识集成系统; (3)嵌入式系统的硬件和软件都必须具有高度可定制性;只有这样才能适应嵌入式系统应用的需要,在产 品价格和性能方面具备竞争力; (4)嵌入式系统的生命周期相当长。 (5)嵌入式系统不具备本地系统开发能力,通常需要有一套专门的开发工具和环境。 嵌入式操作系统的优势:1.低成本开发系统 2.可应用多种硬件平台 3.可定制内核 4.性能优异 5.良好的网络支持 linux文件类型:1.普通文件2.目录文件3.链接文件4.设备文件a.块设备文件(硬盘:/dev/hda1)b.字符设备(串行端口接口设备) linux文件属性:访问权限:r:可读w:可写x:可执行用户级别:u:文件拥有者g:所属用户组o:其他用户第一个字符显示文件类型:- 普通 d 目录 l 链接… 简答题:(6分) linux目录结构:/bin 存放linux常用操作命令的执行文件(二进制文件) /boot 操作系统启动时所需要的程序 /dev Linux系统中使用的外部设备 /etc 系统管理时所需要的各种配置文件和子目录 /etc/rc.d Linux启动和关闭时要用到的脚本 /etc/rc.d/init Linux默认服务的启动脚本 /home 系统中默认用户工作根目录 /lib 存放系统动态链接共享库 /mnt软驱、光驱、硬盘的挂载点 /proc存放系统核心与执行程序所需信息、 /root超级用户登陆时的主目录 /sbin 存放管理员常用系统管理程序 /usr存放用户应用程序和文件 /var存放日志信息(答六点即可) 编写一个shell文件:创建studen01 –student30这30个用户,用户组为class1,之后编写shell文件,删除所有用户 操作步骤:1.打开Terminal(终端): 2.输入vi shell 3.输入i 进入编辑模式 4.输入 #!/bin/bash groupadd class1 for((i=1;i<10;i++)) do username=student0$i

五大适合STM32的嵌入式操作系统

五大适合STM32的嵌入式操作系统 基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系统(djyos)。下面分别介绍这五种嵌入式操作系统的特点及不足。1、μClinuxμClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比, μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。 μClinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度,仅针对中低档嵌入式CPU特点进行改良,且不支持内核抢占,实时性一般。 在内存管理上由于μClinux是针对没有MMU的处理器设计的,不能使用处理器的虚拟内存管理技术,只能采用实存储器管理策略。系统使用分页内存分配方式,在启动时对实际存储器进行分页。系统对内存的访问是直接的,操作系统对内存空间没有保护,多个进程可共享一个运行空间,所以,

即使是一个无特权进程调用一个无效指针也会触发一个地 址错误,并有可能引起程序崩溃甚至系统崩溃。 μClinux操作系统的中断管理是将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。 μClinux对文件系统支持良好,由于μClinux继承了Linux完善的文件系统性能,它支持ROMFS、NFS、ext2、MS-DOS、JFFS等文件系统。但一般采用ROMFS文件系统,这种文件系统相对于一般的文件系统(如ext2)占用更少的空间。但是ROMFS文件系统不支持动态擦写保存,对于系统需要动态保存的数据须采用虚拟RAM盘/JFFS的方法进行处理。在对硬件的支持上,由于μClinux继承了Linux的大部分性能,所以至少需要512KB的RAM空间,lMB的ROM/Flash 空间。 在μClinux的移植方面,。μClinux是Linux针对嵌入式系统的一种改良,其结构比较复杂。移植μClinux,目标处理器除了需要修改与处理器相关的代码外,还需要足够容量的外部ROM和RAM。 综上可知,μClinux最大特点在于针对无MMU处理器设计,

嵌入式操作系统的种类与特点

1.3.1 嵌入式操作系统的种类、特点与发展 1.嵌入式操作系统的种类 一般情况下,嵌入式操作系统可以分为两类: 非实时操作系统:面向消费电子产品等领域,这类产品包括个人数字助理(PDA)、移动电话、机顶盒、电子书等。 实时操作系统RTOS(Real-Time Embedded Operating System):面向控制、通信等领域,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx等。 (1)非实时操作系统 早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中断来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其它中断。 实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过FIFO队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其它任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要RAM/ROM的额外开销,因而在简单的嵌入式应用被广泛使用。 (2)实时操作系统 所谓实时性,就是在确定的时间范围内响应某个事件的特性。而实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。 实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。实时操作系统可分为可抢占型和不可抢占型两类。 嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。 从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。 操作系统的实时性在某些领域是至关重要的,比如工业控制、航空航天等领域。想像飞机正在空中飞行,如果嵌入式系统不能及时响应飞行员的控制指令,那么极有可能导致空难事故。有些嵌入式系统应用并不需要绝对的实时性,比如PDA播放音乐,个别音频数据丢失并不影响效果。这可以使用软实时的概念来衡量。

嵌入式系统复习题

一、 单项选择题 1、在CPU和物理内存之间进行地址转换时,( B)将地址从虚拟(逻辑)地址空间映射到物理地址空间。 A.TCB B.MMU C.CACHE D.DMA 2、进程有三种状态:( C)。 A.准备态、执行态和退出态 B.精确态、模糊态和随机态 C.运行态、就绪态和等待态 D.手工态、自动态和自由态 3、以下叙述中正确的是(C)。 A.宿主机与目标机之间只需要建立逻辑连接即可 B.在嵌入式系统中,调试器与被调试程序一般位于同一台机器上 C.在嵌入式系统开发中,通常采用的是交叉编译器 D.宿主机与目标机之间的通信方式只有串口和并口两种 4、中断向量是指(C)。 A.中断断点的地址 B.中断向量表起始地址 C.中断处理程序入口地址 D.中断返回地址 5、在微型计算机中,采用中断方式的优点之一是(C)。 A.简单且容易实现 B.CPU可以不工作 C.可实时响应突发事件 D.传送速度最快 6、在ARM处理器中,(A)寄存器包括全局的中断禁止位,控制中断禁止位就可以打开或者关闭中断。 A.CPSR B.SPSR C.PC D.IR 7、嵌入式系统的三要素下面哪一个不是:( B )。 A、嵌入 B、存储器 C、专用 D、计算机 8、μCOS-II操作系统属于( B )。 A、顺序执行系统 B、占先式实时操作系统 C、非占先式实时操作系统 D、分时操作系统 9、ARM寄存器组有( C )个状态寄存器。 A、7 B、32 C、6 D、37 10、C++源程序文件的默认扩展名为( A )。 A、cpp B、exe C、obj D、lik 11、在下列ARM处理器的各种模式中,( D )模式有自己独立的R8-R14寄存器。 A、系统模式(System) B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ)

嵌入式操作系统实验一建立交叉编译环境

嵌入式操作系统实验一建 立交叉编译环境 Last updated on the afternoon of January 3, 2021

嵌入式操作系统实验报告 队友:张圣苗亚 实验内容 1、准备工作工作:安装virtualbox虚拟机工具,并安装系统、增强型工具,实现共享文件夹的自动挂载。 2、利用crosstool提供的脚本安装和相关资源编译面向的ARM的GCC工具。 详细内容1:安装虚拟机软件和虚拟机时要完成的主要步骤有:安装virtualbox,建立一台虚拟机,分配内存和硬盘,指定共享文件夹(主机和虚拟机可共同操作),指定操作系统镜像文件路径(相当于光盘,第一次启动时安装),安装虚拟操作系统,安装增强工具包,实现共享文件夹的自动挂载。有几点需要注意: 1、虚拟硬盘尽量分配大一些,之后再扩就比较麻烦。 2、共享文件夹不要有中文路径,不然挂载后看不到中文名称文件。 3、安装操作系统时,不能断网,需要下载各种资源,不然会异常。 详细内容2需要安装与脚本相关的工具,需要修改crosstool中的配置文件以指定编译的目标位arm-linux。需要修改需要的资源 实验步骤 实验准备: 在实验准备中,在安装完增强工具包()并重启之后,需要实现对共享文件夹的自动挂载,只需要修改etc目录中的配置文件,是很多linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务、程序等,都可以放在里面。 $sudomkdir/mnt/share $sudomount-tvboxsfembedded/mnt/shared 上面三句话实现了将共享文件夹embeded挂载到了share上。 gedit/etc/ 将第2句命令添加在exit之前,实现了自动挂载功能。 实验一 一、搭建编译环境 1、安装于脚本运行相关及其他的工具bison、flex、build-essential、patch、libncurses5-dev。

相关文档