进程线程同步的方式和机制,进程间通信

进程线程同步的方式和机制,进程间通信

ID:27277762

大小:71.50 KB

页数:3页

时间:2018-12-02

进程线程同步的方式和机制,进程间通信_第1页
进程线程同步的方式和机制,进程间通信_第2页
进程线程同步的方式和机制,进程间通信_第3页
资源描述:

《进程线程同步的方式和机制,进程间通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、进程/线程同步的方式和机制,进程间通信一、进程/线程间同步机制。临界区、互斥区、事件、信号量四种方式临界区(CriticalSection)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有-个线程进入后,其他试阁访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。2、互斥S:

2、采用互斥对象机制。只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共亨,还能实现不同应用程序的公共资源安全共亨.互斥量比临界区犮杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。3、信号最:它允许多个线程在同一时刻访问同一资源,似是需耍限制在同一时刻汸问此资源的最人线程数目.信号最对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使

3、用共亨资源,这与操作系统中的PV操作相同。它指出丫同吋访问共亨资源的线程最大数目。它允许多个线程在同一时刻访问同一资源,但是要限制在同一时刻访问此资源的最大线程数目。PV操作及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用共亨资源的进程数。P操作申诏•资源:(1)S减1;(2)若S减1后仍大于等于零,则进程继续执行;(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转入进程调度。V操

4、作释放资源:(1)S加1;(2)若相加结果大于零,则进程继续执行;(3)若相加结果小于等于零,则从该信号的等待队列屮唤醒一个等待进程,然后再返回原进程继续执行或转入进程调度。4、苹件:通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作.总结:1.互斥量与临界区的作用非常相似,仴互斥量是可以命名的,也就是说仑可以跨越进程使用。所以创建互斥量需要的资源更多,所以如果只为了在进程闪部是用的话使用临界区会带来速度上的优势并能够减少资源占用量。因为互斥量是跨进程的互斥量一旦被创建,就可以通过名字打

5、开它。2.互斥最(Mutex),信号灯(Semaphore),事件(Event)都可以被跨越进程使用来进行同步数据操作,而其他的对象与数据同步操作无关,侃对于进程和线程来讲,如果进程和线程在运行状态则为无信号状态,在退出后为有信号状态《所以可以使用WaitForSingleObject来等待进程和线程退出。3.通过互斥量可以指定资源被独占的方式使用,但如果有下面一种情况通过互斥量就无法处理,比如现在一位用户购买了一份三个并发访问许可的数据库系统,可以根据用户购买的访问许可数ffl来决定有多少个线程/进程能同时进行数

6、据库操作,这时候如果利用互斥就没有办法完成这个要求,信号灯对象可以说是一种资源计数器。二、进程间通信方式由f比较容易混淆,我们把进程间通信方法也列在这里做比较。程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用广空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享A存区。W是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它

7、数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。因为那些通信手段的效率太低了,而人们对进程间通信的要求是要有一定的实时性。进程间通信主要包括管道,系统IPC(包括消息队列,信号量,共享存储),SOCKET.管道分为有名管道和无名管道,无名管道只能用于亲屈进程之间的通信,而有名管道则可用于无亲属关系的进程之间。消息队列用于运行于同一台机器卜.的进程间通信,与笤道相似;共亨内存通常山一个进程创建,其余进程对这块内存区进行读写。得到共亨内存有两种方式:映射/dev/me

8、m设备和内存映像文件。前一种方式不给系统带来额外的开销,但在现实中并不常用,因为它控制存取的是实际的物理内存;本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作.•(1)测试控制该资源的信号量;(2)若此信号ffi的值为正,则允许进行使用该资源,进程将进号ffi减1;(3)若此信号量为0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。