计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

多线程技术在鸡冠岩电站微机监控系统中的应用(2)

2014-02-05 01:16
导读:2.3系统网络结构 系统中选用10mbps以太网,采用总线型网络拓扑结构,此结构简单且可扩充性好,当需要增加节点时,只需在总线上增加一个
 2.3系统网络结构

  系统中选用10mbps以太网,采用总线型网络拓扑结构,此结构简单且可扩充性好,当需要增加节点时,只需在总线上增加一个分支接口便可与节点相连,当总线负载过重时还可以扩充总线,符合监控系统开放性设计要求。监控系统通讯组网图如图2所示。

    

  3多线程技术在鸡冠岩电站微机监控系统软件中实现

  3.1多线程技术概述及其优点

  监控系统软件的各功能模块,都是按照进程来编制的。进程就是应用程序在一个数据集合上的一次动态执行过程。一个任务只会有一个进程,系统中每一个进程都在自己独立的内存地址空间运行,每个进程又可以同时执行多个线程,但有且只有一个主线程,各线程可分别完成不同的功能。线程是操作系统分配cpu时间的基本实体,每个线程占用的cpu时间由系统分配,系统不停的在线程之间切换,进程中的线程共享进程的虚拟地址空间,可以访问进程的资源,处于并行执行状态。每个线程可以指定优先级,优先级高的线程调用次数比优先级低的线程频繁。在对监控系统软件编程过程中充分利用多线程技术的优势,可极大提高软件稳定、安全和高效性。

  在传统的dos操作系统下,应用程序处在单任务单一线程运行过程,每个程序的运行都是抢先式,即占据整个系统资源,同一时间内其它程序无法运行。在16位x-window系统中,多任务处理功能也具有很多局限性,主要表现为每个应用程序都有其自己的消息,当应用程序响应一条消息并返回等待状态时,它将会变成程序列表中的最后一个进程,等待着处理其它的消息,执行处理复杂事件的应用程序时,其它的应用程序必须等待,此时敲击键盘或鼠标,不会立即反应,当执行一个非常耗时的应用程序时,等待的时间是令人难以接受的。鸡冠岩电站微机监控系统主控机采用32位microsoftwindowsntserver4.0分时多任务实时操作系统作为系统软件平台,其突出特点是健壮性和稳定性,程序对cpu的占用时间由系统决定,系统可同时运行多个进程,每个进程又可同时执行多个线程,本进程的崩溃不会影响其它进程正常工作,从而不会造成整个系统“死机”。

  3.2delphi中多线程序的实现方法

  解决分布式实时任务的问题,必须采用多线程处理方案。它可极大程度地避免瓶颈,除具有灵活的任务管理功能外,还可实现多重处理。多线程技术可以通过线程包的设计来实现。线程包就是供用户或程序员调用的关于线程的一组系统调用(或原语)。线程的管理方法有静态方法和动态方法两种。在处理分布式实时多任务时,一般采用的是动态方法,即在任务的执行时创建或撤消一个线程。系统调用(即线程创建)需要指明线程的主程序、栈的大小、优先级和一些其它参数。该调用返回一个线程的标识号,用于以后有关该线程的调用。线程包的实现有两种方法:一种是在用户空间实现,另一种是用操作系统内核来实现。在内核实现线程的方法中,由于由内核来管理线程,因此不需要运行系统,当进程想创建或撤消一个线程时,只需要做一次系统调用即可。delphi是bor/land公司开发的一种先进的可视化编程环境。在delphi中,其线程是用于运行代码的win32对象,每个进程产生时都有一个线程,即主线程。一个进程上可以有多个线程,这些线程可以共享同一进程空间且可并发执行。当主线程结束时,便标志着应用程序的结束,相应的进程便会从系统中卸载。因此delphi是使用操作系统内核来实现线程包的。为了管理所有线程,内核对每个进程都设置一个表,其中包括该进程中每一个线程的入口,每个入口含有线程的寄存器、状态、优先级及其它信息,这些信息与用户级线程相同,只不过它此时保存在内核中而不是在用户空间里。对于大多数应用程序来说,可以在该程序中用一个线程对象来代表一个执行的线程。线程对象封装了线程最常用的必须的方法。delphi的tthread类封装了线程,使用tthread类可以方便地在delphi中创建多线程应用程序。

  3.3监控系统软件中多线程技术的应用

  分布式实时多任务系统在工业控制中有着广泛的应用。下面就是利用delphi的多线程技术开发的一个分布式实时多任务多线程系统模型的例子。

  定义plc、温度巡检仪通讯采集线程名称为cthfx2nwdut,线程实例为runcthfx2nwd。

  初始化部分为:

  runcthfx2nwd:=cthfx2nwd.create(false);

  runcthfx2nwd.freeonterminate:=false;

  runcthfx2nwd.priority:=tpidle;

  线程执行部分为:

  while(notterminated)dobeginsynchronize(fx2nwdcomm);

  end;

  运行线程:

  ifruncthfx2nwd.suspendedthenruncthfx2nwd.resume;

  以上多线程技术采用了delphi的tthread类对象,即threadobject。由于各线程都在相互独立的地址空间运行,无资源的共享冲突,故未采用线程互斥访问技术(如lock、unlock、waitfor等)。

共3页: 2

论文出处(作者):
上一篇:武庄河道整治工程铅丝笼沉排护岸设计与施工( 下一篇:没有了