系统中countp表示空闲打印机的台数,每个进程释放打印机都会执行由“Rßcountp”、“RßR+1”和“countpßR”三条指令组成的程序段A(对应于 “countp + +;” 语句,R为寄存器),所以countp为共享变量。设当前countp=2,之后执行的两个进程P1和P2都有释放打印机的操作。如果P1、P2依次执行程序段A,则countp等于【 】,结果正确;如果P1先进入程序段A,执行完第1条指令“Rßcountp”后发生中断,中断处理后恢复中断现场前调用进程调度程序保护P1的调度现场,P1的调度现场中保存的R的值为【 】;调度选中P2,P2执行A的第1条指令后R的值为【 】;、P2执行 A的第3条指令”后寄存器R的值为【 】、countp的值为【 】;之后再调度选中P1恢复P1的调度现场后寄存器R的值为【 】,countp的值为【 】;P1接着执行A的第【】条指令后寄存器R的值为【】;P1执行完A的第3条指令后countp的值为【】。
系统中countp表示空闲打印机的台数,每个进程释放打印机都会执行由“Rßcountp”、“RßR+1”和“countpßR”三条指令组成的程序段A(对应于 “countp + +;” 语句,R为寄存器),所以countp为共享变量。设当前countp=1,之后执行的两个进程P1和P2都有释放打印机的操作。如果P1、P2依次执行程序段A,则countp等于【 】,结果正确;如果P1先进入程序段A,执行完第1条指令“Rßcountp”后发生中断,中断处理后恢复中断现场前调用进程调度程序保护P1的调度现场,P1的调度现场中保存的R的值为【 】;调度选中P2,P2执行A的第1条指令后R的值为【 】;、P2执行 A的第3条指令”后寄存器R的值为【 】、countp的值为【 】;之后再调度选中P1恢复P1的调度现场后寄存器R的值为【 】,countp的值为【 】;P1接着执行A的第【】条指令后寄存器R的值为【 】;P1执行完A的第3条指令后countp的值为【 】。
系统中countp表示空闲打印机的台数,进程 P1释放打印机会执行由“Rßcountp”、“RßR+1”和“countpßR”三条指令组成的程序段A(对应于 “countp + +;” 语句,R为寄存器),而进程P2分配打印机会执行由“Rßcountp”、“RßR-1”和“countpßR”三条指令组成的程序段B(对应于 “countp --;” 语句,R为寄存器),所以countp为共享变量。设当前countp=2。如果P1和P2依次执行程序段A和B,则countp等于【】,结果正确;如果P1先进入程序段A,执行完第1条指令“Rßcountp”后发生中断,中断处理后恢复中断现场前调用进程调度程序保护P1的调度现场,P1的调度现场中保存的R的值为【】;调度选中P2,P2执行B的第1条指令后R的值为【】;P2执行 B的第3条指令”后寄存器R的值为【】、countp的值为【】;‘之后再调度选中P1恢复P1的调度现场后寄存器R的值为【】、countp的值为【】;P1接着执行A的第【】条指令后寄存器R的值为【】;P1执行完A的第3条指令后countp的值为【】。