我有以下代码。问题在于我需要定义变量(台面条件)和函数,以便最多只能有8个进程进行通信(每次1个)。
SesMoni M;
int main() {
...
M.LockoutAccess():
M.FreeAccess():
....
}
Monitor SensorMonitor {
/* Variables???????? */
void LockoutAccess() { /*????????/* }
void freeAccess() { /*????????/* }
到目前为止,我已经获得了基本代码(下面但它仅用于分配单个资源。如何实现此目的,最多允许8个资源将其置于上述代码中?
{
boolean busy;
condition x;
void acquire(int time) {
if (busy)
x.wait(time);
}
void release() {
busy = false;
x.signal()
}
initialization.code() {
busy = false;
}
}
外部传感器通过串行线连接到计算机。一次只有一个过程可以与传感器通信。串行线路的控制器可以从最多7个进程维持对传感器的访问。 在伪代码中编写监视器以协调对外部传感器的进程访问。
监视器伪代码需要定义监视变量和监视器功能,以便最多只有7个进程实际与传感器通信。