实时图像处理并行操作系统的微内核设计和实现
- 格式:pdf
- 大小:495.37 KB
- 文档页数:5
嵌入式系统中的实时图像处理算法设计与实现随着科技的发展,嵌入式系统在我们的生活中扮演着越来越重要的角色。
从智能手机到智能家居,从汽车到医疗设备,嵌入式系统无处不在。
而嵌入式系统中的实时图像处理更是被广泛应用于许多领域,如机器视觉、无人驾驶、安防监控等。
本文将介绍嵌入式系统中实时图像处理算法的设计与实现方法。
一、实时图像处理算法概述实时图像处理算法是指在有限的时间内对输入图像进行处理和分析,得到输出结果。
实时性是指算法能够在预定的时间窗口内完成处理任务。
在嵌入式系统中,由于系统资源的有限性和对实时性的严格要求,实时图像处理算法的设计和实现变得尤为重要。
二、实时图像处理算法设计步骤1. 问题定义和目标确定:首先,需要明确图像处理的问题定义和所需达到的目标。
例如,人脸识别算法的目标是识别图像中的人脸并进行身份验证。
2. 图像采集和预处理:接下来,需要获取图像数据,并进行预处理,以减少噪声和改善图像的质量。
图像采集可以通过摄像头、传感器等方式实现,预处理可以包括去除图像背景、增强对比度等操作。
3. 特征提取:在实时图像处理中,需要从原始图像中提取特征以进行后续处理。
常用的特征提取方法包括边缘检测、色彩特征提取、纹理特征提取等。
4. 特征匹配和分类:根据目标确定的特征,进行特征匹配和分类。
特征匹配可以通过比对图像中的特征与预先存储的特征进行匹配,以确定目标是否存在或进行识别。
5. 结果输出和反馈控制:最后,根据处理结果输出相应的控制信号或反馈信息,用于控制实时系统的运行。
例如,在无人驾驶中,根据图像处理的结果,自动控制车辆的行驶方向和速度。
三、实时图像处理算法实现方法1. 硬件选择和优化:嵌入式系统中的实时图像处理算法需要选择适合的硬件平台,并进行相应的优化。
例如,选择高性能的处理器和图像处理单元,并对算法进行针对性的优化,以提高处理速度和效率。
2. 并行和并发处理:在实时图像处理中,往往需要处理大量的图像数据。
第47卷第4期 2017年7月航空计算技术Aeronautical Computing TechniqueVol.47 No.4Jul.2017一种多核实时图像处理模块设计与实现王闯,贺莹,张晓曦,刘硕(航空工业西安航空计算技术研究所,陕西西安710068)摘要:实时图像处理能力是嵌入式系统中影响系统性能的核心因素。
为充分挖掘多核D S P性能,从计算机系统结构的角度出发,开展对多核D S P实时图像处理体系结构的研究,设计了一种基于T M S320C6678的实时图像处理模块。
采用F P G A进行实时图像的采集和缓存,利用四线R a p id IO高速接口完成F P G A与D S P之间的数据传输,并 设计了四级图像缓冲流水处理结构,实现了图像采集、缓存、处理和发送的并行进行。
设计了一套基于数据块共享的实时图像处理多核协同处理机制,可以充分利用C6678八个核的优势,实现对图像的实时处理。
关键词:多核D S P;F P G A;并行处理框架;实时图像处理中图分类号:T P391.41文献标识码:A文章编号:1671-654X(2017)04-0123-03Design and Implementation of Multi - core Real- time Image Processing ModuleWANG Chuang,HE Ying,ZHANG Xiao-xi,LIU Shuo{Xi an Aeronautics Computing Technique Research Institute ,AVIC ,Xifan 71006S , China) Abstract : Real - time image processing ability is the key factor for visual applications, especially embedded systems. To fully exploit the performance of multicore DSP,this paper studies the architecture of real -time image processing in the light of computer architecture and designs a real - time image processing module based on TMS320C6678. Real- time image data stream is acquired and buffered by FPGA. Communication between DSP and FPGA is achieved by using four lane RapidIO interface. The hardware scheme of the processing in FPGA possesses a linear four - level pipeline architecture, which makes the operation of image acquisition,buffering,processing and transferring can be completed almost at the same time. A kind of shared memory interconnection method is proposed to solve the rapid inter-core communication problems among C66xx cores and the system achieves up to real - time image processing speed finally.Key words : multi - core DSP; FPGA ; parallel processing framework ; real - time image processing引言实时图像处理技术在众多领域中有着广泛的应用,但是视频图像由于信号维度高,对其处理所需要的 计算复杂度高。
操作系统的设计与实现操作系统是计算机硬件的核心,它可以控制整个计算机系统的工作,为用户提供方便和高效的计算机环境。
计算机操作系统不仅需要具有稳定可靠的性能,同时还需要满足安全、易用和灵活等需求。
本文将从操作系统的设计和实现两个方面来探讨计算机操作系统的原理和实践。
一、操作系统的设计1.1、操作系统的层次结构操作系统的层次结构是指在操作系统中采用了不同的层次来完成不同的职责。
操作系统的层次结构可以分为:硬件层、内核层、系统调用层、程序库层和应用层等。
硬件层是指物理层,主要是处理器、内存、硬盘等设备,操作系统需要对这些硬件资源进行管理和分配。
内核层是操作系统的核心,主要提供管理和分配硬件资源的功能,同时还负责处理硬件和软件之间的交互和通讯。
系统调用层是通过应用程序向内核层请求服务的界面,它包含了一系列的系统调用接口,应用程序可以利用这些接口来请求内核级别的服务。
程序库层是应用程序开发的基础,它包含了一些函数库和工具集,开发人员可以通过这些工具来更方便地开发应用程序。
应用层是最外层,包含了各种应用程序,例如浏览器、文本编辑器、游戏等,用户可以通过这些应用程序来完成功能。
1.2、操作系统的功能操作系统的主要功能包括:进程管理、内存管理、文件管理、设备管理和安全管理。
进程管理:进程是指正在运行的程序,操作系统需要对进程进行管理和调度,使它们能够协调地运行。
进程管理包括进程创建、进程调度、进程通信、进程同步和进程撤销等。
内存管理:内存是计算机的重要组成部分,操作系统需要对内存进行管理和分配。
内存管理包括内存分配、内存回收、内存保护和虚拟内存管理等。
文件管理:文件是计算机系统中重要的数据存储和共享方式,操作系统需要提供文件管理功能。
文件管理包括文件的创建、删除、修改、复制和文件保护等。
设备管理:设备是计算机系统中的重要组成部分,操作系统需要对设备进行管理。
设备管理包括设备的驱动程序开发、设备的分配和设备的控制等。
基于SOPC的实时图像处理系统的设计的开题报告一、选题背景及意义:随着科技的不断发展,图像处理技术得到了广泛的应用。
例如,在医学领域,图像处理技术可以用于医学影像的分析、诊断和治疗;在工业领域,图像处理技术可以用于物体检测、识别和测量等方面;在安防领域,图像处理技术可以用于视频监控和人脸识别等方面。
因此,开发一种高效、实时的图像处理系统具有非常重要的意义。
本课题选用SOPC(System on Programmable Chips,可编程芯片系统)作为硬件平台,设计一种基于SOPC的实时图像处理系统。
SOPC系统由处理器、总线、内存和I/O设备等组成,具有灵活性强、功能齐全、资源可重用等优点。
同时,SOPC系统还可以使用硬件描述语言进行设计,提高了开发效率,降低了成本。
二、主要研究内容:1. 分析SOPC系统的架构,选择适合的处理器、总线、内存和I/O设备等,并进行硬件描述语言设计。
2. 通过读取图像数据,将图像信号输入到系统中进行处理,并将结果输出。
3. 实现图像预处理、图像滤波、图像分割、形态学处理等各种实时处理算法。
4. 结合嵌入式系统和图像处理算法进行算法优化,提高系统的实时性能和处理速度。
5. 对系统进行测试和优化,并评估系统的性能指标。
三、预期成果及创新性:1. 设计出一种基于SOPC的实时图像处理系统,该系统具有灵活、高效、可重用等特点,可以广泛应用于医学、工业、安防等领域。
2. 实现图像预处理、图像滤波、图像分割、形态学处理等多种实时处理算法,并在嵌入式系统上进行算法优化,使系统具有更高的实时性能和处理速度。
3. 对系统进行全面的测试和优化,得到合理的性能指标,并推广应用于实践中。
四、拟采用的研究方法:1. 对SOPC系统的架构进行分析和设计,确定适合的处理器、总线、内存和I/O设备等,并进行硬件描述语言设计。
2. 借鉴现有的图像处理算法,分析其算法原理和实现方法,并在系统上进行实现,注意到处理算法的精度和速度的平衡。
多核处理器上的图像处理与实时处理技术研究随着科技的不断发展,人们对于计算机处理能力的要求也越来越高。
在图像处理和实时处理领域,多核处理器已经成为了一种必不可少的工具。
本文就介绍一下多核处理器上的图像处理与实时处理技术的研究现状。
一、多核处理器的优势CPU处理器是指中央处理器,它负责计算机的所有数据处理,包括图像处理和实时处理。
以前的CPU处理器只有一个核心,这个单核心只能够处理一个任务,效率非常低。
而现在的多核CPU处理器可以将一些任务分配到其他核心上,提高了计算机的处理效率,保证了计算机系统的稳定性。
每个核心可以处理多个任务,大大提升了计算机的速度,减少了用户等待的时间。
此外,多核处理器还可以运行多个程序,提高了计算机的多任务处理能力,满足了用户多任务处理的需求。
二、多核处理器在图像处理领域的应用1、图像分类任务图像分类是广泛应用于计算机视觉和图像处理领域的一种任务,其基本目标是通过学习从图像中提取的特征来将图像进行分类。
多核处理器可以提高图像分类任务的速度和精度。
在多核处理器支持下,计算机可以同时对不同的图像进行分类,提高了分类的效率。
同时,多核处理器可以加速图像特征提取的过程,从而提高分类的准确率。
2、图像分割任务图像分割是将一幅图像分成若干个非重叠的区域,每个区域称为一个分割区域。
多核处理器可以加速图像分割任务的速度和精准度。
在多核处理器支持下,计算机可以对不同的分割任务进行并行处理,提高了分割的效率。
同时,多核处理器还可以加快分割特征提取的速度,提高了分割的准确率。
3、图像识别任务图像识别是将数字图像与预定义类之间建立映射的过程,它是图像处理领域的一项重要技术。
多核处理器可以提高图像识别任务的速度和精度。
在多核处理器支持下,计算机可以对不同的图像进行识别,提高了识别的效率。
同时,多核处理器还可以加速特征提取的速度,提高了识别的准确率。
三、多核处理器在实时处理领域的应用1、视频编码视频编码是一种将视频文件压缩的技术。
基于DSP实现的并行三维实时图像处理系统
马兰;吴志军
【期刊名称】《中国民航大学学报》
【年(卷),期】2001(019)004
【摘要】基于DSP实现的并行三维实时图像处理系统是采用Texas Instruments 公司的通用数字信号处理器DSP(Digital Signal Processing)TMS320C40,在对图像存储算法分析的基础上,根据算法内在的并发性提出了一种流水式多SIMD并行三维图像处理结构.这种结构可使图像处理器按行、列或一个任意的矩形块同时存取帧缓存的像素,具有实时和高速的特点.
【总页数】4页(P40-43)
【作者】马兰;吴志军
【作者单位】天津三维显示技术研究所;中国民航学院空管学院
【正文语种】中文
【中图分类】TN911.73
【相关文献】
1.实时图像处理系统的DSP实现 [J], 庄克玉;黄洪全
2.基于FPGA+DSP的实时图像处理系统设计与实现 [J], 罗戈亮;鲁新平;李吉成
3.基于DSP嵌入式实时图像处理系统的设计与实现 [J], 刘燕;陈兴文;李敏
4.基于TMS320C6414的多DSP实时图像处理系统的设计与实现 [J], 毛海岑; 石岩; 王岳环; 张天序
5.模块化多DSP实时图像处理系统的设计与实现 [J], 张彪;王岳环
因版权原因,仅展示原文概要,查看原文内容请购买。
开发研究与设计技术本栏目责任编辑:谢媛媛1引言嵌入式实时系统,一般指计算机以片级、板级或箱级埋藏在智能设备中的实时系统。
这种系统中,内存空间一般较小,且没有可用的外存,程序放在有限的内存中(一般是固化在ROM或FLASH等)。
随着实时应用领域的扩大,实时应用覆盖的范围也不断加大,从低端到高端都有应用的需求,这给现代实时操作系统(RTOS)的研究提出了新的要求与挑战。
传统嵌入式实时操作系统设计采用一体化、高效大内核结构的方法。
系统功能集中在内核实现,内核向应用程序提供高效率的系统调用及良好的系统响应时间。
传统设计方法设计的嵌入式实时操作系统固然有其好的一面,但与现在嵌入式实时操作系统需求相比仍有较大差距,主要表现在操作系统的可伸缩性、可移植性、对新型结构的硬件平台的支持及接口标准的开放性上。
而且大内核结构的系统设计对功能的扩展往往造成内核修改牵一发而动全身。
为满足现在实时操作系统的需求,同时兼顾嵌入式应用的特点,本文提出了一种基于对象的超微内核嵌入式实时操作系统的设计方法。
我们采用面向对象的分析和设计技术,结合了微内核和层次式操作系统的特点,设计了一种超微内核的嵌入式实时操作系统,有效地解决了实时操作系统的可伸缩性、实时性、可移植性等问题,并具有信息隐藏、代码可重用等优点,使得嵌入式实时系统的软件开发方便和快捷。
2可伸缩性设计现代RTOS应能支持多种实时应用的需求,用户希望开发的RTOS可方便配置,满足各种实时应用的需求,无论它们是高端的实时分布式应用(如银行业务),还是低端的强实时、深嵌入应用(如智能武器系统和工业控制系统等)。
要求RTOS有良好的可伸缩性、可裁剪性和重用性。
在用面向对象的分析和设计技术来设计超微内核嵌入式实时操作系统,内核的可伸缩性设计以下三个方面来设计:(1)从操作系统中抽象出超微内核,且内核的大小可以根据用户的需要和具体运行环境来配置的。
超微内核抽象层次高、高内聚、代码小,以对象的形式提供给内核其他的部分使用,内核对象高内聚、松耦合,使得内核的扩充变得非常容易,扩充新的类和对象,并不影响超微内核代码本身,从而为系统功能的扩展提供条件。
操作系统的设计和实现研究操作系统是计算机系统中最核心的系统软件之一,其主要任务包括对硬件设备资源进行管理和调度,为应用程序提供服务以及实现对计算机系统的抽象,为用户提供友好的操作界面等。
由于操作系统的高度复杂性以及其对计算机系统的重要性,操作系统的设计和实现研究一直是计算机领域最具挑战性之一。
本文主要介绍操作系统的设计和实现的相关研究内容和进展。
一、操作系统的设计操作系统的设计是指确定操作系统的体系结构、功能模块以及各个模块之间的关系,从而使得操作系统能够满足各种应用场景下的需求。
操作系统的设计需要考虑到操作系统的可扩展性、可维护性、可移植性、可靠性和安全性等方面因素。
下面介绍一些常见的操作系统设计技术。
1.1 微内核微内核是一种操作系统设计思想,其基本原理是将操作系统的核心功能模块尽量减少,将模块化的方式实现操作系统的功能,并使用进程间通信机制进行模块间的交互。
微内核设计可提高操作系统的可扩展性和可维护性,其中典型的代表是GNU Hurd系统。
1.2 模块化设计模块化设计是指将操作系统的各个模块(文件系统、网络协议栈等)尽量独立进行设计和实现,从而使得系统的可维护性更高。
另一个好处是可以方便地增删模块来满足不同的业务需求。
目前,大多数操作系统都采用了模块化的设计思想。
1.3 分层设计分层设计是指将操作系统的不同模块按功能划分成不同层,各层之间只能通过固定的接口进行通信,从而实现模块之间的解耦和去耦合。
分层设计可以提高系统的可靠性和可维护性,另外也有利于系统的安全性。
目前,大多数操作系统都采用了分层的设计思想。
二、操作系统的实现操作系统的实现是指将操作系统的设计文档转化成计算机程序的过程,包括编写操作系统内核、设备驱动程序以及实现各种系统服务和应用程序等。
下面介绍一些常见的操作系统实现技术。
2.1 中断处理中断是指操作系统在程序执行过程中,由硬件或软件触发的一种异步事件。
当操作系统接收到中断信号时,会停止当前任务的执行,并进入中断处理程序中处理中断事件,对中断事件进行响应或查询中断原因,然后转到相应的处理流程中。
面向实时图像处理的多核并行计算机研究随着科技的不断进步,现代图像处理技术已经成为了工程领域、娱乐领域甚至医疗领域不可或缺的重要一环。
面向实时图像处理的多核并行计算机技术的提出,极大地推动了图像处理技术的发展。
本文将从多核并行计算机技术、面向实时图像处理的需求、并行计算机在图像处理中的应用、并行计算机在实时图像处理中的优势等方面,对该主题进行研究和探讨。
一. 多核并行计算机技术作为一种处理器架构,多核并行计算机技术已经被广泛应用于各种计算密集型应用。
它不仅可以提高计算能力,还可以更高效地利用硬件资源。
与传统的单CPU系统相比,多核并行计算机更适合处理大规模的图像和视频数据,并且能够大幅降低处理时间。
目前,大部分设计高质量图像和视频处理的算法都是基于多核并行计算机结构来实现的。
二. 面向实时图像处理的需求图像处理的应用范围非常广泛,如人脸识别、智能交通系统、医学图像分析、视频监控等。
对于这些实时处理的应用,需要高效准确地处理大数据流。
而多核并行计算机技术正是满足这些应用的最佳选择。
它可以高效、实时地处理大量数据流,同时可以快速处理并行计算和大量数据迭代。
三. 并行计算机在图像处理中的应用在数字图像处理中,应用广泛的算法包括二值化处理、滤波、形态学和边缘检测等。
这些算法通常是通过图像滤波在一组共享内存上实现的。
而在大数据量的实时处理中,这种传统方法已经无法满足需求。
并行计算机技术通过划分较大的图像和视频处理任务为小的并行任务,在大量数据集的范围内进行并行计算。
同时,多核并行计算机还可以执行几个不同的计算任务,进一步提高计算效率和速度。
四. 并行计算机在实时图像处理中的优势与传统的单CPU系统相比,多核并行计算机具有如下优势:1. 更出色的性能:并行计算机中的多核技术使得可以同时运行多个程序和操作。
2. 高效性:并行计算机可以更快、更高效地处理任务,特别是对于图像处理和实时数据处理应用。
3. 可扩展性:倍增处理器数量可以迅速提高性能,即随着更多的处理器引入,并行计算机能够很快地增加处理速度。
实时图像处理并行操作系统的微内核设计和实现Ξ刘 鹏 姚庆栋(浙江大学信息与通信工程研究所,杭州310027) 【提要】 本文主要设计和实现了运行在数字信号处理器阵列上支持中高层图像处理的实时图像处理并行操作系统(RTIPPOS)微内核.该内核提供了任务分解模型,并发进程管理,支持局部消息传递、同步,设计了快速共享消息传递方式和其它辅助性能,内核原语支持POSIX系统调用的C语言接口和抽象级的用户封装,有行为的高效性和预测性.本文是对RTIPPOS微内核设计的综述.关键词:嵌入式系统,图像处理,并行系统,操作系统,微内核,DSPDe sign and Implementation of Real2Time ImageProce ssing Parallel Op erating System MicrokernelLiu Peng,Yao Qingdong(Instit ute of Inf ormation and Com m unication Engi neeri ng,Zhejiang U niversity,Hangz hou310027)Abstract: The RTIPPOS(Real2time image processing parallel operating system)microkernel was s pecifically designed and implemented to support real2time intermediate and high level image processing on the Parallel DSP Array.The kernel provides a tasking model for program decomposition and supports message passing,synchronization,designs fast shared memo2 ry message passing,as well as other ancillary services.The kernel primitives supported POSIX system call interface to the C language and were designed to provide users binding of level abstraction,yet perform efficiently and behave predictably.This paper is overview of RTIPPOS microkernel design.K ey words: Embedded system,Image processing,Parallel system,Operating system,Microkernel,DSP一、引 言 随着嵌入式电子系统的快速增长,对实时操作系统也提出了各种要求.实时系统的正确性不仅依赖于计算的逻辑结果,而且依赖于结果的及时产生.一个典型的嵌入式系统是浙江大学信息与通信工程研究所“八五”重点研究项目“实时智能图像理解系统”,它的高层系统由专门研制的东方Ⅰ型小巨型信息处理机构成嵌入式系统作为硬件平台,它由16个Transputer T805[1]节点板及1个T805根节点板组成,分成两条流水线,处理速率400MIPS,设计了专用的输入接口和处理器间的传输接口,数据吞吐率每秒66M字节.我们的目的是如何利用现有的例子加速开发我们自己的用于满足更高要求的实时图像理解的嵌入式系统.共享的多处理器并行系统已经用于嵌入式实时系统.对于共享处理器系统一般有两种开发操作系统的方法.第一种是面向分布式操作系统的综合设计[2],它以相同的代码管理局部和全局资源,资源管理的主要数据结构则放置于共享存储器.这种方法的优点是能获得处理器间的快速通信,且占用少量的存储空间,同时支持预测性;缺点是同单处理器系统相比,同一处理单元内进程切换和通信太慢,因相同处理单元内进程切换和通信比处理器模块间的通信频繁.对于局域网的多处理器操作系统也有同样的问题.第二种一般是对商品化的单处理器操作系统进行功能的增强,增加并行处理环境的功能[3].这种方法可加快开发周期,同综合设计来比,进程间通信较慢,且不能根据特定的系统要求对其内核进行优化,而且商业化的单处理器操作系统的I/O系统不支持特殊的I/O 设备,必须增加功能;同时也可能不支持预测性.本文提出了一种设计实时图像处理并行操作系统(RTIPPOS)微内核的方法.第2节主要介绍采用的方法和原则;第3节介绍系统的体系结构;第4节介绍RTIPPOS微内核的设计和实现;最后给出了实验结果且提出了今后研究努力的方向.二、方法和原则 为了移值性好,支持并行和并发及预测性,采用实时系统的层次体系LARTS[4](Layered architecture for real2time sys2 tems),按照面向对象的原则来设计RTIPPOS的微内核.层次体系的思想是通过把整个系统分成层次,确保不同层次上的系统功能在逻辑上无关,从而简化复杂问题,即使将来硬件系统改变,软件改动量也小. 第7期1999年7月电 子 学 报ACTA EL ECTRONICA SINICAVol.27 No.7J uly 1999Ξ1998年2月收到,1999年1月定稿面向对象技术是一种面向数据流、集模块化、数据抽像、消息隐蔽和消息传递等诸多优点于一体,以对象为基础来构造一个操作系统.这样系统具有易维护性、访问与操作资源的一致性,在两个或多个任务间共享资源提供了方便和一致性的范例.微内核的基本思想是内核通常只保留地址空间、进程间通信、进程调度等几项功能.它依据客户-服务器模型概念,把所有其它的操作系统功能都变成一个个用户态的服务器,而用户进程则被当作客户.客户要用到操作系统时,通过微内核与服务进程通信,同时微内核也提供局部和全局通信服务.对服务模块进行封装,留出用户接口,即使将来系统有所变化只需要改变内核的对象元素,应用程序(用高级语言编写如ANSI C )无须改变;同时要满足进程间的快速消息传递,建立专用的服务模块,降低了任务在处理器之间的交换,增加进程间通信的吞吐率.同时为了支持多处理机和系统的预测性,由配置文件进行静态功能划分,预先分配系统资源,提供并发进程且分配各自的优先级,应用程序可被静态分成几个功能,分开的处理模块对应各自的任务划分,从而满足各自的时间要求,微内核和应用程序在任务开始前被加载到各自的处理单元.同样,所有被RTIPPOS 和应用程序用到的进程信号量、信道和存储单元在系统初始化时完成,系统的动态操作是RTIPPOS 原语图1 单板系统总体框图分配和申请及释放内存.三、系统体系结构 并行系统由4片DSP 芯片TMS320C40[5]以环的形式通过通信口互连构成共享存储器的多机系统(图1),每个处理器用局部总线和2M 字节局部存储器相连,4片TMS320C40的全局总线和2M 字节共享存储器相连;共享存储器用于处理器模块之间交换数据或传递信息,局部存储器用于执行程序.其中一个节点的一个通信口和接口电路相连,其余的空闲通信口均有线引出,当有两块或更多的插件板时,则可以利用空闲的通信口进行灵活的互连以构成更大更复杂的系统[6],系统现以PC 为宿主机,PC 机通过接口电路由运行在PC 机上的服务程序对多机系统进行监控服务,把多机系统的计算结果输出显示和满足多机系统的消息请求.采用层次结构思想对上述共享并行系统进行映射,对每一层内的对象进行封装,结果如图2.外设服务层的通信接口电路由CPLD 完成和C40通信口的接口,宿主机的服务软件SERV ER 在PC 机上实现,SERV 2ER 只对并行系统产生的消息请求作出服务,起到了服务监控功能.操作系统层主要包括实时微内核、时间管理、中断管理、容错处理、调度和分派、数据获取和控制功能.RTIPPOS 微内核主要功能有进程管理即优先级抢占的多进程调度;基于计数信号量的进程同步和通信;共享存储管理和芯片间的进程通信.中断管理主要处理外部中断并交给内核服务;时间服务包括进程时延和超时处理,主要向调度/分派模块提供信息;数据获取和控制软件主要是动态存储分配和字符终端I/O.同时为了保证系统的可靠性提供了容错机制.每个处理单元上都有一个RTIPPOS 微内核,只有根节点上有同外设输出输入的管理,其它节点上必须通过根节点同宿主机通信,宿主机只同根节点通信,其它节点同根节点通信.RTIPPOS 微内核通过参数传递过程调用应用服务层的应用程序,这些系统调用有输入参数和一个或多个输出参数.应用程序通过RTIPPOS 微内核的选择通信服务模块同操作系统通信.设计的系统根据并行系统的物理连接生成对应的配置文件来进行系统的加载;按照芯片硬件的具体要求,先对其初始化,然后交给根节点的根任务来控制并行系统的加载.加载完毕后要检测外部存储器的容量,布置系统堆栈和用户空间,初始化微内核用到的信号量和信道;然后根任务再创建第一级任务,第一级任务再把微内核和应用程序引导到各自的处理单元,当所有模块都引导后,微内核开始运行.此时根任务和第一级任务占用的存储空间可被覆盖重复使用.四、RTIPPOS 的设计和实现 11微内核通信结构图2 并行系统的层次体系结构映射微内核处于操作系统层(图2),主要目的是处理通信.为了通信,在装载好程序后,先准备好通信信道,微内核程序中管理通信的并发进程结构如图3.各个进程之间的切换通过调度器完成,中断服务进程也由分派模块完成,数据获取和控制主要是完成不同数据格式和通信协议的转换,同时进行数34第 7 期刘 鹏:实时图像处理并行操作系统的微内核设计和实现据通信.图3 管理进程通信的微内核结构示意图 程序引导进并行系统后,为了对进程运行情况查询、跟踪管理和输出运算结果,需要布置进程和SERV ER (宿主机上)或处理单元之间通信,在装好进程的用户工作空间布置7个信道,我们称为软信道(因为使用存储器中一个字位置).进程装载好后,为了通信布置了4个缓冲区如图4,各为512字(32)位.图4 通信缓冲区的布置(1)缓冲区1:为软4信道通往软2信道的缓冲区,和软1信道通往软3信道的缓冲区;是字符经软4或1信道送到缓冲区,缓冲区经软2或3信道输出.(2)缓冲区2:为通信口输入通往软1信道的缓冲区,进程从SERV ER 或根节点经通信口输入字符或数据送到C40上的缓冲区,通过软1信道送到选择信道进程中.(3)缓冲区3:为软2信道到通信口输出的缓冲区,进程把符号或二进制码数据通过软2信道送入缓冲区,这个缓冲区中数据再经过通信口输出到根节点或宿主机SERV ER ,经SERV ER 再到I/O 终端显示.(4)缓冲区4:为软6信道到共享存储器的缓冲区,进程把消息经过软6信道送入缓冲区,或缓冲区消息经过软7信道输出;此缓冲区主要为了处理单元间快速传递大量消息用.从图3可看出,选择信道进程,输入信道进程,输出信道进程,程序准备和启动main 的进程,以及应用程序进程组成了并发进程.其中选择信道进程中又有线程来支持选择通信,起到通信的桥梁作用.在每个进程中设置缓冲区主要是减少进程切换的开销.每个进程中功能调用作为模块进行封装,为了便于编程和通信.21进程控制进程控制原语主要是为了对进程生命周期控制以及实现进程状态的转换.为了使C40可以同时并发运行几个进程,并有不同的优先级.各并发进程分成正在执行,在等待队列中排队等待;预备输入,预备输出,等待到某一规定时间后激活.系统提供t mscreat p 和t msstopp 原语支持创建和撤消并发进程.当主进程要执行并行结构的进程时,用t mscreat p 原语产生必须的并发进程,它创建一个新进程并把其新的工作空间填到调度队列的尾部,而允许该新并发进程和原进程并发进行.一进程被激活后总是排到调度队列的尾部.用工作空间中一个位置作计数器,它计数在终结前还有几个并发进程需要运行.在并发进程运行前计数值等于并发的进程数,每执行完一个并发进程用t msstopp 原语撤消,则该计数减去1.到该计数为零时,表示所有并发进程执行完毕,而转入执行主进程.执行t msstopp 原语时,该原语根据其父进程的用户空间的某一确定位置作为计数器中的存数,如大于1则表明还有几个并发进程,从而执行另一等待的并发进程.同时系统提供了t msblockp 原语和t msw akupp 原语用于进程阻塞和唤醒.当进程请求某事件未出现或超时,该进程将调用t msblockp 原语,放弃处理机,转调度程序.由于释放资源带来的释放因资源而阻塞的进程调用t msw akeupp 原语,t m 2sw akeupp 原语对调用者本身无任何影响.31进程间通信和同步并发程序是在一定时间间隔中,有多道程序在同时运行,即每道程序在该时间段内都已经开始运行,且都没有结束.各道程序运行的次序是不固定的,要按当时的运行环境和条件以及各道程序运行情况的不同而异.设计并发进程程序必须解决两个问题:进程间的通信和进程间的同步.并行系统的通信包括C40处理单元之间通信,同一个C40处理单元上进程之间的通信,以及C40处理单元和宿主机之间的通信.RTIPPOS 微内核采用基于消息传递的同步消息原语和缓冲消息原语来实施进程之间的通信,即进程用直接发送和接收消息来替代共享变量的读和写,消息传递是通过直接发送和接收消息,一般不使用共享变量.通信信道的指定采用静态信道直接命名法(一对一的通信关系).消息的输入和输出指明一个信道地址,这个信道地址如是通信口地址,就是外部通信,如果信道地址是内存缓冲区中一个字,就是该C40中进程之间内部的通信.以PC 机为宿主机,有SERV ER 服务文件在PC 上运行,44 电 子 学 报1999年SERV ER的构造及通信协议参考Transputer和3L公司通信体系结构[7].SERV ER和C40经过通信口通信,在C40上由通信程序掌握管理C40和I/O请求,由运行库把I/O的语句转换成消息,经过通信程序请求SERV ER接收,并在宿主机上显示并行系统的运算结果和消息.外部通信执行t msinw ord、t msoutw ord、t msinmsg、t m2 sout msg操作.内部通信执行t msin t msout、t msout mess、t msin2 mess操作.当执行这些操作后该进程就被挂起,把该进程送到排队队列中,要等到通信完毕,才会恢复执行.内部通信指C40中几个进程之间的通信.内部通信用存储器中一个字缓冲作信道,称为软信道.在通信时,发送消息的进程P把已准备好的工作空间地址的消息的指针送到信道中.P则退出进行,等待在排队队列中,这时信道包括要输出消息存放工作空间的指针.当进程准备好执行一输入指令则把P工作空间消息拷贝到Q的工作空间指定的存放地址中.消息拷贝完后,P进程在等待队列,信道又回到空态,P进程只有等候到执行时才继续执行.利用计数信号量机制解决进程间通信的同步问题.计数信号量[8]是一个记录型的数据结构,信号量可描述为: type semaphore=record value:integer; L:list of process;end;每个信号量有一个整型变量和一个进程队列.当一进程必须在一信号量S上等待时,它加到进程队列上,tmssignal操作从等待进程队列上移去该进程并唤醒它.相应的信号量操作定义如下:tmswait(S):S.value:=S.value-1; if S.value<0 then begin add this process to S.L; t msblockp(P); end;tmssignal(S):S.value:=S.value+1; if S.valueΦ0 then begin remove a process P from S.L; t msw akeupp(P); end;t msblockp原语挂起它恳求的进程,t msw akeupp原语恢复被阻塞的进程,若信号量的值为负,它的大小表明等待这个信号量的进程数.要确保没有两个进程同一时间对同一信号量执行t msw ait和t mssignal操作.当进程执行t msw ait操作后,若S.value<0,即S的值为负,则由t msblockp原语将它置为阻塞状态后,排在信号量S 的阻塞队列中,然后给处理机重新调度.执行t msw ait后是让权等待,放弃CPU重新调度,等待着其它进程执行t mssignal 操作.一旦其它进程执行了t mssignal操作后,发现S.valueΦ0,即S的值表明有等待此信号量的进程,调用t msw akeupp 原语,把从阻塞队列中第一个进程置为就绪状态后送往就绪队列.41选择通信消息传递要实现同步即发送消息进程要等待接收消息进程来取消息;接收消息进程也要等待发送消息进程所提供的消息.消息的发送和接收也通过缓冲区进行,即发送消息进程只将消息发送至缓冲区,接收消息进程从缓冲区获得消息;此时可不延迟发送或接收消息的进程,仅在缓冲区空或满时才有同步要求.称不延迟调用者的消息传递语句为非阻塞的,否则就是阻塞的.在并行系统和并发任务较多的系统中,由于消息传递的频繁和多样化,建立选择信道的线程,可使阻塞消息传递语句起到非阻塞语句的语义效果[9].采用布尔表达式优于显式的信号量或条件变量.在通信服务进程中需选择某一信道进行通信,选择信道的一组原语为t msalterp(开始选择)、t m2 salterw ait p(守护等候)、t msalterendp(结束选择).在选择信道的线程中,由t msalterp开始,准备信道的守护,守护的布尔变量成分(真伪)置于寄存器R0,守护的信道成分置于辅助寄存器AR1,守护的布尔变量为真则表示守护已激活,布置时置布尔变量为真,激活守护.若布尔表达式为假保护失败则命令异常终止.寄存器AR1数据地址信道情况和布尔变量作相与操作,其结果作为守护信号,意义如下:(1)R0=true∧AR1=“无进程等候在信道”]“启动信道通信”(2)R0=true∧AR1=“当前进程已在等候信道”]“已在等候此信道故可不管”(3)R0=true∧AR1=“另一进程在等候信道”]“置标志表示守护已准备好”(4)R0=false∧AR1]R0=false信道布置激活后调用tmsalterwait原语,即所有保护既不成功也不失败,只有不死锁,就延迟执行引起重新调度,直到其中一个守护成功,从而转向守护成功的线程服务支路.51共享通信通过P、V操作在全局信号量上提供过程互斥访问共享数据,在多处理器环境用test2and2set指令来对共享进行锁操作,同时为防止死锁,禁止在进入临界区时中断,操作完毕后,使中断使能.选择带缓冲的消息传递,因它可允许更多的并行性,消息传递不是通过值传递而是通过指针传递,用户在共享存储中可直接对消息进行操作,无须从共享拷贝到局部存储器,有界消息传递用信道来实现,大小在系统创建时确定,共享消息缓冲在信道创建时预分配.共享存储器中发送进程通信请求通过信道收来实现物理上进程间通信(IPC),每个处理单元独占使用一个信道,每个信道对应两个计数信号量,每个信号量对应一个方向,共享存储器所要求的信道在初始化时预分配,专用的信道确保只被两个处理器访问.我们的目标是实现IPC的高效性,建立同步发送和接收原语.同步I PCt mssend和I PCt msreceive原语把局部消息传递到共享缓冲.54第 7 期刘 鹏:实时图像处理并行操作系统的微内核设计和实现发送模块主要执行下列操作:创建包含指向共享缓冲的IPC 请求指针.若信道满则把它插入IPC 请求的局部队列,等到信道激活,若信道有空,则传递IPC 请求到信道,送一中断信号到共享仲裁器和接收处理器模块.在输入服务模块等待从接收处理器来的确认信号.当接收到中断,接收处理模块的输入服务进程执行下列操作: 检查信道从信道读IPC 请求,根据通信的语义创建IPC 的响应.检查局部队列的状态,若非空则插入IPC 响应队列,若空则检查信道状态,若信道满则插入IPC 响应到局部队列,等确认信道激活.若信道非满则传递IPC 响应到信道,送一中断信号到发送处理器模块.发送IPC 请求响应到指定信道.当读到满信道的IPC 请求,输入服务发一中断消息到发送模块,表明信道又激活;送出模块收到中断消息,在输入处理模块检查局部队列,传递IPC 请求或响应IPC请求到信道.在传输中,IPCtmssend 原语传递IPC 请求到信道,同样,输入服务进程在接收模块对IPC 的响应到信道,传递提交输出服务进程只当信道满.这种实现模式可使通信处理模块交换次数降低,提高IPC 的吞吐率,不会降低系统的并行性.同样,设计消息缓冲区的目的也是如此.图5 共享通信模式61I/O 输出客户2服务器模型也用于实现远程I/O 操作.一进程调用远程I/O 操作可认为是一客户,客户执行远程I/O 操作通过发请求消息到接收服务进程,接收服务开始执行请求的操作,发送服务发送回答的消息到客户,客户与服务器之间的通信可通过通信口完成.产生和发送请求消息的处理器模块是源模块,而连接外设的处理器模块是目的模块.远程I/O 操作可通过共享或通信口把消息发送到根节点,然后根节点调用自己的局部I/O 操作把它翻译成外设接收的语义,服务的SERV ER 根据相应的语义完成系统的I/O 请求,且产生相应的确认语义把它作为消息通过相应的通信口传回源模块完成通信握手.五、结 论 RTIPPOS 全部是用汇编语言编写,主要是为了充分利用DSP 的特性,提供符合POSIX 标准的C 语言系统调用接口.系统体系结构对于图像理解的中高层计算和推理有较高的效率,由于图像理解的特殊性,中高层主要完成算术逻辑和符号操作等的标记、表达、理解[10],标记、表达、理解算法较固定,通过预先分配算法任务到各个处理机上,对大桥(256×256灰度图像)理解[11]排成任务流水需013s.系统对中断服务的响应时间为9个周期,进程调度的开销为010018ms ,进程分派开销为010019ms.内核代码占用存储空间为3K 字(32位).总之,我们设计的系统需在实践上应用,比商业化的系统来讲还需进行系统的优化.同时研究软件系统的通信效率同硬件体系结构的关系,以及负载平衡问题.参 考 文 献1 The Transputer Data Book.INMOS Limited.19862 V.P.Holmes and D.L.Harris.A designer ’s perspective of the Hawkmultiprocessor operating system kernel.ACM Oper.Syst.Rev.,1989,23(3):158~1723 M.Cvihovic and M.Kune.An approach to the design of distributedreal 2time operating systems.Microprocessors and Microsystems ,1992,16:81~904 N.V.Satyanarayana ,R.Mall and A.Pal.A layered architecture forreal 2time systems.Microprocessors and Microsystems ,1996,20:241~2505 TMS320C4X User ’s Guide.Texas Instruments ,19916 于慧敏,姚庆栋.基于C40阵列图像处理系统结构的研究.电子学报,1998,26(7):138~1437 3L Communications Architecture and Protocol Definitions.3L Ltd.,19958 A.Silberschatz ,P.B.G alvin.Operating System Concepts.Addison 2Wesley.Fourth edition ,19949 郑衍衡,徐良贤.操作系统高等教程.上海:上海交通大学出版社,199010 C.C.weems.Architectural requirements of image understandingwith respect to parallel processing ,Proceedings of the IEEE ,1991,4(79):537~54611 史册,徐胜荣,姚庆栋.基于团块的特征提取.计算机学报,1997,20(12):1124~1128刘 鹏 博士,1970年出生,1992年、1996年于浙江大学分别获得工学学士、工学硕士、博士学位.现为浙江大学信息与电子工程系教师.主要研究方向:实时操作系统、并行处理技术、图像理解、会议电视等.姚庆栋 1932年出生,现为浙江大学信息与电子工程学系教授、博士导师.主要研究领域:图像编码和通信、高清晰度电视和数字电视、数字通信系统、实时图像处理、图像制导和导航、并行处理、专用集成电路设计等.64 电 子 学 报1999年。