亚线程和动态亚线程树的设计与研究
发布时间:2007/8/15 0:00:00 访问次数:473
多线程是近年来非常流行的一项编程技术。尤其是在网络传输和资源共享软件的设计中,在多媒体的采集和处理、并行计算、并行处理等方面,更是由于高效性和可靠性要求而使线程技术得到广泛使用。多线程技术保证了程序模块间的分离度,而且可通过合理划分功能模块而减少通信量,实现广泛的数据共享,从而使系统性能得到很大提高。
但是,随着线程数目的增多,共享数据的管理将变得相当复杂。线程的增多导致对共享数据区的访问非常频繁,从而增加了系统的额外开销。为此,本文提出了基于线程分组的亚线程机制。
在设计中,只要分组合理,亚线程之间的调用就不会过于频繁,从而可减少多个线程频繁访问共享数据而引起的混乱。由此,亚线程机制可以有效地提高系统性能,同时保证数据的安全。
1 亚线程机制的设计思想
1.1 亚线程和亚线程树
亚线程在结构上是基于线程的分组。每个亚线程由一定数目的线程和共享数据组成。编程时,把互相之间有紧密关系或存在频繁通信关系的线程及共享数据分到同一个亚线程中。亚线程内部的互相调用和通信几乎不受限制,只有亚线程之间的访问会受到一定限制。
一般说,线程是被个别创建的。在亚线程机制中,每个线程被分到某个亚线程中,一旦确定,便不再改变。
总之,亚线程可分为根亚线程和普通亚线程两类。最基本的亚线程叫根亚线程。若创建线程时不指定亚线程,该线程就会自动归属于根亚线程。除了根亚线程之外的亚线程都是普通亚线程。
在亚线程机制中,采用亚线程树来实现总体设计。亚线程树是程序中所有亚线程构成的树形结构。在这种树形结构中,一个亚线程通常从属于其它亚线程。所以,在构建一个新的亚线程时,必须指定它从属于哪个亚线程。若未指定,则会自动归属于根亚线程。这样,一个应用程序中的所有亚线程最终都会直接或间接归属于根亚线程。亚线程树结构如图1所示。
图1 亚线程树状结构图
在采用进程-线程结构的应用程序中,亚线程是介于进程和线程之间的中间结构。实验表明,由于亚线程的加入,使系统效率得到很大提高。
1.2亚线程机制的具体实例
在本课题组完成的863项目《远程机器人控制系统》中采用了进程-线程结构,在此基础上加入了亚线程后,形成进程-亚线程-线程机制。
此系统主要功能是:通过图像传输和命令传输,对远程机器人进行相应控制,并通过加密技术实现对信息的即时加密。系统采用Client/Server结构。表1和表2分别为Server端和Client端的线程和亚线程列表。
在Server端,亚线程树结构如图2所示。其中,图像采集、图像压缩和图像传送三个线程的处理对象都是视频文件;命令接收和命令执行两个线程的处理对象都是命令;文件加密线程和文件解密线程的处理对象都是文件;文字发送线程和文字接收线程则负责文字通信。基于上述特点,这些线程构成了图2所示的亚线程树结构。
图2 远程机器人控制系统Server端亚线程树结构图
3 远程机器人控制系统Client端亚线程树结构
在Client端,程序运行后,每连接一个机器人站点就建立一个进程。每个进程中的亚线程结构如图3所示。各亚线程的构建方法与Server端类似。
加入亚线程机制后,亚线程间的数据访问受到限制。例如文字发送、接收线程和S/C同步线程基本不访问加密解密的文件,亚线程管理器甚至可以禁止这些线程去访问传输的文件。又如,对传输的视频数据,除了Server端的图像采集、压缩和传送线程,以及Client端的图像接收、解压缩和显示线程外,不能被其他任何线程访问。这样,通过亚线程机制优化了整个应用程序的运行,并保证了数据的安全。此外,由于主要操作都归为亚线程内部操作,所以,大大提高了程序执行的效率。
1.3 亚线程机制的特点
亚线程机制的特点是,允许对一个亚线程中的所有线程同时操作。例如,可通过调用相应的方法来设置其中所有线程的优先级,也可以启动或阻塞所有线程。
亚线程机制的另一重要特点是为安全性提供了很好前提。它通过分组来区分不同安全级别的线程,对不同亚线程中的线程进行不同处理,还可以通过亚线程的分层结构来支持不对等安全措施。在亚线程机制中,一个线程只能修改所属亚线程树中的其它线程,这种修改包括修改线程优先级别和挂起或唤醒线程等操作。
由于一个亚线程只能访问那些从自己的根亚线程树分支出来的线程,而不能访问其他任何线程。因此,可有效保证数据的安全。
2 动态亚线程树的运行机制
动态亚线程树是对亚线程机制的进一步优化,
多线程是近年来非常流行的一项编程技术。尤其是在网络传输和资源共享软件的设计中,在多媒体的采集和处理、并行计算、并行处理等方面,更是由于高效性和可靠性要求而使线程技术得到广泛使用。多线程技术保证了程序模块间的分离度,而且可通过合理划分功能模块而减少通信量,实现广泛的数据共享,从而使系统性能得到很大提高。
但是,随着线程数目的增多,共享数据的管理将变得相当复杂。线程的增多导致对共享数据区的访问非常频繁,从而增加了系统的额外开销。为此,本文提出了基于线程分组的亚线程机制。
在设计中,只要分组合理,亚线程之间的调用就不会过于频繁,从而可减少多个线程频繁访问共享数据而引起的混乱。由此,亚线程机制可以有效地提高系统性能,同时保证数据的安全。
1 亚线程机制的设计思想
1.1 亚线程和亚线程树
亚线程在结构上是基于线程的分组。每个亚线程由一定数目的线程和共享数据组成。编程时,把互相之间有紧密关系或存在频繁通信关系的线程及共享数据分到同一个亚线程中。亚线程内部的互相调用和通信几乎不受限制,只有亚线程之间的访问会受到一定限制。
一般说,线程是被个别创建的。在亚线程机制中,每个线程被分到某个亚线程中,一旦确定,便不再改变。
总之,亚线程可分为根亚线程和普通亚线程两类。最基本的亚线程叫根亚线程。若创建线程时不指定亚线程,该线程就会自动归属于根亚线程。除了根亚线程之外的亚线程都是普通亚线程。
在亚线程机制中,采用亚线程树来实现总体设计。亚线程树是程序中所有亚线程构成的树形结构。在这种树形结构中,一个亚线程通常从属于其它亚线程。所以,在构建一个新的亚线程时,必须指定它从属于哪个亚线程。若未指定,则会自动归属于根亚线程。这样,一个应用程序中的所有亚线程最终都会直接或间接归属于根亚线程。亚线程树结构如图1所示。
图1 亚线程树状结构图
在采用进程-线程结构的应用程序中,亚线程是介于进程和线程之间的中间结构。实验表明,由于亚线程的加入,使系统效率得到很大提高。
1.2亚线程机制的具体实例
在本课题组完成的863项目《远程机器人控制系统》中采用了进程-线程结构,在此基础上加入了亚线程后,形成进程-亚线程-线程机制。
此系统主要功能是:通过图像传输和命令传输,对远程机器人进行相应控制,并通过加密技术实现对信息的即时加密。系统采用Client/Server结构。表1和表2分别为Server端和Client端的线程和亚线程列表。
在Server端,亚线程树结构如图2所示。其中,图像采集、图像压缩和图像传送三个线程的处理对象都是视频文件;命令接收和命令执行两个线程的处理对象都是命令;文件加密线程和文件解密线程的处理对象都是文件;文字发送线程和文字接收线程则负责文字通信。基于上述特点,这些线程构成了图2所示的亚线程树结构。
图2 远程机器人控制系统Server端亚线程树结构图
3 远程机器人控制系统Client端亚线程树结构
在Client端,程序运行后,每连接一个机器人站点就建立一个进程。每个进程中的亚线程结构如图3所示。各亚线程的构建方法与Server端类似。
加入亚线程机制后,亚线程间的数据访问受到限制。例如文字发送、接收线程和S/C同步线程基本不访问加密解密的文件,亚线程管理器甚至可以禁止这些线程去访问传输的文件。又如,对传输的视频数据,除了Server端的图像采集、压缩和传送线程,以及Client端的图像接收、解压缩和显示线程外,不能被其他任何线程访问。这样,通过亚线程机制优化了整个应用程序的运行,并保证了数据的安全。此外,由于主要操作都归为亚线程内部操作,所以,大大提高了程序执行的效率。
1.3 亚线程机制的特点
亚线程机制的特点是,允许对一个亚线程中的所有线程同时操作。例如,可通过调用相应的方法来设置其中所有线程的优先级,也可以启动或阻塞所有线程。
亚线程机制的另一重要特点是为安全性提供了很好前提。它通过分组来区分不同安全级别的线程,对不同亚线程中的线程进行不同处理,还可以通过亚线程的分层结构来支持不对等安全措施。在亚线程机制中,一个线程只能修改所属亚线程树中的其它线程,这种修改包括修改线程优先级别和挂起或唤醒线程等操作。
由于一个亚线程只能访问那些从自己的根亚线程树分支出来的线程,而不能访问其他任何线程。因此,可有效保证数据的安全。
2 动态亚线程树的运行机制
动态亚线程树是对亚线程机制的进一步优化,
上一篇:PIC芯片晶振设计
上一篇:功率匹配与储备功率的发烧经