文章目录
1、前言
大家经常都在讲进程,而它到底是什么呢?
这里给大家先简单的介绍一下:
- 课本概念:程序的一个执行实例,正在执行的程序等。
- 内核观点:担当分配系统资源(CPU时间,内存)的实体。
2、描述进程 — PCB(os怎么管理进程呢)
在操作系统中我们说到,os管理的本质并不是对事物本体的管理,而是对数据的管理。
这里虽然我们并不知道进程是什么,但是按照上面的理解,我们对进程的管理,也是对进程的数据进行管理,这里就用到那六个字“先描述,再组织”。我们来画图理解一下:
操作系统可能会同时管理非常多的“进程”,因此在管理的时候,管理这些进程的数据即可,将这些进程共有的属性提取出来,用结构体将其存起来,再使用链表将其链接起来,这样就能有效的管理进程,这样的机制就叫做“先描述,再组织”。
这个进程属性的集合就叫做PCB,也叫做进程控制块。
PCB是一个统称,在Linux中,PCB叫做 task_struct。
最终,我们操作系统对PCB的管理就被建模成了对链表的增删查改。
我们得出:进程 = 可执行程序 + 内核数据结构
3、查看进程
3.1 方法一
在Linux下我们可以使用下面的这个命令来查看进程:
ps ajx
这是所有的进程,如果我们只是对其中一个进程查看呢?我们看下面的:
我们先写一段C语言程序,编译为可执行程序并执行,然后使用该命令来查看一下进程:
#include <stdio.h>
#include <unistd.h>
int main()
{
while(1)
{
printf("我是一个进程\n");
sleep(1);
}
return 0;
}
命令:
ps ajx | grep mycode
这里用到我们以前学到的 管道符与过滤,筛选出我们想找的进程。
3.2 方法二
我们可以通过根目录下的proc目录来查看。proc目录下保存有进程的信息。
proc目录下的蓝色数字就是每一个进程的pid(Process ID),这就跟我们的身份证号一样,一人只有一个,每个进程都只有这么一个标识符。
我们再次以刚才那段C语言为例,来查看进程: