目录
一、管程机制
(1)管程定义
(2)特点:
二、进程通信
(1)概念
(2)高级通信机制
三、线程
(1)概念
(2)与进程比较
一、管程机制
信号量机制进程自备同步操作,P、V操作分散,不宜管理,易发生死锁,因此引入管程。
(1)管程定义
一个管程包含一个数据结构和能为并发进程所能执行的一组操作,这组进程能同步管理进程和改变管程中的数据。
(2)特点:
1.进程通常使用于管理资源的,因此管程中有进程等待队列和相应的等待和唤醒操作。
2.条件变量:管程利用wait原语让进程等待,等待原因可以用条件变量condition区别。
3.只能被管程内的操作互斥访问(保证数据一致性,某一时刻只能有一个过程执行)
二、进程通信
(1)概念
进程之间的信息通信。有两种进程通信:
低级通信:简单的信号,少量信息。特点:效率低。不透明。操作需要程序员负责。
高级通信:高效的传输大量数据。特点:使用方便。高效传输大量数据。
(2)高级通信机制
1.共享存储器系统
它是基于共享数据结构的通信方式和基于共享存储器的通信方式。
2.管道通信系统
所谓管道,就是指连接一个读进程和写进程以实现它们之间通信的一个共享文件,又名pipe文件。会以字节流的形式将大量数据输入/输出管道。
管道机制必须提供以下三方面能力:(1)互斥(2)同步(3)确定对方是否存在。
3.消息传输系统
进程间的数据交换以格式化的消息为单位。程序员利用系统的通信原语实现通信。
消息传递系统可以分为:
(1)直接通信:直接把消息发送给目标进程,并把他挂在接收进程的消息缓冲队列上,接收进程从此处获得信息。因此也称为消息缓冲通信。
(2)间接通信:发送进程将信息发送到某种中间实体(信箱)中,接收进程从此取得消息。
4.客户机—服务器系统(不介绍)
三、线程
(比进程更小的基本单位,是为了减少程序在并发执行所付出的时空)
进程的两个基本属性:(1)进程是一个可拥有资源的独立单位。(2)进程同时又是一个可独立调度和分派的基本单位。
(1)概念
为了更好并发执行和减少开销,于是引入线程,线程——作为调度和分派的基本单位(是进程的一部分)。
(2)与进程比较
1.调度的基本的单位:线程作为独立调度和分派的基本单位,因而是独立运行的基本单位,不用像进程一样上下文切换,开销那么大。
2.并发性:虽然进程和线程都有并发性,但是线程比进程好,如单进程时,可以用多线程来工作。
3.拥有资源:进程可以用于资源,作为系统中拥有资源的一个基本单位,而线程可以说几乎不拥有资源。
4.独立性:进程中独立性更高,因为要防止进程之间彼此干扰和破坏。而线程往往是为了提高并发性以及满足进程间的合作需要而建立的,它们可以共享进程的内存空间和资源,所有独立性比进程低。
5.系统开销:进程开销更大,要涉及进程上下文切换,而线程切换代价远小于进程。
6.支持多处理机系统:在单线程进程中,不管有多少处理机,该进程只能运行在一个处理机上。但对于多线程进程,可以将一个进程中的多个线程分配到多个处理机上,无疑能加速进程的完成。