操作系统–进程通信
什么是进程通信?
进程通信就是指进程之间的信息交换。 进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立
进程间是不能直接访问对方的内存地址的,是隔离的。但进程间必须要提供一些通信的,如何实现呢?
1.共享存储
两个进程对共享空间的访问必 须是互斥的(互斥访问通过操 作系统提供的工具实现)。
操作系统提供了一块空间,供进程间访问的,就如合租的时候,卧室是独占的,厨房,客厅可能就是共享的。
2.管道通信
“管道”是指用于连接读写进 程的一个共享文件,又名pipe 文件。其实就是在内存中开辟 一个大小固定的缓冲区
管道如果消息有消息,a进程放到管道的消息,那么消息不为空,只允许b进程读,a就不能再写了,同样,a进程写的没了,管道b也读不了了、
3.消息传递
进程间的数据交换以格式化的消息(Message)为单位。进程通过操作系统提供的“发送消息/接收 消息”两个原语进行数据交换。
线程:引入线程后,进程是资源分配的基本单位。而 线程几乎不拥有资源,只拥有极少量的资源 (线程控制块TCB、寄存器信息、堆栈等
线程执行也需执行方法需要基本的堆占,寄存器,控制块信息的。
引入线程后,进程是资源分 配的基本单位,线程是调度 的基本单位。线程也有运行 态、就绪态、阻塞
线程引入后开销更小。