文档介绍:第十二章简化多任务实时操作系统及IPC系统
已经有若干关于实时操作系统方面的文献,如:
蔡德聪等人的《工业控制计算机实时操作系统》
唐寅等人的《实时操作系统应用开发》等…….。
这些文献对实时操作系统的方方面面作了精确的、全面的、深入的介绍,但基本上是从纯理论的角度来进行论述的。
把多任务实时操作系统的相关基础知识与一个具体的IPC系统结合起来,介绍一个初级的、可以供读者“触摸”的实验系统,把有关的基础知识形象化,具体化。
本章的目的:
1)介绍一点多任务实时操作系统的相关基础知识,做一点底层的、入门的工作,为将来深入学习多任务实时操作系统打下一点基础,为将来在实际项目中使用商品化的多任务实时操作系统奠定一点基础。
2)自行设计一个简化的、初级的多任务实时操作系统,使图1-5所示的IPC系统作为一个多任务实时系统运行起来,提供出一个可运行、可操作、可修改的小型多任务实时测控系统,生动形象地了解一些多任务实时操作系统的基本概念,了解多任务并发的含义。
3)本书所提供的硬件和软件系统,适当修改后就可以作为一个实用的小型IPC测控系统。实际上,本书中提供的实验系统就是从实际的IPC测控系统脱胎而来的。
本章所介绍的任务调度程序具有一些显著特点:任务调度简洁明了、实时性好、任务增减方便、易于掌握、易于开发。
第一节基本概念
操作系统是一组计算机程序的组合,用来有效地控制和管理计算机的硬件和软件资源,即合理地对资源进行调度,并为用户提供方便的应用接口。现今用C来编写操作系统已基本上成为一种标准。
实时操作系统是指系统能够及时响应外部事件的请求,在规定时间内完成对该事件进行处理,并控制所有实时任务协调一致地运行的操作系统。
实时操作系统的及时性是以控制对象所要求的开始、截止时间和任务完成时间来确定的。
及时、快速。当外界数据到来时,计算机系统能够立即进行数据处理,以使处理的结果能够满足预定的时间要求;数据来到的时间随机分布并且能够依据不同的应用需求进行有效的数据处理。
实时系统的任务都有时间限制
一种是启动时间限制:对于周期任务,必须按周期启动该任务投入运行;对于随机任务,随机条件满足就必须启动该任务投入运行。
如:开关量以2~4ms甚至1ms为周期;……
键盘任务:操作人员随机用功能键启动各种操作或切换测控画面;…….
另一种是时限,即要求任务在规定的时间内完成。
、操作系统和硬件系统的一体化
对于通用计算机系统,操作系统是由厂家或公司提供的,用户在通用操作系统的控制下开发自己的应用程序, 操作系统是资源的管理者。
操作系统和应用软件之间是分属不同的系统访问空间的,通常在编程模型上表现为系统空间和用户空间,二者泾渭分明。
但是在实时操作系统中,这一界限并不明显。
一体化:
全部系统总设计目标指导下,把实时操作系统、应用程序和具体硬件系统结合起来,通盘考虑并综合设计。
使图1-5所示系统运行的软件就是所谓“一体化运行软件”。
实时操作系统的任务相当于一般操作系统中的进程,在后面的各节中我们更多使用“任务”这一术语。
进程是操作系统中最基本、最重要的概念,虽然经过40多年的演变和提炼,但是仍然没有一个统一的定义。这里罗列几种比较容易理解的、比较能够反映其实质的定义:
(1)进程是程序的一次执行活动。如果把程序比喻成为电影胶片,那么进程就是一次放映活动。
(2)进程是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位。
(3)进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。
为帮助理解这一概念,下面再罗列出进程的几个基本特征:
(1)动态性进程是程序的一次执行过程,因而是动态的。动态性还表现在它因创建而产生,由调度而执行,因得不到资源而暂停执行,因撤消而灭亡。
(2)并发性引入进程的目的是为了使程序能够与其他程序并发执行,以提高资源利用率。
实验室中已经演示了多任务并发操作
(3)独立性进程是一个独立运行的基本单位,也是系统进行资源分配和调度的独立单位。
(4)异步性进程以各自独立的、不可预知的速度向前推进。
(5)结构特征为了描述和记录进程的运动变化过程,并使之能够正确运行,应当为每个进程配置一个进程控制块。这样,从结构上看,进程都是由“程序段+数据段+进程控制块”构成。
根据外部驱动源的不同,实时任务可以分为两大类:
(1)周期任务
这类任务的触发大都来自时间驱动。用户根据现场要求,给每个周期任务设定各自的启动周期,各个任务周而复始地投入运行。
开关量、模拟量、温度控制、直流电动机……
(2)非周期任务
非周期任务大多数是由外部异步事件