[12][12][单选]为正确使用临界资源,可把对临界资源的访问分成进入区、临界区、退出区和剩余区四部分。请指出下列飞机订票代码中while TS(&lock)语句属于哪一个区域
int booking(id) // 订票例程 { int c; while TS(&lock); // Test-and-Set指令 c = fetch(ticket); // 从服务器取剩余票额 show(c); // 显示 if (read(input) == 1) // 是否订票? { c = c - 1; // 票额减1 send(c); // 送回新数据 } lock = FALSE; // 置标志为F output(list); // 打印机票 }
临界资源访问过程中的临界区
临界资源访问过程中的进入区
临界资源访问过程中的退出区
临界资源访问过程中的剩余区
答案
临界资源访问过程中的进入区
解析
while(TS(&lock是Test and Set指令,其功能是读出锁定位后把该锁定位设置为TRUE。在进入区利用TS进行检查和修改标志lock,故本题答案应选择B选项。
【涉及考点】
第4章 并发与同步
转载请注明出处。