0%

Linux学习笔记

Linux 学习笔记

摘自于 硬核Linux 攻略,仅供个人学习使用,转载请注明出处

1. Linux进程通信方式

  • 信号

    1. 信号是软件层次上对中断机制的一种模拟,是一种异步通信方式

    2. 信号来源:硬件来源:按下了键盘 或者 其他硬件故障

      ​ 软件来源:最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作

    3. 进程对信号的处理:

    ​ 忽略信号:但不能忽略SIGSTOP 与SIGKILL信号

    ​ 捕捉信号:执行相应的处理函数

    ​ 执行缺省操作

  • 管道

    1. 管道的作用正如其名,需要通信的两个进程在管道的两端,进程利用管道传递信息。

      管道对于管道两端的进程而言,就是一个文件,但是这个文件比较特 殊,它不属于文件系统并且只存在于内存中

    2. 管道 又分为: 命名管道 与 匿名管道

    3. 匿名管道有两大限制:1. 管道是半双工的,数据只能在一个方向上流动

    ​ 2. 管道只能用于有亲缘关系的进程,而命名管道允许没有亲缘关系的进程进行通信

  • 先入先出队列

  • 信号队列

  • 共享内存

    1. 为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间。进程就可以直接读写这一块内存而不需要进行数据的拷贝,从而大大提高效率。
    2. 共享内存并未提供同步机制,在一个进程结束对共享内存的写操作之前,并无自动机制可以阻止另二个进程开始对它进行读取。所以,我们通常需要用其他的机制来同步对共享内存的访问。
  • 套接字 Socket

    1. 面向连接的通信方式TCP
    2. 无连接的通信方式UDP