天任考研小編為大家整理了“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)真題及答案解析”,希望考生們都能備考順利,考上自己心儀的院校。