控制驱动部分是面向对象设计模型的一部分,这部分由系统中全部的主动类构成。
在面向对象方法中,用一个主动对象表示一个独立的控制流,该对象驱动进程或线程。
控制流是一个在处理机上顺序执行的动作序列,也是进程或线程的别称。每个主动类所创建的一个主动对象是系统中一个控制流的驱动者。
进程:具有一定功能的程序的一次执行过程。
线程:在一个进程内部可以定义一些能够分别占用处理机,而且要同时进行计算的执行单位,这样的单位就是线程。
进程和线程的关系图解:133页,图9-1
在并发系统中往往存在多个控制流。
识别控制流:
1、OOA中定义的主动对象
2、系统分布方案所要求的多控制流
3、系统的并发需求所要求的多控制流
4、为实现方便而设立的控制流(负责处理机和设备通信的控制流,针对始终任务的控制流)
5、根据任务的紧急程度而设置的控制流
6、为处理异常而设置的控制流
7、为实现并行计算设置的控制流(分为划分,通信,组合,映射 四个阶段)
8、起协调者作用的控制流
线程和进程的主动对象及其所属的主动类的表示法:136页,图9-3
控制流的常用通信机制:
1、操作调用:一个控制流的对象通过发送一条同步消息调用另一个控制流中的对象的操作。
2、邮箱(类似于异步通信):请求者发送信号,然后继续执行;接受者在某个时刻才开始接受信号并处理,处理完后给请求者发送信号回传结果。
3、共享存储器:多个控制流的对象利用一块公共的存储器,作为通信区域。
4、远程过程调用:简单地说是调用网络上的远程对象。
线程间的通信建模:137页,图9-4 , 图9-5