不同类型的同步操作: (1)原子性 进程常需要以单原子操作方式完成 串操作: Parfor(i: =1: i<n: i++)i Atomic X=X+1; y=y-1; 完成隐式同步 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼不同类型的同步操作: ◼ (1)原子性 ◼进程常需要以单原子操作方式完成 一串操作: Parfor(i:=1;i<n;i++){ Atomic {X=X+1;y=y-1;} } 完成隐式同步
(2)控制的同步 m使进程将处于等待状态: paor(i:=1;i≤n;i++){ Pi Barrier aQi 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 (2)控制的同步 ◼使进程将处于等待状态: ❑parfor(i:=1;i<n;i++){ ❑Pi ❑Barrier ❑Qi ❑}
例题:另一种控制同步的构造 是临界区: parfori: =1; i<n; i++) critical X+1; y=y-1; 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼例题:另一种控制同步的构造 是临界区: ◼ parfor(i:=1;i<n;i++) ◼ { ◼ critical{X=X+1;y=y-1;} ◼ }
说明: 口应注意临界区是互斥的,因为每次 只允许一个进程执行这两条语句。 与此相反,只要原子性是强制的, 多个进程就可执行它们自己的原子 区。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼说明: ❑应注意临界区是互斥的,因为每次 只允许一个进程执行这两条语句。 ❑与此相反,只要原子性是强制的, 多个进程就可执行它们自己的原子 区
(3)数据同步 执行一个数据同步操作的进程将处 于等待状态,直至程序执行到达某 种数据状态。 如下面的代码段所示: parfor(i: =1: i<n: i++) Lock(S); X=X+1; y=y-1 un locks):I 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼(3)数据同步 ◼ 执行一个数据同步操作的进程将处 于等待状态,直至程序执行到达某 种数据状态。 ◼ 如下面的代码段所示: parfor(i:=1:i<n;i++) {lock(S);X=X+1;y=y-1; unlock(S);}