进程通信是指进程之间的信息交换
低级通信——进程之间的互斥和同步 |
(1)效率低(通信量少) (2)通信对用户不透明(程序员实现,操作系统只提供共享存储器供代码操作) |
高级进程通信 |
用户直接利用操作系统提供的一组通信命令,高效地传送大量数据的通信方式。 操作系统隐藏了进程通信的细节,对用户透明,减少了通信程序编制上的复杂性 |
高级通信机制可归结为四大类
1.共享存储器系统(操作存储区方式) | a.基于共享数据结构的通信方式(低级) b.基于共享存储区的通信方式(高级) |
b.在存储器中划出了一块共享存储区,诸进程可通过对共享存储区中数据的读或写来实现通信
|
2.消息传递系统(发--收方式) | 最广泛使用的一种,进程间的数据交换,以格式化的消息为单位。屏蔽底层复杂操作 | |
3.管道通信(中间文件方式) | 所谓“管道”,是指用于连接一读进程和一写进程以实现通信的一个共享文件,又名pipe文件 | |
4.Client-Server system | 套接字(Socket) |
消息传递通信的实现方法
1.直接通信方式 | Send(Receiver, message); Receive(Sender, message); |
2.间接通信方式 | 基于共享数据结构的实体用来暂存发送给目标进程的消息;接收进程则从该实体中,取出对方发送给自己的消息。通常把这种实体称为信箱。 |
线程:进程内的一条执行路径
多线程系统中,同一个进程中的多个线程 |
共享进程资源 |
可并发执行 |
* 线程与进程的比较
调度: | 线程作为CPU调度的基本单位,而进程只作为其它资源分配单位 |
并发性: | 进程之间可以并发,实质上是不同进程中的两个线程并发。一个进程的多个线程之间亦可并发。 |
拥有资源: | 进程间资源相互独立;同一进程的各线程间共享。某进程内的线程在其它进程不可见 |
系统开销: | 线程上下文切换在同进程环境下上下文切换要快得多。因为同进程内线程间共享内存地址和打开的文件资源 |