一、什么是进程(任务)
进程:一个被加载到内存中的程序/正在运行中的程序。
开机时,先将操作系统加载到内存中。
ps -ajx 查询运行中的进程
二、操作系统如何管理进程?
前提:如何利用属性认识事物/对象?
管理者 执行者 被管理者
三、进程本质
进程就是运行的程序,一个OS可以同时运行多个进程,就需要进行管理。
如何管理? 先描述,再组织。
先描述进程属性
PCB --> 进程属性的集合 是一个struct的结构体类型
1、PCB仅为一个类型,创建进程前,先创建一个PCB类型的对象
2、把对应的代码和数据加载到内存中
进程:PCB对象+对应的代码和数据。
OS只管理PCB即可,这是因为PCB中存有相关“指针”,可以借此找到对应的代码和数据。
例如:个人信息中的学号、工号、电话等。
PCB对象为对进程的描述,其中struct包含 PCB* next,指向另一个PCB对象,这样就把多个进程组织起来,即对多个进程的管理-->对特定数据结构的增删查改。
在Linux中:
四、查看进程ps/proc/top
会创建以进程PID为名的目录文件,其中包含进程的各种属性。
ls /proc/PID.. ll /proc/PID.. 查其中的具体属性
cwd current working directory当前进程的工作目录,exe可执行程序
案例1:touch创建一个文件为什么默认为当前目录?
因为存在cwd目录,存储有当前工作目录路径。
案例2:fopen(“log.txt”,‘w’),自动创建在当前目录路径