编程游戏 当有n个并发进程共享某个临界资源时,求互斥信号量的取值范围?
当有n个并发进程共享某个临界资源时,求互斥信号量的取值范围?信号量信号量用于:控制对共享资源的访问(互斥);指示事件的发生;同步两个任务。以下代码中的信号量:shareduresourceusem用于
当有n个并发进程共享某个临界资源时,求互斥信号量的取值范围?
信号量信号量用于:
控制对共享资源的访问(互斥);指示事件的发生;同步两个任务。
以下代码中的信号量:shareduresourceusem用于控制对共享资源的访问(互斥);信号量keyudownusem指示事件的发生。如果信号量的值大于0,则可以使用它。如果该信号量的值为0,则该信号量上的pend操作被放置在等待列表中。
初始化信号量时,必须提供信号量的初始值。有三种初始值:
0:当信号量用于指示事件时,例如:
key_uu2;down_2;SEM=ossemcreate(0)1:当信号量用于控制对共享资源的访问时,例如:
shared_2;resource_2;SEM=ossemcreate(1)
n:当信号量用于表示任务的n个相同资源时。在RTOS启动之前,我们还应该注意信号量的初始化?答:在每个进程中访问关键资源的程序称为关键区域(关键资源是一次只允许一个进程使用的共享资源)。一次只允许一个工序进入关键区域,其他工序进入后不允许进入。2进入关键区域的过程的调度原则如下:1。如果多个进程需要进入空闲的关键区域,则一次只允许一个进程进入。② 在任何时候,关键区域中只能有一个进程。如果一个进程进入它自己的关键区域,那么所有其他试图进入该关键区域的进程都必须等待。③ 进入临界区的过程应在有限的时间内退出,以便其他过程能及时进入自己的临界区。④ 如果进程不能进入自己的关键区域,就应该放弃CPU,避免“忙”现象。
临界资源与临界区的区别?
关键资源是一次只允许一个进程访问的资源。关键资源的硬件包括打印机和磁带机,软件包括消息缓冲队列、变量、数组和缓冲区。为了共享这种资源,过程应该是互斥的。在每个进程中访问关键资源的代码称为critical section。显然,如果能够保证进程互斥地进入自己的关键领域,就可以实现对关键资源的互斥访问。因此,在每个进程进入关键区域之前,它应该检查关键资源以查看是否正在访问它。如果关键资源当前未被访问,则流程可以进入关键区域访问该资源,并设置访问标志;如果关键资源当前正被流程访问,则流程不能进入关键区域。