天任考研小编为大家整理了“23考研计算机408综合应用题(45)真题及答案解析”相关内容,为报考计算机专业的考生们提供指导。更多有关计算机考研真题可关注考研备考栏目。
45.[7分]现要求学生使用swap指令和布尔型变量lock, 实现临界区互斥。lock为线程间共存的变量。lock 的值为true时线程不能进入临界区。为false时线程能进入临界区。某同学编写的实现临界区互斥的伪代码如题45 (a) 所示
某同学写的伪代码 | newswap( )的代码 |
bool lock=FALSE;//共享变量 //进入区 bool key=TRUE if(key)=TRUE swap key,lock;//交换key和lock的值 /临界区 lock =TRUE推出区 | void n ewswap(bool*a,bool*b) { bool temp=*a; *a=*b *b=temp } |
题45(a)图 题45(b)图
(1)题45 (a) 图中伪代码中哪些语句存在错误,进行改正,不增加语句条数。
(2)题45 (b)图中给出了两个变量值的函数newswap ()的代码是否可以用
函数调用语句“newswap(&key,&lock)”代替指令“swapkey,lock"以实现临界区的互斥?为什么?
以上是天任考研小编为大家带来的“23考研计算机408综合应用题(45)真题及答案解析”,希望考生们都能备考顺利,考上自己心仪的院校。