进程是什么?
进程其实就是该文件的task_struct(在可执行程序被加载到内存时创建)+可执行程序,简单来讲就是文件的属性+文件的内容。
进程有哪些状态?
在Linux下进程可以分为6种状态
1.R状态(运行状态)
R状态就是进程在被CPU执行或者处于CPU的等待队列等待CPU执行时所呈现的状态
阻塞状态
2.S状态
S状态其实就是进程在等待某些资源,(显示器资源,键盘资源,磁盘资源等等)然后获取数据或者是等待接受一种返回状态,[如向磁盘写入失败会得到失败这一种状态],S状态下的进程可以被操作系统调出内存。
[举个例子当电脑的内存已经满了的时候,又要加载新的程序,这是操作系统就会在内存中寻找不干事(处于S状态)又占有内存资源的进程将其换入到swap分区(磁盘里的一块空间来暂时存放进程的数据)来释放内存空间]
3.D状态
D状态与S状态类似,不同的是D状态下的进程不会被操作系统换入到swap分区
4.T状态
当操作系统发送暂停信号让进程停下来的一种状态。
5.Z状态(僵尸状态)
当我们调用fork()函数创建子进程后,子进程运行结束了,而父进程没有接受子进程结束的返回状态,这样子进程就处于僵尸状态。
6.X状态
一个进程执行结束了,等待被操作系统回收时的状态。
僵尸状态的危害:
当产生僵尸进程时,僵尸进程实际上已经运行完毕了,但由于父进程没有接受返回值