网友您好, 请在下方输入框内输入要搜索的题目:
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入答题纸的对应栏内。
[说明]
有两个任务(编号分别为0和1)需要访问同一个共享资源,为了解决竞争条件(race condition)的问题,需要实现一种互斥机制,使得在任何时刻只能有一个任务访问该共享资源。代码一给出了一种实现方法。
[代码一]
1: int flag[2]; /* flag 数组,初始化为FALSE */
2: Enter_Critical_Section(int my_task_id, int other_task_id)
3: {
4: while (flag[other_task_id] == TRUE); /* 空循环语句 */
5: flag[my_task_id] = TRUE;
6: }
7: Exit_Critical_Section(int my_task_id, int other_task_id)
8: {
9: flag[my_task_id] = FALSE;
10: }
当一个任务要访问临界资源时,就可以调用代码一给出的这两个函数。代码二给出了任务0的一个例子。
[代码二]
Enter_Critical_Section(0,1);
…使用这个资源…
Exit_Critical_Section(0,1);
…做其他事情…
什么是临界资源(critical resource)?请用100字以内文字简要说明。
参考答案
更多 “ 阅读以下说明和C语言代码,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明]有两个任务(编号分别为0和1)需要访问同一个共享资源,为了解决竞争条件(race condition)的问题,需要实现一种互斥机制,使得在任何时刻只能有一个任务访问该共享资源。代码一给出了一种实现方法。[代码一]1: int flag[2]; /* flag 数组,初始化为FALSE */2: Enter_Critical_Section(int my_task_id, int other_task_id)3: {4: while (flag[other_task_id] == TRUE); /* 空循环语句 */5: flag[my_task_id] = TRUE;6: }7: Exit_Critical_Section(int my_task_id, int other_task_id)8: {9: flag[my_task_id] = FALSE;10: }当一个任务要访问临界资源时,就可以调用代码一给出的这两个函数。代码二给出了任务0的一个例子。[代码二]Enter_Critical_Section(0,1);…使用这个资源…Exit_Critical_Section(0,1);…做其他事情…什么是临界资源(critical resource)?请用100字以内文字简要说明。 ” 相关考题
![瑞牛题库 章节练习 历年真题 模拟试卷](http://assets.51tk.com/51_sidebar_right_index.jpg)