MOS微型操作系统的设计与实现.pdf

上传人:asd****56 文档编号:70349787 上传时间:2023-01-19 格式:PDF 页数:4 大小:321.93KB
返回 下载 相关 举报
MOS微型操作系统的设计与实现.pdf_第1页
第1页 / 共4页
MOS微型操作系统的设计与实现.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《MOS微型操作系统的设计与实现.pdf》由会员分享,可在线阅读,更多相关《MOS微型操作系统的设计与实现.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、嵌入式操作系统应用中文核心期刊 微计算机信息)(嵌入式与S O C)2 0 0 8 年第2 4 卷第9-2 期文章编号:1 0 0 8-0 5 7 0(2 0 0 8)0 9 2-0 0 2 2-0 3MOS 微型操作系统的设计与实现D e s i g na n dI m p l e m e n t a t i o no fM O SM i n iO p e r a t i n gS y s t e m陋苏技术师范学院)李红卫L IH o n g-w e i摘要:本文介绍一个基于I n t e l8 0 x 8 6C P U 实模式下的多任务微型操作系统M O S 的设计与实现。着重阐述了M

2、O S 的层次结构、内存布局、引导程序设计、进程管理、上下文切换、信号量管理、内存管理、文件系统、I,0 管理、用户接口以及M O S 命令处理程序。M O S 可作为嵌入式操作系统。它易于扩充和移植。关键词:M O S 微型操作系统;层次结构;进程;上下文切换中图分类号:T P 3 1 6文献标识码:AA b s t r a c t:T h ep a p e ri n t r o d u c e st h ed e s i g na n dt h eI m p l e m e n t a t i o no fas i m p l em u l t i t a s km i n io p e

3、r a t i n gs y s t e m(M O S)b a s e dO i lI n t e l8 0 x 8 6C P Ur e a lm o d e l I te x p o u n d st h eh i e r a r c h i c a ls t r u c t u r eo fM O S,m e m o r yl a y o u t,d e s i g no fb o o t s t r a p,p r o c e s sm a n a g e m e n t,c o n t e x ts w i t c h,s e m a p h o r em a n a g e m e

4、 n t,m e m o r ym a n a g e m e n t,f i l es y s t e m,I Om a n a g e m e n t,u s e ri n t e r f a c ea n dM O Sc o m m a n dp r o-c e s s o r M O Sc a nb ea 8ae m b e d d e do p e r a t i n gs y s t e m I t se x t e n s i b l ea n dp o r t a b l e K e yw o r d s:M O Sm i I I io p e r a t i n gs y s

5、 t e m;h i e r a r c h i c a ls t r u c t u r e;p r o c e s s;c o n t e x ts w i t c h1 引言在嵌入式系统开发中往往需要一个微型操作系统,而目前常用的操作系统复杂而庞大,为此,本文提出设计一个简单的基于I n t e l8 0 x 8 6C P U 实模式下的多任务实时微型操作系统M O S(M i n iO p e r a t i n gS y s t e m),实现了处理机与进程管理、存储管理、设备管理、文件系统,中断管理等功能,能很好地应用在嵌入式系统开发中。2M O S 系统结构及内存布局M O S

6、微型操作系统采用层次式模块化结构,如图1 所示。最底层的硬件和硬件之上的R O M B I O S 是P c 机本身具有的,M O S 依赖于R O M B I O S。M O S I O S(M O SI n p u t O u t p u tS y s t e m)层是M O S 系统的输入,输出层,提供了基本的输入,输出功能。在M O S I O S 之上是各种管理模块,包括进程控制、信号量管理、时钟管理、内存管理、文件系统和I O 管理等功能,这些功能通过M O S 提供的系统调用为用户程序服务。M O S 命令处理程序是用户操作计算机的接口。M O S 系统运行于I n t e l8

7、 0 x 8 6C P U 实模式下,可管理的内存空间为1 M B,图2 是M O S 系统内存布局。整个内存空间分为三部分,第一部分是系统空间,从0 x 0 0 0 0 0 至0 x 3 1 f f f 共2 0 0 K B;第二部分是用户空间,从0 x 3 2 0 0 0 至0 x 9 f f f f 共4 4 0 K B;第三部分是P c 机保留的空间,从0 x a 0 0 0 0 至0 x f f f f f 共3 8 4 K B。3M O S 引导程序的设计当P C 机加电后,首先执行R O M B I O S 初始化系统,然后将引导盘中的引导记录装入内存O x T C 0 0 处并

