万能百科  > 所属分类  > 

阅读以下说明和C语言代码,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明] 有两个任务(编号

阅读以下说明和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字以内文字简要说明。

正确答案:

在多道程序系统中各进程可以共享各类资源但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源(critical resource)如打印机、共享变量和表格等。在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源(critical resource),如打印机、共享变量和表格等。 解析:本题考查的是任务之间的互斥问题,即基于繁忙等待的任务互斥实现方法。在多道程序系统中,各个任务是并发执行的,由于时钟中断的原因,使任务之间的执行顺序变得难以预测,

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签