欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:74644605       资源大小:123.29KB        全文页数:5页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1MOS 微型操作系统的设计与实现微型操作系统的设计与实现1 李红卫(江苏技术师范学院 计算机科学与工程学院,江苏 常州 213001)摘要摘要:本文介绍一个基于Intel 80 x86 CPU实模式下的多任务微型操作系统MOS的设计与实现。着重阐述了MOS的层次结构、内存布局、引导程序设计、进程管理、上下文切换、信号量管理、内存管理、文件系统、I/O管理、用户接口以及MOS命令处理程序。MOS可作为嵌入式操作系统,它易于扩充和移植。关键字关键字:MOS 微型操作系统;层次结构;进程;上下文切换 中图分类号:TP316 文献标识码:A Design and Implementation of MOS Mini Operating System Li Hongwei(School of Computer Science and Engineering,Jiangsu Teachers University of Technology,Changzhou 213001,China)Abstract:The paper introduces the design and the Implementation of a simple multi-task mini operating system(MOS)based on Intel 80 x86 CPU real model.It expounds the hierarchical structure of MOS,memory layout,design of bootstrap,process management,context switch,semaphore management,memory management,file system,I/O management,user interface and MOS command processor.MOS can be as a embedded operating system.Its extensible and portable.Key words:MOS mini operating system;hierarchical structure;process;context switch 1 引言引言 在嵌入式系统开发中往往需要一个微型操作系统,而目前常用的操作系统复杂而庞大,为此,本文提出设计一个简单的基于 Intel 80 x86 CPU 实模式下的多任务实时微型操作系统MOS(Mini Operating System),实现了处理机与进程管理、存储管理、设备管理、文件系统,中断管理等功能,能很好地应用在嵌入式系统开发中。2 MOS 系统结构及内存布局系统结构及内存布局 MOS微型操作系统采用层次式模块化结构,如图1所示。最底层的硬件和硬件之上的ROM-BIOS是PC机本身具有的,MOS依赖于ROM-BIOS。MOS-IOS(MOS Input/Output System)层是MOS系统的输入/输出层,提供了基本的输入/输出功能。在MOS-IOS之上是各种管理模块,包括进程控制、信号量管理、时钟管理、内存管理、文件系统和I/O管理等功能,这些功能通过MOS提供的系统调用为用户程序服务。MOS命令处理程序是用户操作计算机的接口。MOS系统运行于Intel 80 x86 CPU实模式下,可管理的内存空间为1MB,图2是MOS系统内存布局。整个内存空间分为三部分,第一部分是系统空间,从0 x00000至0 x31fff共200KB;第二部分是用户空间,从0 x32000至0 x9ffff共440KB;第三部分是PC机保留的空间,从0 xa0000至0 xfffff共384KB。3 MOS引导程序的设计引导程序的设计 当PC机加电后,首先执行ROM-BIOS初始化系统,然后将引导盘中的引导记录装入内存0 x7C00处并执行,由引导记录完成操作系统的加载。MOS系统以1.44MB的3.5寸软磁盘为载体,其引导记录在软盘的0面0道1扇区。本系统充分利用这一扇区的512个字节实现更多的 1 江苏省高校自然科学研究资助项目:项目名称:RTEMS嵌入式实时操作系统的研究,颁发部门:江苏省教育厅,编号:06KJD520052,项目主请人:李红卫。2功能,通过软中断INT 0 x90实现读/写磁盘扇区,读/写文件分配表,查找文件簇号等基本功能。图1的MOS-IOS的功能代码包含在引导程序中。引导程序的主要功能是初始化MOS运行环境,把MOS系统装入内存,并将CPU控制权交给MOS,因此,引导程序需要在磁盘中寻找MOS系统文件,找到后将其装入内存并运行。4 MOS各功能模块的设计各功能模块的设计 4.1 进程管理进程管理 MOS系统采用可剥夺调度方式,以优先级高者优先的调度算法分配处理机。进程可在就绪、运行和阻塞三个状态之间变迁,其状态转换如图3所示。获得处理机的进程处于运行状态,在就绪链表中等待处理机的进程为就绪状态,运行中的进程因等待事件的发生进入阻塞状态。用于进程控制的系统调用有三个:(1)创建进程 SysCreateProc:创建进程的主要工作是为新创建的进程申请一个空闲的进程控制块PCB、一个堆栈,并初始化堆栈和填写PCB信息,然后以优先级大小将新创建的进程插入到就绪链表中,等待进程调度程序的调度。(2)删除进程 SysDelProc:处于运行状态的进程可将自己删除。(3)进程延迟 SysTimeDly:执行该系统调用使处于运行状态的进程睡眠若干个时钟。当某一进程睡眠时间到,会由时钟中断处理程序将其唤醒。中断向量表(1KB)0 x00000 BIOS数据区(256B)0 x00400 磁盘缓冲区(1KB)0 x00500 FAT表缓冲区(5KB)0 x00900 引导程序0 x01D00 引导程序的栈空间0 x01F00 MOS(64KB)0 x02000 0 x12000 0 x32000 用户空间(440KB)0 xA0000 视频显示 RAM(128KB)存储堆和数据区(128KB)0 xC0000 VGA/其他卡上的 ROM BIOS0 xE0000 其他 BIOS 映射区 0 xF0000 ROM BIOS 映射区 0 xFFFFF 图 2 MOS系统内存布局图硬件 ROM-BIOS MOS-IOS 进程控制模块 信号量管理模块时钟管理模块内存管理模块文件系统模块 I/O管理模块MOS系统调用接口 图 1 MOS操作系统层次结构 MOS命令处理程序 用户调用MOS系统调用接口应用程序 34.2 进程上下文切换进程上下文切换 因MOS系统采用优先级高者优先调度算法,因此,就绪链表中的进程需按优先级大小进行排列,其链首进程就是当前正在运行的进程。涉及进程调度的两个全局变量,一个是MOSPCBCur,它代表当前正在处理机上运行的进程,一个是MOSRDLPCB,它代表就绪链表的首进程。通常情况下这两个变量值应该相等,若不相等,则说明当前就绪链表发生了变化,或者来了一个更高优先级的进程,或者当前运行的进程由于阻塞而离开就绪链表,此时进程调度程序应重新选择就绪链表中的首进程来运行。当发生进程调度时,最重要的步骤是进程上下文切换。在MOS系统中进程的运行环境存放在各自的堆栈中,因此上下文切换的工作不难想像,其实现步骤如下:(1)将当前运行进程的运行环境保存在它的堆栈中;(2)将堆栈信息(堆栈的段地址和栈顶指针)保存在它的进程控制块PCB中;(3)将MOSRDLPCB的值赋给变量MOSPCBCur,使就绪链表的队首进程成为当前运行进程;(4)从MOSPCBCur所指进程的进程控制块PCB中恢复该进程的堆栈空间;(5)从栈中恢复MOSPCBCur所指进程的运行环境;(6)实现进程上下文切换。MOS系统的进程上下文切换是通过执行软中断指令INT 0 x81实现的,在进入和退出该中断处理程序时所用的堆栈是不一样的,进入时用的是被切换下来的进程的堆栈,退出时用的是将要运行的进程的堆栈,MOS系统正是利用这一特点实现进程上下文切换。4.3 信号量管理信号量管理 在MOS系统中定义了信号量,利用信号量实现进程的同步与互斥。与信号量相关的系统调用有四个:(1)创建信号量 SysCreateSem:创建一个信号量对象,并为该信号量赋初值,返回信号量对象标识,在应用程序中根据信号量对象标识对信号量进程操作。(2)删除信号量 SysDelSem:删除指定的信号量。(3)P操作 P:对指定的信号量对象执行P操作,当执行P操作后,信号量值小于0时,进程将阻塞在信号量的等待队列中,并引起进程调度,否则调用者进程继续运行。(4)V操作 V:对指定的信号量对象执行V操作,当信号量值小于等于0时,将唤醒信号量等待队列中的队首进程,插入就绪链表中,并引起进程调度,否则调用者进程继续运行。4.4 内存管理内存管理 在MOS系统中,从内存地址0 x22000开始的64KB内存作为内存堆供应用程序使用。采用首次适应可变式分区存储管理技术,使用带辅助位示图的位示图数据结构对内存进行管理。将内存按节划分,每一节大小固定,比如32B,位示图中的每一位对应一个节,由位的值反映该节是已分配状态(0)还是未分配状态(1)。辅助位示图与位示图结合起来实现内存的回收。在初始化时,位示图的所有位为1,表示所有内存空闲,辅助位示图的所有位为0,表示每一节都可以是分配的起点。当某一进程申请大小为N节的一段内存,则在位示图中查找连续N个为1的位,找到后将这N位清0,其对应的辅助位示图除第一位不变仍为0外其余位置1。即在辅助位示图中,值为1的位表示该位对应的节与它的前一位对应的节属于同一个段;值为0运行就绪 阻塞进程调度被抢先等待事件 的发生某事件发生 图 3 MOS 系统中进程三状态转换图 4的位表示该位对应的节是一个段的起始节,或表示这个节未分配出去。如图4所示位示图与辅助位示图,从位示图的前两行看,已分配出去的节有:第0节至第4节,第7节至第12节。对照辅助位图可知,已分配出去的11节是4个段,其中第1段占用第0节至第3节,第2段占用第4节,第3段占用第7节至第10节,第4段占用第11节和第12节。0 0 0 0 0 1 1 00 1 1 1 0 0 0 00 0 0 0 0 1 1 11 1 1 0 1 0 0 01 1 1 1 1 1 1 10 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0(a)位示图 (b)辅助位示图 图 4 位示图与辅助位示图内存管理 根据位示图和辅助位示图非常容易地实现内存的分配和回收。在MOS系统中提供了两个用于内存管理的系统调用,分别是:(1)申请内存 SysMemAllocate:申请N节大小的内存空间。(2)释放内存 SysMemFree:释放内存空间,提供释放内存空间的起始地址即可将内存归还给系统。4.5 文件系统文件系统 FAT文件系统是常用的文件系统,在MOS系统中实现了FAT文件系统,并提供了与文件操作相关的5个系统调用,分别是:(1)在磁盘上创建一个新文件 SysCreateFile。(2)打开一个已存在的文件 SysOpenFile。(3)写文件 SysWriteFile:向文件中写信息。(4)读文件 SysReadFile:读文件内容。(5)关闭文件 SysCloseFile:关闭已打开的文件。4.6 I/O 管理管理 由于外围设备特性各异,因而I/O管理是操作系统中最复杂的模块。在MOS系统中实现了串行通信设备管理,提供了4个用于串行通信设备管理的系统调用,分别是:(1)打开串行通信设备 SysOpenIO:该系统调用的主要功能是对串口COM1和COM2初始化,并允许8259A可响应它们发来的中断。初始化时设置传输位8位,停止位1位,无校验码,波特率为19200bps。(2)写串行通信设备 SysWriteIO:首先将要写的信息放到输出缓冲区中;其次,允许串口产生发送中断信号请求。(3)读串行通信设备 SysReadIO:因串行通信中断处理程序处理接收中断时,已将数据存入输入缓冲区中,故该系统调用,只需到输入缓冲区中取数据即可。若输入缓冲区为空,则返回0 xff表示无数据可读,否则从输入缓冲区中读一个数据返回。(4)关闭串行通信设备 SysCloseIO:将串口中断屏蔽即可实现关闭串行通信设备。4.7 用户接口用户接口 MOS操作系统向用户提供了18个系统调用,系统调用总的入口地址通过中断向量实现,其中断向量码为0 x80。当用户使用系统调用时,将功能号和各输入参数放入指定的寄存器中,通过执行软中断指令INT 0 x80实现系统调用。上述过程需要使用汇编指令来实现,这给用户编程带来一定的困难,因此,MOS系统向用户提供以函数形式使用系统调用的功能,比如创建进程系统调用SysCreateProc,在用户编程创建进程时使用的函数原型是:unsignd MosCreateProc(unsignd segV,unsignd offV,char prio),该函数有三个形参,前两个形参分别是被创建进程代码的段地址值和偏移量,第三个形参是被创建进程的优先级。函数返回值为被创建进程的进程标识。通过使用函数简化了用户程序的设计。4.8 MOS 命令处理程序命令处理程序 MOS命令处理程序给用户使用计算机提供一个控制台文本接口,通过键盘输入命令。在系统启动时,MOS命令处理程序创建一个IDLE的系统进程,其优先级最低,由它负责接收用户键盘输入,并执行相应的命令。命令分为内部命令和外部命令,内部命令只有一个显 5示磁盘目录的DIR命令,外部命令是以文件的形式存储在磁盘中,文件采用EXE可执行文件格式。当IDLE接收到外部命令时,在磁盘中查找外部命令,并将其装入内存为其创建新的进程,然后让它运行。当系统中有用户进程时,IDLE一直处于循环等待用户进程的结束,一旦系统中没有用户进程,IDLE又重新接收键盘命令。5 结束语结束语 本文创新点:基于 PC 机设计和实现一个简单的功能较全的 MOS 多任务微型操作系统,整个系统源代码 2 千余行,采用层次结构设计模型,除引导程序与部分关键代码使用汇编语言编写外,大部分代码使用 C 语言编写,易于对系统扩充和移植。目前,作者正着手将MOS 移植到基于 ARM 技术的 S3C44B0X 处理器上。另外,将 MOS 系统应用在操作系统课程的实践教学中也是一个不错的选择。参考文献:参考文献:1 Labrosse J J.邵贝贝译.源码公开的实时嵌入式操作系统UC/OS-II(第 2 版)M.北京:北京航空航天大学出版社,2003 2 于渊.自己动手写操作系统M.北京:电子工业出版社,2006 3 张志义,谢凯年 嵌入式实时操作系统 PetOS 设计与实现 J 微计算机信息,2007,7-2:43-45 作者简介:李红卫(1966-),男(汉族),山西阳城人,江苏技术师范学院副教授,硕士,主要研究方向:嵌入式操作系统。Biography:Li Hongwei(1966-),male,Associate professor of Jiangsu Teachers University of Technology,Master degree,Research Area:Embedded Operating System.(213001 江苏技术师范学院)李红卫

    注意事项

    本文(微型操作系统的设计与实现1.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开