8、执行,由引导记李红卫:教授硕士基金项目:江苏省高校自然科学研究资助项目:项目名称:R T E M S 嵌入式实时操作系统的研究;颁发部门:江苏省教育厅(0 6 K J D 5 2 0 0 5 2)录完成操作系统的加载。M O S 系统以1 4 4 M B 的3 5 寸软磁盘为载体,其引导记录在软盘的0 面0 道l 扇区。本系统充分利用这一扇区的5 1 2 个字节实现更多的功能,通过软中断I N TO x 9 0 实现读,写磁盘扇区,读,写文件分配表,查找文件簇号等基本功能。图l 的M O S l O S 的功能代码包含在引导程序中。引导程序的主要功能是初始化M O S 运行环境,把M O S

9、系统装入内存,并将C P U 控制权交给M O S,因此,引导程序需要在磁盘中寻找M O S 系统文件,找到后将其装入内存并运行。应用程序用户调用M O S 系统调用接口M O S 命令处理程序M O S 系统调用接口内存管k 件系lx o程控理模块碑模块珲模块陆模块碑模块模块M O S O SR O M B I O SI硬件l图1M O S 操作系统层次结构O x F F F F FO x F 0 0 0 0O x l 0 0 00 x C 0 0 0 00 x A 0 0 0 00 x 3 2 0o x l 2 咖l 查竺苎竺垫堡竖!望竺生o x 0 2 0 0 0I竺型塑婴o x o l

10、 F Ii i 量蕉壁鲍丛空回o x o l D Ii!曼塑壁0 x 0 0 9 0 0!耋堡垃匿楚基出O x 0 0 5 I 一!堕堡壁邕i!K 星1 0 x 0 0 4 0 0l里!Q!墼坦蝰i 堑g)0 x o D o主堑回曼耋【!曼l圈2M O S 系统内存布局图一2 2 3 6 0 元年邮局订阅号:8 2-9 4 6曩一 万方数据匿蔓鎏受雯亟耍雯亘羽嵌入式操作系统应用4M O S 各功能模块的设计4 1 进程管理M O S 系统采用可剥夺调度方式,以优先级高者优先的调度算法分配处理机。进程可在就绪、运行和阻塞三个状态之间变迁,其状态转换如图3 所示。获得处理机的进程处于运行状态,在就

11、绪链表中等待处理机的进程为就绪状态,运行中的进程因等待事件的发生进入阻塞状态。用于进程控制的系统调用有三个:(1)创建进程S y s C r e a t e P r o c:创建进程的主要工作是为新创建的进程申请一个空闲的进程控制块P C B、一个堆栈,并初始化堆栈和填写P C B 信息,然后以优先级大小将新创建的进程插入到就绪链表中,等待进程调度程序的调度。f 2)删除进程S y s D e l P r o c:处于运行状态的进程可将自己删除。f 3)进程延迟S y s T i m e D l y:执行该系统调用使处于运行状态的进程睡眠若干个时钟。当某一进程睡眠时间到,会由时钟中断处理程序将

12、其唤醒。图3M O S 系统中进程三状态转换图4 2 进程上下文切换因M O S 系统采用优先级高者优先调度算法,因此,就绪链表中的进程需按优先级大小进行排列,其链首进程就是当前正在运行的进程。涉及进程调度的两个全局变量,一个是M O S P C B C u r,它代表当前正在处理机上运行的进程,一个是M 0 s R D L P c B,它代表就绪链表的首进程。通常情况下这两个变量值应该相等,若不相等,则说明当前就绪链表发生了变化,或者来了一个更高优先级的进程,或者当前运行的进程由于阻塞而离开就绪链表,此时进程调度程序应重新选择就绪链表中的首进程来运行。当发生进程调度时,最重要的步骤是进程上下

13、文切换。在M O S 系统中进程的运行环境存放在各自的堆栈中,因此上下文切换的工作不难想像,其实现步骤如下:(1)将当前运行进程的运行环境保存在它的堆栈中;(2)将堆栈信息睢栈的段地址和栈顶指针)保存在它的进程控制块P C B中;(3)将M O S R D L P C B 的值赋给变量M O S P C B C u r,使就绪链表的队首进程成为当前运行进程;(4)从M O S P C B C u r 所指进程的进程控制块P C B 中恢复该进程的堆栈空间;f 5 1 从栈中恢复M O S P C B C u r 所指进程的运行环境;(6)实现进程上下文切换。M O S 系统的进程上下文切换是通

