串行程序,并发程序,并行程序,进程状态

摘自:go并发编程实战 第二版

串行程序:

只能被顺序执行的指令列表。

并发程序:

可以被同时发起执行的程序。允许其中的串行程序运行在一个或多个可共享的cpu上,同时也允许每个串行程序都运行在专为他服务的cpu上。

并行程序:

可以在并行的硬件上执行的并发程序。

并发程序代表了所有可以实现并发行为的程序,包含了并行程序。

进程状态:

1.可运行状态(task_running,简称R)。如果一个进程处于该状态,那么说明他立刻要或者正在cpu上运行,不过运行时机不确定,由进程调度器决定。

2.可中断的睡眠状态(task_interruptible,简称S):当进程正在等待某个事件(如网络连接或者信号量)到来时,会进入这个状态。这样的进程会被放入对应事件的等待队列中,当事件发生时,对应的等待队列中的一个或者多个进程会被唤醒。

3.不可中断的睡眠状态(task_uninterruptible,简称D):与可中断的睡眠状态的唯一区别就是不可被打断。意味着这种状态的进程不会对任何信号作出响应。发送给该状态的的进程的信号直到他从该状态转出才会被传递出去。该状态的进程通常是在等待一个特殊的事件,比如等待同步的I/O操作完成。

4.暂停状态或者跟踪状态(task_stopped或者task_traced,简称T):向进程发送sigstop信号,就会让该进程转入暂停状态,除非该进程正处于不可中断的睡眠状态。向正处于暂停状态的进程发送sigcont信号,会让该进程转向可运行状态。处于该状态的进程会暂停,并等待另一个进程对他进行操作。

5.僵尸状态(task_dead-exit_zomble,简称Z):该状态的进程即将结束运行,该进程占用的绝大多数资源也都已经被回收,不过还有一些信息没有被删除,比如退出码以及一些统计信息。之所以保留这些信息,考虑到父进程可能还需要。

6.退出状态(task_dead-exit_dead,简称X):该状态的进程会立即被干净利落的结束掉,占用的系统资源也会被操作系统自动回收。

猜你喜欢

转载自blog.csdn.net/u010918487/article/details/86029183
今日推荐