阅读以下技术说明和C语言代码,根据要求回答问题1至问题6。 【说明】 有两个进程(编号分别为0和1)需

17 查阅

阅读以下技术说明和C语言代码,根据要求回答问题1至问题6。

【说明】

有两个进程(编号分别为0和1)需要访问同一个共享资源。为了解决竞争条件(race condition)的问题,需要实现一种互斥机制,使得在任何时刻只能有一个进程访问该共享资源。以下【C代码1】给出了一种实现方法。

【C代码1】

int flag[2]; /+flag数组,初始化为FALSE*/

Enter_Critical_Section(int my_task_id, int other_task_id)

{ while (flag[other_task_id]==TRUE); /*空循环语句*/

flag[my_task_id]=TRUE;

}

Exit_Critical_Section(int my_task_id, int other_task_id)

{ flag[my_task_id]=FALSE;

}

当一个进程要访问临界资源时,就可以调用【C代码1】给出的这两个函数。【C代码2】给出了进程0的一个例子。

【C代码2】

Enter_Critical_Section(0,1);

……使用这个资源……

Exit_Critical_Section(0,1);

……做其他的事情……

什么是临界资源(critical resource)?请用100字以内的文字简要说明。

参考答案:

在多道程序系统中各进程可以共享各类资源但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源 解析:在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用。需要互斥访问的资源称为临界资源(Critical Resource),如打印机、共享变量和表格等。

软考初级