14、过执行软中断指令I N TO x 8 1 实现的,在进入和退出该中断处理程序时所用的堆栈是不一样的,进入时用的是被切换下来的进程的堆栈,退出时用的是将要运行的进程的堆栈,M O S 系统正是利用这一特点实现进程上下文切换。4 3 信号量管理在M O S 系统中定义了信号量,利用信号量实现进程的同步与互斥。与信号量相关的系统调用有四个:(1)创建信号量S y s C r e a t e S e m:创建一个信号量对象,并为该信号量赋初值,返回信号量对象标识,在应用程序中根据信号量对象标识对信号量进程操作。(2)删除信号量S y s D。I S e m:删除指定的信号量。(3)P 操作P:对指定的

15、信号量对象执行P 操作,当执行P 操作后,信号量值小于0 时,进程将阻塞在信号量的等待队列中,并引起进程调度,否则调用者进程继续运行。(4)V 操作v:对指定的信号量对象执行v 操作,当信号量值小于等于0 时,将唤醒信号量等待队列中的队首进程,插入就绪链表中,并引起进程调度,否则调用者进程继续运行。4 4 内存管理在M O S 系统中,从内存地址0 x 2 2 0 0 0 开始的6 4 K B 内存作为内存堆供应用程序使用。采用首次适应可变式分区存储管理技术,使用带辅助位示图的位示图数据结构对内存进行管理。将内存按节划分,每一节大小固定,比如3 2 B,位示图中的每一位对应一个节,由位的值反映

16、该节是已分配状态(0)还是未分配状态f 1 1。辅助位示图与位示图结合起来实现内存的回收。在初始化时,位示图的所有位为1,表示所有内存空闲,辅助位示图的所有位为0,表示每一节都可以是分配的起点。当某一进程申请大小为N 节的一段内存,则在位示图中查找连续N 个为1 的位,找到后将这N 位清0,其对应的辅助位示图除第一位不变仍为0 外其余位置l。即在辅助位示图中,值为l 的位表示该位对应的节与它的前一位对应的节属于同一个段;值为0 的位表示该位对应的节是一个段的起始节,或表示这个节未分配出去。如图4 所示位示图与辅助位示图,从位示图的前两行看,已分配出去的节有:第0 节至第4 节,第7 节至第1

17、2 节。对照辅助位图可知,已分配出去的1 1 节是4 个段,其中第1 段占用第0 节至第3 节,第2 段占用第4 节,第3 段占用第7 节至第l O节,第4 段占用第1 1 节和第1 2 节。00OOO1lOO1llOO OOO 0 0001lllll0lO OOllll111lO0 0 0O0OOl11】J1ll0O0 OO0 0O(a)位示图辅助位示图图4 位示图与辅助位示图内存管理根据位示图和辅助位示图非常容易地实现内存的分配和回收。在M O S 系统中提供了两个用于内存管理的系统凋用,分别是:(1)申请内存S y s M e m A l l o c a t e:申请N 节大小的内存空间

18、。(2)释放内存S y s M e m F r e e:释放内存空间,提供释放内存空间的起始地址即可将内存归还给系统。4 5 文件系统F A T 文件系统是常用的文件系统,在M O S 系统中实现了F A T 文件系统,并提供了与文件操作相关的5 个系统调用,分别是:(1)在磁盘上创建一个新文件S y s C r e a t e F i l e。(2)打开一个已存在的文件S y s O p e n F i l e。(3)3 写文件S y s W r i t e F i l e:向文件中写信息。(4)读文件S y s R e a d F i l e:读文件内容。(5)关闭文件S y s C I

19、o s e F i l e:关闭已打开的文件。4 6 I O 管理由于外围设备特性各异,因而I O 管理是操作系统中最复杂的模块。在M O S 系统中实现了串行通信设备管理,提供了4个用于串行通信设备管理的系统调用,分别是:(1)打开串行通信设备S y s O p e n l 0:该系统调用的主要功能是对串口C O M l 和C O M 2 初始化,并允许8 2 5 9 A 可响应它们发来的中断。初始化一2 3 万方数据嵌入式操作系统应用中文核心期刊(嵌入式与S O C)2 0 0 8 年第2 4 卷第9-2 期时设置传输位8 位,停止位1 位,无校验码,波特率为J i a n g s uT

