论文部分内容阅读
摘 要: 随着开放源代码的Linux、Minix的使用进入实时控制领域内,Linux、Minix等内核机制的不可抢占的内核、粗糙的时钟粒度、频繁的关中断等缺陷日益突显,使得Linux、Minix等操作系统的实时性不强。对Minix,Linux等通用操作系统的实时化是实时操作系统开发的一个重要途径,基于消息传递机制以微内核结构系统为基础,对Minix进行实时化架构,主要对实时化进程中断处理和实时化进程调度机制的设计,并对设计的合理性进行比较,实现一个具有较好实时性能的Minix系统。
关键词: Minix;Unix;微内核;实时
实时化是目前通用操作系统的一个重要特征,也是实时操作系统开发的一种方法。
1 Minix的操作系统内核体系结构
Minix的体系结构是基于进程的机制,是进程的集合,进程之间通信通过消息传递实现,Minix具有四层体系结构,分别是内核层、UO任务层、服务器进程层和用户进程层。如图1所示。
第1层是内核层,具有进程调度、中断处理、上下文切換、基本内存管理以及进程的就绪态、运行态和阻塞态间的转换;第2层是设备驱动程序,该层内的进程可以请求系统任务代表它们从输入输出端口读写数据;第3层包含了服务器进程,该层主要通过内存管理和文件系统服务器向用户进程提供服务。最后,第4层包括了所有用户进程,如init进程、shell进程、编辑器和编译器等程序。
在Minix的实时化系统中设计了一个非常小的并且独立的实时微内核,它存在于Minix系统的硬件和内核之间,如图2所示。
2 Minix操作系统实时化进程调度设计
2.1 Minix操作系统实时化进程的设计
Minix操作系统的实时进程可由非实时进程转变而来的,无需在内核中程序中添加新的专门创建实时进程的程序代码,一个实时进程在终止前必须被转变回非实时进程。
Minix操作系统的进程有就绪态、阻塞态、运行态和实时态四个状态。
①就绪态到运行态;②运行态到就绪态;③运行态到阻塞态;④阻塞态到就绪态;⑤阻塞态到实时态;⑥实时态到就绪态。
2.2 Minix操作系统实时化进程调度的设计
Minix使用一种多级调度算法。在进程调度的过程中,进程被赋予一个与一个初始优先级,优先级可以有很多层次并且在执行过程中进程的优先级可以改变。进程调度所花的时间应是一个与系统中进程任务的多少无关的常数。进程调度器维护16个队列,每个队列具有一个优先级,在任一时刻并不一定所有的队列都在使用。0队列是优先级最高的队列,15队列是优先级最低的队列。由调度算法维护优先级队列,调度算法很简单:先选取优先级最高的就绪队列中的首部进程运行,一个新就绪的实时进程应该放在相应优先级队列的首端。进程IDLE总是处于就绪态,并且位于优先级最低的队列中,当所有的优先级高于它的队列都为空时,IDLE进程才会运行。在Minix实时操作系统中,分别引用enqueue和dequeue函数来完成对一个进程应该位于哪个队列,是该放在队列首还是队列尾的判断。每个队列的内部都采用时间片轮转调度算法。如果一个正在运行的进程用完了它的时间片,则它被转移到该队列的尾部,并且会分配给它一个新的时间片。
3 Minix操作系统实时化中断的设计
3.1 Minix操作系统实时化的中断
在Minix操作系统实时化中断有三类:实时事件中断、定时器实时中断和非实时中断。① 实时事件中断是指在实时系统模式下运行时,只有当新产生的实时事件中断的优先级高于被中断的实时进程时就被处理,低于被中断的进程则被标记,稍后再做处理。② 定时器的中断则是在设备产生中断时先不作处理,而是以触发中断的方式,在中断服务处理周期到来时才会被处理。③ 非实时中断指在没有任何的实时进程和实时中断服务处理程序执行的Minix内核中处理的中断。当Minix内核收到一个中断时,cpu将关掉所有中断,将之后的新中断放入中断队列中等待开中断再进行中断处理。
3.2 Minix操作系统实时化的中断服务处理
为了防止中断服务处理时间过长,Minix操作系统实时进程可用两阶段的中断处理方式进行中断的处理,把中断分成负责“记录中断”前半部分和“处理中断”的后半部分。其具体过程是当中断产生时,Minix操作系统中的实时化进程的中断处理程序第一步判断中断的优先级和类型,如果中断的优先级高于系统中正在运行的进程的优先级,且属于实时中断进程,则立即进入这个实时中断处理,否则,若中断的优先级比系统中正在运行的实时进程的优先级低,则暂不处理该中断,将该中断推迟到后半部去等待处理。
4 Minix操作系统实时化的性能比较
基于消息机制的微内核体系结构的Minix操作系统的实时化进程调度和进程间通信在一定程度上提高了消息传输的效率,所以消息效率是Minix操作系统的实时化性能的一个重要指标。通过比较,其中断服务处理的时间能够满足实时操作系统的性能要求。
参考文献:
[1]王继刚、郑纬民、钟卫东、李翌,基于Minix的混合实时操作系统[D].清华大学学报,2009.
[2]程国徽,嵌入式系统的实时性分析[J].黔西南民族师范高等专科学校学报,2007.
[3]朱巍,嵌人式实时操作系统及其应用[M].单片机与嵌入式系统应用,2006.
[4]尚利宏、熊运鸿,一种基于UML的嵌人式实用应用软件开发环境[J].电子质量,2001.
[5]厉海燕、李新明,Linix抢占式内核的研究与实现[J].计算机工程与设计,2005.
关键词: Minix;Unix;微内核;实时
实时化是目前通用操作系统的一个重要特征,也是实时操作系统开发的一种方法。
1 Minix的操作系统内核体系结构
Minix的体系结构是基于进程的机制,是进程的集合,进程之间通信通过消息传递实现,Minix具有四层体系结构,分别是内核层、UO任务层、服务器进程层和用户进程层。如图1所示。
第1层是内核层,具有进程调度、中断处理、上下文切換、基本内存管理以及进程的就绪态、运行态和阻塞态间的转换;第2层是设备驱动程序,该层内的进程可以请求系统任务代表它们从输入输出端口读写数据;第3层包含了服务器进程,该层主要通过内存管理和文件系统服务器向用户进程提供服务。最后,第4层包括了所有用户进程,如init进程、shell进程、编辑器和编译器等程序。
在Minix的实时化系统中设计了一个非常小的并且独立的实时微内核,它存在于Minix系统的硬件和内核之间,如图2所示。
2 Minix操作系统实时化进程调度设计
2.1 Minix操作系统实时化进程的设计
Minix操作系统的实时进程可由非实时进程转变而来的,无需在内核中程序中添加新的专门创建实时进程的程序代码,一个实时进程在终止前必须被转变回非实时进程。
Minix操作系统的进程有就绪态、阻塞态、运行态和实时态四个状态。
①就绪态到运行态;②运行态到就绪态;③运行态到阻塞态;④阻塞态到就绪态;⑤阻塞态到实时态;⑥实时态到就绪态。
2.2 Minix操作系统实时化进程调度的设计
Minix使用一种多级调度算法。在进程调度的过程中,进程被赋予一个与一个初始优先级,优先级可以有很多层次并且在执行过程中进程的优先级可以改变。进程调度所花的时间应是一个与系统中进程任务的多少无关的常数。进程调度器维护16个队列,每个队列具有一个优先级,在任一时刻并不一定所有的队列都在使用。0队列是优先级最高的队列,15队列是优先级最低的队列。由调度算法维护优先级队列,调度算法很简单:先选取优先级最高的就绪队列中的首部进程运行,一个新就绪的实时进程应该放在相应优先级队列的首端。进程IDLE总是处于就绪态,并且位于优先级最低的队列中,当所有的优先级高于它的队列都为空时,IDLE进程才会运行。在Minix实时操作系统中,分别引用enqueue和dequeue函数来完成对一个进程应该位于哪个队列,是该放在队列首还是队列尾的判断。每个队列的内部都采用时间片轮转调度算法。如果一个正在运行的进程用完了它的时间片,则它被转移到该队列的尾部,并且会分配给它一个新的时间片。
3 Minix操作系统实时化中断的设计
3.1 Minix操作系统实时化的中断
在Minix操作系统实时化中断有三类:实时事件中断、定时器实时中断和非实时中断。① 实时事件中断是指在实时系统模式下运行时,只有当新产生的实时事件中断的优先级高于被中断的实时进程时就被处理,低于被中断的进程则被标记,稍后再做处理。② 定时器的中断则是在设备产生中断时先不作处理,而是以触发中断的方式,在中断服务处理周期到来时才会被处理。③ 非实时中断指在没有任何的实时进程和实时中断服务处理程序执行的Minix内核中处理的中断。当Minix内核收到一个中断时,cpu将关掉所有中断,将之后的新中断放入中断队列中等待开中断再进行中断处理。
3.2 Minix操作系统实时化的中断服务处理
为了防止中断服务处理时间过长,Minix操作系统实时进程可用两阶段的中断处理方式进行中断的处理,把中断分成负责“记录中断”前半部分和“处理中断”的后半部分。其具体过程是当中断产生时,Minix操作系统中的实时化进程的中断处理程序第一步判断中断的优先级和类型,如果中断的优先级高于系统中正在运行的进程的优先级,且属于实时中断进程,则立即进入这个实时中断处理,否则,若中断的优先级比系统中正在运行的实时进程的优先级低,则暂不处理该中断,将该中断推迟到后半部去等待处理。
4 Minix操作系统实时化的性能比较
基于消息机制的微内核体系结构的Minix操作系统的实时化进程调度和进程间通信在一定程度上提高了消息传输的效率,所以消息效率是Minix操作系统的实时化性能的一个重要指标。通过比较,其中断服务处理的时间能够满足实时操作系统的性能要求。
参考文献:
[1]王继刚、郑纬民、钟卫东、李翌,基于Minix的混合实时操作系统[D].清华大学学报,2009.
[2]程国徽,嵌入式系统的实时性分析[J].黔西南民族师范高等专科学校学报,2007.
[3]朱巍,嵌人式实时操作系统及其应用[M].单片机与嵌入式系统应用,2006.
[4]尚利宏、熊运鸿,一种基于UML的嵌人式实用应用软件开发环境[J].电子质量,2001.
[5]厉海燕、李新明,Linix抢占式内核的研究与实现[J].计算机工程与设计,2005.