(1)临界资源 ? ? ? ? ?在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。但对于某些资源来说,其在同一时间只能被一个进程...
分类:
其他好文 时间:
2014-11-24 19:21:53
阅读次数:
253
并发及其管理
竞态通常作为对资源的共享访问结果而产生当两个执行线程需要访问相同的数据结构(或硬件资源)时,混合的可能性就永远存在只要可能就应该避免资源的共享共享通常是必需的,硬件资源本质上就是共享的访问管理的常见技术称为“锁定”或者“互斥”
信号量和互斥体
建立临界区:在任意给定的时刻,代码只能被一个线程执行可以使用一种锁定机制,当进程在等待对临界区的访问时,此机制可让进程进入休眠状...
分类:
系统相关 时间:
2014-09-27 23:04:20
阅读次数:
297
临界区Critical Section(CS) 不可跨进程,效率高事件 Event 使用内核对象,可跨进程,用于通知互斥量 Mutex 使用内核对象,可跨进程,用户互斥信号量 Semaphore 使用内核对象,可跨进程,有限数量资源http://blog.csdn.net/column/deta.....
分类:
编程语言 时间:
2014-07-21 09:37:54
阅读次数:
294
一、进程同步与互斥的基本概念
1.基本概念
在多道程序系统中,由于进程,各进程之间有两种形式的制约关系:
(1)间接相互制约– 源于资源共享 -互斥。
(2)直接相互制约– 源于进程合作 -同步。
进程同步:主要源于进程合作,为进程之间的直接制约关系。
进程互斥:主要源于资源共享,是进程之间的间接制约关系。
临界资源:一次只允许一个进程使用的资源称为临界资源,如打印机、公共变量等。
临界区:在每个进程中,访问临界资源的那段程序称为临界区。
2.同步机制应遵循的准...
分类:
其他好文 时间:
2014-07-19 02:24:35
阅读次数:
286
在开发过程中,有三个独立运行的程序模块,三个模块都对sqlite数据库进行读写操作。sqlite在linux共享性较差,所以需要加入互斥信号量解决三个模块访问数据库该问题。另外,在加入信号量后,信号量sem初始化为1,如果三个模块任意一个在读或写数据库时ctrl+c掉(调试过程需要),有时会造成信号量sem保持sem_wait后的值,也就是为0;这就造成了死锁。...
分类:
系统相关 时间:
2014-06-21 20:22:06
阅读次数:
656