20、e a c h e r sU n i v e r s i t yo fT e c h n o l o g y,M a s t e rd e g r e e,R e 1 9 2 0 0 b p s。(2)写串行通信设备S y s W r i t e I O:首先将要写的信息s e a r c hA r e a:E m b e d d e dO p e r a t i n gS y s t e m 放到输出缓冲区中;其次,允许串口产生发送中断信号请求。(2 1 3 0 0 1 江苏技术师范学院)李红卫(3)读串行通信设备S y s R e a d I O:因串行通信中断处理程序处理(2 1 3 0

21、 0 1 江苏技术师范学院计算机科学与工程学院江苏常接收中断时,已将数据存人输入缓冲区中,故该系统调用,只需州)李红卫到输入缓冲区中取数据即可。若输人缓冲区为空,则返回0 x f f(S c h o o lo fC o m p u t e rS c i e n c ea n dE n g i n e e r i n g,J i a n g s u表示无数据可读,否则从输入缓冲区中读一个数据返回。(4)关T e a c h e r sU n i v e r s i t yo fT e c h n o l o g y,C h a n g z h o u2 1 3 0 0 1,C h i-闭串行通信

22、设备S y s C l o s e l O:将串口中断屏蔽即可实现关闭串n a)L IH o n g w e i行通信设备。通讯地址:(2 1 3 0 0 1 江苏省常州市育英路2 号江苏技术师范学4 7 用户接口院)李红卫M O S 操作系统向用户提供了1 8 个系统调用,系统调用总的入口地址通过中断向量实现,其中断向量码为0 x 8 0。当用户使用系统调用时,将功能号和各输人参数放入指定的寄存器中,通过执行软中断指令I N TO x 8 0 实现系统调用。上述过程需要使用汇编指令来实现,这给用户编程带来一定的困难,因此,M O S 系统向用户提供以函数形式使用系统调用的功能,比如创建进程系

23、统调用S y s C r e a t e P r o c,在用户编程创建进程时使用的函数原型是:u n s i g n dM o s C r e a t e P r o cf u n s i g n ds e g V。u n s i g n do f-f V,c h a rp r i o),该函数有三个形参,前两个形参分别是被创建进程代码的段地址值和偏移量,第三个形参是被创建进程的优先级。函数返回值为被创建进程的进程标识。通过使用函数简化了用户程序的设计。4 8M O S 命令处理程序M O S 命令处理程序给用户使用计算机提供一个控制台文本接E l,通过键盘输入命令。在系统启动时,M O S

24、 命令处理程序创建一个I D L E 的系统进程,其优先级最低。由它负责接收用户键盘输入,并执行相应的命令。命令分为内部命令和外部命令,内部命令只有一个显示磁盘目录的D I R 命令,外部命令是以文件的形式存储在磁盘中,文件采用E X E 可执行文件格式。当I D L E 接收到外部命令时,在磁盘中查找外部命令,并将其装入内存为其创建新的进程,然后让它运行。当系统中有用户进程时,I D L E 一直处于循环等待用户进程的结束,一旦系统中没有用户进程,I D L E 又重新接收键盘命令。5 结束语本文创新点:基于P C 机设计和实现一个简单的功能较全的M O S 多任务微型操作系统,整个系统源代

25、码2 千余行,采用层次结构设计模型,除引导程序与部分关键代码使用汇编语言编写外,大部分代码使用c 语言编写,易于对系统扩充和移植。目前,作者正着手将M O S 移植到基于A R M 技术的S 3 C 4 4 B O X处理器上。另外,将M O S 系统应用在操作系统课程的实践教学中也是一个不错的选择。参考文献1 L a b r o s 鸵JJ 邵贝贝译源码公开的实时嵌入式操作系统U C O S I I(第2 版)【M 1 北京:北京航空航天大学出版社,2 0 0 3【2 1 于渊自己动手写操作系统f M l|E 京:电子工业出版社,2 0 0 63 1 张志义,谢凯年嵌入式实时操作系统P e

