同步会合机制:输入语句与相关操作深度解析
1. 同步会合概述
同步会合(Rendezvous)与远程过程调用类似,涉及两个进程:调用进程和处理调用的进程。与远程过程调用不同的是,调用由现有进程处理,不会因调用而创建新进程。从调用进程的角度来看,同步会合是同步的,且两个进程可位于不同的虚拟或物理机器上。
2. 输入语句
输入语句是一种强大且复杂的语句,具有许多可影响其执行的可选部分。
- 一般形式与语义 :输入语句包含一个或多个由方括号分隔的操作命令。每个操作命令指定要处理的操作、可选的同步子句、可选的调度子句和代码块。其一般形式如下:
inni [
op_expr (formal_list) st sync_expr by sched_expr {
// 代码块
}
// 其他操作命令
] else {
// 无可选调用时执行的代码
}
其中, op_expr
是计算为操作的表达式, formal_list
包含参数的类型和名称, st
引入同步表达式,指定可接受的操作调用, by
引入调度表达式,决定调用的处理顺序。
一个进程执行输入语句时,通常会延迟直到有可选的调用。可选调用是指对应操作的布尔值同步表达式为真(或省略)的调用。一般情况下,最旧的可选调用会被处理。若操作命令包含调度表达式,则处理的调用是最旧的可选调用且能使调度表