参考答案: Begin S:semaphore; S:=1; Cobegin Process Pi(i=1,2,…,n) begin 按旅客订票要求找到Aj; P(S); Ri:=Aj; if Ri>=1 then begin Ri:=Ri-1; Aj:=Ri; V(S); 输出一张票 end else begin V(S); 输出“票已售完” end end; Coend; End;
假设铁路自动售票系统有 n 个售票终端,该系统为每个售票终端创建一个进程 Pi(i=1,2,…,n)管理车票销售过程。假设 Tj(j=1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp 为 Pi进程的临时工作单元,x 为某用户的购票张数。Pi进程的工作流程如下图所示, 用 P 操作和Ⅴ操作实现进程间的同步与互斥。初始化时系统应将信号量 S 赋值为(请作答此空)。 图中(a)、(b)和(c)处应分别填入( )。
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pi(i=1,2,…,n)管理车票销售过程。假设Tj(j=1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所示,用P操作和V操作实现进程间的同步与互斥。初始化时系统应将信号量S赋值为(请作答此空)。图中( a )、( b )和( c )处应分别填入( )。