26、t O S 设计与实现 微计算机信息,2 0 0 7,7 2:4 3-4 5作者简介:李g T J(1 9 6 6 一),男(汉族),山西阳城人,江苏技术师范学院副教授,硕士,主要研究方向:嵌入式操作系统。B i o g r a p h y:L IH o n g-w e i(1 9 6 6-),m a l e,A s s o c i a t ep r o f e s s o ro f(收稿日期:2 0 0 8 0 7 2 3)(修稿日期:2 0 0 8 0 9 0 5)(上接第5 0 页)5 结束语提出了一种基于单片机的温控系统软件和硬件的设计方案。采用8 位单片机和1 6 位A D 变换器相

27、组合构成温度采集系统进一步提高系统的性价比。采用数字P I D 控制使温控精度在3 0 0 5 0 0 范围内达到I。C,并可实现温度设定值的连续可调。采用铂电阻温度测量电路,并利用软件对测量精度进行自校准;通过电压前馈控制减少电网干扰。加入了光电隔离措施及过热自动保护和报警功能,增强了系统的安全性能。本文作者创新点:采用更现代的控制方法f 预报自适应控制),通过仿真验证其控制效果与P I D 比较可得到进一步改善,实现后有一定的应用价值。参考文献【l】邹继军基于S J A l 0 0 0 的C A N 总线系统智能节点设计叨单片机与嵌入式系统应用2 0 0 1,1 2,2 6 3 1【2】陆

28、前锋基于C A N 控制器S J A l 0 0 0 的智能高速控制系统设计f J l 电子设计应用,2 0 0 3,1,4 2 4 4【3】张娟,陈杰,蔡振江基于多传感器数据融合的温室温度采集阴微计算机信息,2 0 0 7,1-1:1 5 3 1 5 4【4】孙延维,房晓东基于V B 的计算机温度采集系统设计与实现 J】微计算机信息。2 0 0 7,8-2:1 2 2 1 2 3 作者简介:刘江文(1 9 7 1 1,男,江苏东海人,讲师,硕士,主要研究方向:智能检测与控制;童敏明f 1 9 5 6 一),男,浙江龙游人。中国矿业大学教授,博士生导师,主要研究方向:传感器及检测技术;戴冠秀(

29、1 9 似),男,安徽淮南人,高级工程师,硕士,主要研究领域:自动化控制。B i o g r a p h y:L I UJ i a n g-w e n(1 9 7 1 一),B o r ni nJ i a n g s uD o n g h a i,L e c t u r e r,M a s t e rD e g r e e,R e s e a r c hA r e a s:I n t e l l i g e n tM e a s u r e m e n ta n dC o n t r 0 1(2 2 1 1 1 6 徐州徐州建筑职业技术学院机电工程系)刘江文戴冠秀(2 2 1 0 0 8 徐州

30、中国矿业大学信电学院)童敏明(X u Z h o uI n s t i t u t eo fA r c h i t e c t u r a lT e c h n o l 0 2 y,X u Z h o u,2 2 1 1 1 6)L I UJ i a n g-w e nD A IG u a n x i u(1 h eI n s t i t u t eo fI n f o r m a t i o na n dE l e c t r i c a lE n g i n e e r i n g C h i n ao fU n i v e r s i t yo fM i n i n ga n dT e

31、c h n o l o g y X u Z h o u。2 2 1 0 0 8 1T O N GM i n-m i n g通讯地址:(2 2 1 1 1 6 徐州市泉山区学苑路2 6 号徐州建筑职业技术学院机电系1 刘江文(收稿E l 期:2 0 0 8 0 7 2 3 1 f 修稿日期:2 0 0 8 0 9 0 5)一2 4 3 6 0|7 L 年邮局订阅号:8 2 9 4 6 万方数据MOS微型操作系统的设计与实现MOS微型操作系统的设计与实现作者:李红卫,LI Hong-wei作者单位:计算机科学与工程学院,江苏,常州,江苏技术师范学院,213001刊名:微计算机信息英文刊名:MICROCOMPUTER INFORMATION年,卷(期):2008,24(26)参考文献(3条)参考文献(3条)1.张志义;谢凯年 嵌入式实时操作系统PetOS设计与实现期刊论文-微计算机信息 2007(20)2.于渊 自己动手写操作系统 20063.Labrosse J J;邵贝贝 源码公开的实时嵌入式操作系统-UC/OS-2003 本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com