美文网首页
Linux一些概念

Linux一些概念

作者: hTangle | 来源:发表于2019-04-12 15:04 被阅读0次

    线程与进程

    1. 进程(ps -aux)

    • 守护进程:控制终端并周期性执行任务或处理事件,不受用户登录或注销的影响
    • 孤儿进程:父程序先退出了,子程序托付给了Init进程
    • 僵尸进程:进程终止,但是父程序未获取其状态,需要保留部分信息
      fork:父进程与子进程拥有相同的内存映像,同样的环境字符串和同样的打开文件(可写的内容是不可共享的)
      进程的三种状态:
      1.运行态:该时刻进程实际占用CPU
      2.就绪态:可运行,因为其他进程正在运行而暂时停止运行
      3.阻塞态:除非发生某种外部时间,否则进程不能运行
      阻塞态不能直接到运行态
      进程的状态转换
    1. 线程:并行实体拥有共享同一个地址空间和所有可用数据的能力,轻量级

    进程与线程

    线程的状态

    1. 运行
    2. 阻塞
    3. 就绪
    4. 终止
    1. 进程间通信(Inter Process Communication)

    a. 匿名管道:半双工,用于父子进程和兄弟进程之间,单独构成一种独立的文件系统,缓冲区有限,无格式字节流
    b. 命名管道:提供路径名与之关联,以文件形式存在于文件系统,只要能够访问该路径,就能够彼此通过命名管道通信,先进先出原则
    c. 信号量

    • 信号是Linux系统中用于进程间互相通信或者操作的一种机制,信号可以在任何时候发给某一进程,而无需知道该进程的状态。
    • 如果该进程当前并未处于执行状态,则该信号就有内核保存起来,知道该进程回复执行并传递给它为止。
    • 如果一个信号被进程设置为阻塞,则该信号的传递被延迟,直到其阻塞被取消是才被传递给进程。
      信号的生命周期
      d. 消息队列
    • 消息队列是存放于内核中的消息链表,每个消息队列由消息队列标识符表示
    • 只有在内核重启时或显式地删除一个消息队列时,该消息队列才会被真正删除
    • 不需要某个进程在等待消息的到达(与管道的差别)
    • 先进先出原则,可以随机查询,也可以按照消息类型读取
      e. 共享内存
    • 多个进程可以直接读取同一块内存空间,是最快的IPC
    • 为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间。进程就可以直接读写这一块内存而不需要进行数据的拷贝,从而大大提高效率。
    • 需要同步与互斥
      参考文献

    相关文章

      网友评论

          本文标题:Linux一些概念

          本文链接:https://www.haomeiwen.com/subject/gfqaiqtx.html