该程序模拟客户到银行取号-排队-被叫号-被服务的过程;
2) 程序执行流程如下:
Step1: 客户到达银行,并从取号机取号;
Step2: 如果大厅中有空闲座位,则座下等待,否则,在大厅外等待;
Step3: 银行职员如果发现有客户等待,则依次叫号服务,否则休息;
Step4: step1-step4重复执行
3) 大厅中座椅数量为20个;
4) 服务窗口为2个;
5) “客户到来”通过命令行输入客户名字模拟;
6) 为了模拟实际情况,每个客户服务时间不小于20秒,可随机确定;
7) 程序顺序列出不同窗口服务客户的:名称,窗口号,服务时间
思想:程序等待一特定信号输入,若接收到该信号,则创建对应的进程。
如果目前等待态的进程个数等于座位数,则该进程阻塞。否则,进入等待态。
若等待态的进程个数小于座位数,查看是否有阻塞进程,若有则唤醒,若无,则不做任何操作。
ps:本程序在Linux下已经运行成功
1