2026/10/17 2:39:19
网站建设
项目流程
一、IPC
1.什么是IPC:inter-process communication,进程间通信
2.为什么需要IPC:os产生的进程间各自拥有独立的虚拟地址空间,进程间是独立的,无法访问到其他进程的内存
3.IPC主要实现方式:管道、消息队列、共享内存、信号量、互斥锁
4.IPC的目的:数据传输、资源共享、通知事件、进程控制
二、管道
1.什么是管道:内核在内存上开辟一块儿空间,实现进程间数据流通,按字节数据进行一段写,一段读,具有内核在内存空间、写段、读段这样结构的成为管道,而内核为管道在内存开辟的空间成为管道缓冲区,是具有一定大小的
2.管道分类:匿名管道,命名管道
3.匿名管道特点:是半双工的,数据单向流动;
一般用于父子进程间;
先创建管道再fork()子进程,因为创建管道后父进程的文件描述符将指向管道两端,被PCB用指针所记录,fork()后子进程创建一个新的PCB,除PID外其他基本与父进程一致,此时的子进程在PCB指向的文件文件描述符
与父进程一样,即也指向那个管道的两端
文件描述符:操作系统给进程的“整数编号”,凭借这个编号操作对应的文件、网络、设备等资源。0键盘输入
文件描述符角度:管道是内存里的一块儿缓冲区,不在磁盘中,不存在文件名,但内核为管道提供了文件描述符,使管道可以像文件一样使用read(文件描述符,),write(文件描述符,),但不能使用open(),只能用pipe()获取文件描述符
内核角度:管道是内核中一块儿环形顺序队列