5.1 (实验目的:理解死锁产生的原因,熟悉Windows同步进...
5.1 (实验目的:理解死锁产生的原因,熟悉Windows同步进制的编程应用)在Windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)实现5.2 节中“i和j是独占性的资源”例子的演示,使之出现死锁的情形。注意:用线程代替进程。要求:(1)为增强结果的随机性和直观性,各行代码之间增加延时函数(sleep),时间采用随机时间,例如50ms-100ms之间或自己调节时间。(2)输出足够清晰的调试信息,显示两个线程对i,j的存取过程,直到死锁发生。 5.2 (实验目的:理解死锁产生的原因,熟悉Windows同步进制的编程应用)在windows环境下,利用高级语言编程环境(限定为VS环境或VC环境)调用CreateThread函数实现“哲学家就餐问题”的演示。要求:(1)提供死锁的解法和非死锁的解法;(3)输出足够清晰的调试信息,显示哲学家取筷子,吃饭,放筷子,思考等状态。(3)【可选】有图形界面直观显示哲学家取筷子,吃饭,放筷子,思考等状态。(4)为增强结果的随机性和直观性,各个状态之间的维持时间采用随机时间,例如100ms-400ms之间。 5.3(实验目的:理解死锁产生的原因,熟悉Linux同步进制的编程应用)在Ubuntu或Fedora环境下,利用高级语言编程环境(限定为QT /C/C++)实现“哲学家就餐问题”的演示。要求:(1)提供死锁的解法和非死锁的解法;(3)输出足够清晰的调试信息,显示哲学家取筷子,吃饭,放筷子,思考等状态。(3)【可选】有图形界面直观显示哲学家取筷子,吃饭,放筷子,思考等状态。(4)为增强结果的随机性和直观性,各个状态之间的维持时间采用随机时间,例如100ms-400ms之间。