7.2.1

一 什么是进程

进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。

二 进程与程序的区别

程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。

举例:

我在家做韭菜炒鸡蛋,我有做韭菜炒鸡蛋食谱,厨房里有所需的原料:鸡蛋、韭菜,蒜泥,大葱,生姜等。

1. 韭菜炒鸡蛋食谱就是程序。

2. 而做韭菜炒鸡蛋的各种原材料就是数据输入。

3. 进程就是厨师阅读食谱、取来各种原料以及炒韭菜炒鸡蛋等一系列动作的总和

需要强调的是:同一个程序执行两次,那也是两个进程,比如你打开两个QQ,两个QQ是独立的。

三 并发与并行

无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务

一 并发:是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发

二 并行:同时运行,只有具备多个cpu才能实现并行

四 进程的状态

tail -f access.log |grep '404'

执行程序tail,开启一个子进程,执行程序grep,开启另外一个子进程,两个进程之间基于管道'|'通讯,将tail的结果作为grep的输入。

进程grep在等待输入(即I/O)时的状态称为阻塞,此时grep命令都无法运行

其实在两种情况下会导致一个进程在逻辑上不能运行,

  1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作

  2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。

因而一个进程由三种状态

原文地址:https://www.cnblogs.com/caimengzhi/p/8511385.html