临界区、相关临界区

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36340947/article/details/78179263

1.概念

        临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)

临界资源:临界资源是一次仅允许一个进程使用的共享资源

每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进

程必须互斥地对它进行访问。

相关临界区多个进程中涉及到同一个临界资源的临界区称为相关临界区

百度百科上对临界区的定义是:

临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被

线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),

有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:

semaphore能被单一线程访问的设备,例如:打印机

2.程序调度法则

进程进入临界区的调度原则是:
1、如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
2、任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的
进程必须等待。
3、进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
4、如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
3.线程同步问题

有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直

持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的

目的。


例题:

若系统中有五个并发进程涉及某个相同的变量A,则变量A的相关临界区是由(   )临界区构成。

   2个
   3个
   4个
   5个
解答:D

这里的变量A就是上面说的临界资源(共享资源),而临界资源一次只允许一个进程使用。相关临界区的定义是:

相关临界区多个进程中涉及到同一个临界资源的临界区称为相关临界区。这里一共有5个进程涉及到同一个临

界资源,所以相关临界区一共包括5个临界区。


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页