操作系统进程相关

进程的状态和线程的状态

操作系统进程相关
操作系统进程相关

线程和进程的区别

  1. 进程是操作系统分配和管理资源的单位,线程是CPU调度和管理的基本单位。
  2. 进程拥有独立的地址空间,线程间共享同一个进程的地址空间
  3. 进程的开销比较大,线程的开销小。

进程间怎么通信

  1. 管道,匿名管道和命名管道
    匿名管道只能用于父子进程间的通信
    命名管道可以用于不相关进程间的通信

  2. 消息传递
    直接通信方式
    间接通信方式

  3. 信号量:
    不能传递复杂消息,只能用来同步 ,PV操作

  4. 共享内存区(这是最快的一种IPC):
    能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了同一进程内的一块内存

  5. 消息队列
    相比于 FIFO,消息队列具有以下优点:

    • 消息队列可以独立于读写进程存在,从而避免了 FIFO 中同步管道的打开和关闭时可能产生的困难;
    • 避免了 FIFO 的同步阻塞问题,不需要进程自己提供同步方法;
    • 读进程可以根据消息类型有选择地接收消息,而不像 FIFO 那样只能默认地接收。
  6. 套接字
    与其它通信机制不同的是,它可用于不同机器间的进程通信。