新生报道期间,计算机学院有一个窗口办理报道手续,因为疫情防控需要,每次排队新生不得超过N个人排队(包括在办理中的),每位新生进入报到处的时候都需要门口志愿者核对,是否能进入,门口志愿者只有一名,即每次只允许一个新生使用,当窗口空闲的时候,需要根据队列最先的为其服务,大概流程描述为:
Cobegin{
process 新生i{
门口志愿者处确认是否能进入;
排队;
报道;
}
Process 报道处{
While(1){
叫下一位新生;
办理报道手续;
}
}
}
请添加信号量和pv操作,实现描述的互斥与同步问题,要求写出完整的过程,并说明信号量的含义并赋予初始值。