? ? ? ? 进程是一个运行的程序,是资源(CPU,内存等)分配的单位。进程有自己的一些属性(pid,owership, nice值等),在运行中有几种状态值。
进程的类型
? ? ? ? 进程按照类型可以分为用户态进程,守护进程和内核进程。他们主要的区分在权限优先级不同。
User Processes
用户态的进程是有普通用户创建的进程并运行在用户态的进程。 用户态进程权限较低,除非给它特殊的权限,否则不能访问CPU资源或者其他用户的文件。
Daemon Processes
守护进程一般是运行在后台的进程。 一般是用来处理请求的服务比如http 服务。守护进程一般是root用户创建。
Kernel Processes
内核态进程是指运行在内核态的程序。它和守护进程类似,主要的区别是内核态进程能完全控制内核态的数据。
进程状态
- ? ? ?在进程运行过程中,一个进程的状态会根据环境和资源的情况,从一个状态切换到另一个状态。下图是Linux状态切换的流程.
- Running - 正在运行的状态(进程获取到了CPU).?
- Ready - 进程已经准备好运行的资源,等待分配CPU.
- Stopped - 进程被stop, 一般进程被debug.
- Zombie - 进程已经死亡,进程所有的资源已经释放,只是在内核里还有对应的进程数据结构.
- waiting-? 在这状态的进程是等待某个资源或者实际发生。内核把这2中情况有做了细分
- interruptible waiting processes - 浅睡眠, 可以把信号中断的睡眠。
- ?uninterruptible waiting processes - 深度睡眠, 不能被信号中断,一般是等一个I/O事件.
参考文档
1. extension://idghocbbahafpfhjnfhpbfbmpegphmmp/assets/pdf/web/viewer.html?file=https%3A%2F%2Fpages.cs.wisc.edu%2F~remzi%2FOSTEP%2Fcpu-intro.pdf
2.
|