进程概念
进程简单点来说就是正在执行的程序,从内核看就是担当分配系统资源的实体。而程序则是一段有序指令的集合,根据冯诺依曼体系结构我们可以得到,程序员的代码存储在硬盘中,当其执行的时候代码会首先被加载到内存上面。当加载到内存上面时候,就需要操作系统对其进行描述与组织,也就是管理。
而操作系统则是通过一个结构体对这个指令和数据进行描述然后组织,从而达到管理的目的。进程信息被放在PCB(进程控制块)中,Linux下的PCB其实是一个task_struct结构体;
task_struct中的信息包括
- 标示符:描述该进程的唯一标识。
- 进程状态:任务状态,退出代码,退出信号等等
- 优先级:相对于其它进程的优先级,越小优先级越高
- 程序计数器:程序中即将被执行的下一条指令的地址
- 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
- 上下文数据:进程执行时CPU的寄存器中的数据。
- IO状态信息:包括显示的IO请求,分配给进程的IO设备和被进程使用的文件列表
- 记账信息:可能包括处理时间总和,使用的时钟数总和,时间限制,记账号
大多数进程信息可以通过top和ps来查看
pid:代表进程的代号
ppid:父进程 代号
PRI:进程优先级
NI:代表这个进程的nice值,可以通过top进入按‘r’-》输入进程PID-》输入nice值来改变
PRI(new)=PRI(old)+nice;nice(-20~19);