面向实时嵌入式操作系统的进程机制探究

时间:2022-09-24 10:26:40

面向实时嵌入式操作系统的进程机制探究

摘要:近些年来,实时嵌入式操作系统的应用范围逐步广泛,其中多数的实时嵌入式操作系统是多任务抢占式的。对于进程的管理调度,当前有许多不同的办法进行实现,本文将对主流的实时嵌入式操作系统中的进程管理部分进行研究。

关键词:实时嵌入式操作系统;进程机制

中图分类号:TP316.2 文献标识码:A文章编号:1007-9599 (2011) 04-0000-01

Exploration for Real-time Embedded Operating System Process Mechanism

Cong Haoqian

(Northeastern University,Shenyang110819,China)

Abstract:In recent years,real-time embedded operating system,gradually broad range of applications,most of them real-time embedded operating system is preemptive multitasking.Process management for scheduling,currently has a number of different approaches to achieve,this article will mainstream real-time embedded operating system process management part study.

Keywords:Real-time embedded operating system;Process mechanism

实时嵌入式操作系统要求处理数据要及时、迅速。在操作系统所花费的时间中,进程间的切换和调度占有一定的比重,限于嵌入式操作系统的硬件条件所限,要求对于进程的切换和调度一定要快速合理,能够做到实时性。在整个的进程管理机制中,主要的问题有以下几个:

一、进程的状态和转换

从宏观的角度上,多任务系统是并行的,但是对于单处理器而言,从微观的角度看,其实是串行的。系统将处理器按时间分配给各个进程,而进程的执行是需要一定的资源作为条件的,当其需要资源全部满足时,才会执行。由于系统在运行时,其资源是不断的随时间发生变化的,所以在进程的生命周期中可以大致分为Ready、Running、Blocked几种状态,进程会随着系统的运行不断的从一个状态转换成另一个状态。由于是实时操作系统,所以要求系统能优先处理优先级高的进程,用以满足“实时”的要求。几种状态的含义如下:

Ready:进程需求满足,但是由于存在着优先级高的进程正在运行,所以该进程暂时不能运行。

Running:进程目前是优先级最高的进程且正在运行中。

Blocked:进程运行所需条件没有满足,进程处于阻塞状态,等待某些事件完成才可以跳出该状态。由于进入到Blocked的原因不同,还可以细分为子状态:挂起、等待、等待-挂起。

系统内核会自动的维护相关的数据结构,决定某个进程的状态及优先级,并对其进行更改。

二、进程的调度算法

在实时操作系统中,要求系统能够满足在一定的时间内对重要的进程任务做出相应的响应,系统对于进程的调度算法是一个实时系统是否优秀的重要指标,也是实时操作系统中非常重要的研究部分之一。

在系统的内核中,一般会存在一个Scheduler用来对进程进行调度,因为嵌入式操作系统中硬件的支持有限,所以一般的都会采用简单的调度算法来实现对进程的调度。当前的应用于嵌入式操作系统的主流调度算法有以下的几种:

优先级抢占调度。这种算法会对根据进程的重要程度确定进程的优先级,高的优先级的进程会抢占CPU,低优先级进程需等待高优先级运行后才可运行。

时间轮换调度。为了避免同优先级的进程中某一个阻塞,操行系统还可以使用时间轮回调度,把预定的时间分为小的时间片,保证同一优先级的进程都能获取到CPU的使用权限。

此外还有一些实时的调度算法,例如FCFS算法、LLF算法、DM算法、SJF算法等,根据不同的使用情况,使用相应的调度算法才能最大限度的发挥操作系统的性能。

三、进程的生命周期

一个进程的生命周期大概包含以下几项:

(一)进程创建。在一个新的进程被创建时,系统会为其分配空间并进行相关数据结构的初始化的工作,之后会分配一个任务的ID用以对进程进行操作,然后将其置为就绪状态,并放入相应的队列,等待调度处理。

(二)进程唤醒。系统会根据进程的ID解挂某个进程,并获得进程的TCB,如果进程在等待其他事件发生,随后会再次进入的睡眠状态,否则,系统会把进程的状态转为就绪并将TCB加入到就绪队列,等待执行。

(三)进程挂起。系统会根据进程的ID,获取对应的TCB,并将其状态改为等待,放入到等待队列。进程也可以自己把自己挂起,进行一次调度。

(四)进程的睡眠。进程往往需要暂时的睡眠,然后回到就绪状态,其过程是进程修改进程状态,把进程的状态转变为等待,系统会把进程的TCB加入到时间等待链表中,时间到后,系统会将其改变为就绪状态,进程得以再次执行。

(五)进程结束。进程往往会使用各种资源,所以,在进程结束时,系统需要释放进程所申请的资源,这个工作一般由内核与进程共同完成,其过程为获取进程ID,获取相应TCB,加入空闲队列,释放资源。

四、进程间同步与通信

宏观并行处理技术的实现,使得多进程间的协同操作成为了现实,但是有一些问题必须面对和处理,那就是多进程间合作引发的问题,如死锁、临界区问题等,一般的嵌入式实时操作系统中都会引入一种进程间的同步与通信机制来避免以上问题的产生。

其同步一般分为资源同步与活动同步,这两种同步用来决定了资源的访问安全以及进程执行到达状态,用以保证进程间同步操作,良好的进行合作。

进程间的通信可以协调多个进程间的合作,进程间的主要通信方法有全局变量传递、共享内存传递、使用消息机制传递等方法。

参考文献:

[1]吕鸣松.嵌入式工业监控系统中实时调度策略的研究[D].中国优秀硕士学位论文全文数据库,2005

[2]孙萍.嵌入式实时操作系统的自适应调度算法研究[D].重庆大学,2007

[3]周昕,傅鹂,黄海伦.面向实时嵌入式操作系统的进程机制[J].计算机工程,2010

[4]王小鸥.进程互斥在实时嵌入式系统中的一种应用[J].现代计算机,2007

[作者简介]

丛浩仟(1987-),男,山东威海人,东北大学硕士,研究方向:嵌入式系统。

上一篇:浅析现代计算机软件保护模式的对比 下一篇:关于Oracle数据库的一般维护分析