|
7.1.1
当前事件列表
AUTOMOD中当前事件列表就叫“当前事件列表”。
Cloned LOAD(复制加载);当系统时钟更新时离开FEL的LOAD(加载)以及从用户控制列表上被请求的LOAD被立刻放入CEL。
插入的规则:先按照优先度排列(优先度是每个LOAD内置的属性),然后在优先度一致的实体中按照FIFO顺序。
当CEL变空的时候,会检查“条件延迟列表”,LOAD会从那里转到CEL中。
这个情形会继续直到CEL为空,没有任何可转移的“加载”,这时EMP阶段结束,CUP初始化。
7.1.2
未来事件列表
AUTOMOD未来事件列表和其他工具的FEL是差不多的。
Load在“时间延迟”的状态到达FEL(通过执行一个Wait For语句)。AUTOMOD允许在Wait For语句里定义时间单位的规格:天,小时,分,秒。
AUTOMOD的CUP阶段,同时将多个Load从FEL中移去,如果这些Load在最早移动时间上是一样的,然后将他们逐个放入CEL中合适的位置。
在AUTOMOD中存在内部实体,被称作“逻辑加载”,逻辑加载可以做好多事,比如可以在FEL上等待时机触发预安排的班次休息等等。
7.1.3 延迟列表
延迟列表(DL)中Load向“有限能力元素”请求资源并等待(比如资源或者其他控制元素,比如individual资源,队列,block,计数器或process)
模型里每一个“有限能力”的资源元素都和DL联系着。
从这个机制里产生的等待是 “相关等待”。
每当有能力被释放,一个LOAD就从DL表头中被临时地释放到CEL(但是在DL中这个LOAD的位置还是有的)。
当EMP中LOAD被加载,它就尝试着请求资源。如果请求失败(比如它要求二个单位,但是只有一个单位的能力可用),LOAD就回到DL中原先的位置继续等待。
在这种验证以后,如果还有其他能力可用,那DL中下一个LOAD就会被放到CEL上。处理“活动的LOAD”的工作继续。每次EMP阶段中,临时放置的LOAD被验证后,存在可获得的资源会使DL中另外一个LOAD移动。
7.1.4 条件延迟列表 |
|