文章目录
进程
课本概念:程序的一个执行实例,正在执行的程序,操作系统进行资源分配和调度的基本单位等
内核观点:担当分配系统资源(CPU时间,内存)的实体。
linux下,我们使用的命令,如ls等,运行起来就是一个进程。可以说,学习操作系统,首先就要学习进程。
PCB
对于进程,操作系统必要管理它。如何管理?将进程的信息封装为PCB(process control block),通过管理进程的PCB来管理进程。简单来说,PCB是进程属性的集合。
linux查看进程
linux下的进程信息存储在/proc
目录下
大多数的进程信息也可以通过ps和top等用户级工具来获取
ps命令用于显示当前正在运行的进程信息
a
: 显示所有用户的进程。通常情况下,ps命令仅显示与当前终端关联的进程,但使用-a选项可以显示所有用户的进程。
j
: 使用BSD风格的输出格式。这种格式下,ps命令会以进程状态、作业控制信息等形式显示进程信息。
x
: 显示与终端无关的进程。通常情况下,ps命令仅显示与当前终端关联的进程,但使用-x选项可以显示与当前终端无关的进程。
top命令用于动态显示系统中运行的进程的相关信息,包括进程的CPU利用率、内存利用率、进程ID等
进程属性
task_struct结构体
在linux操作系统下的PCB:task_struct(结构体)
task_struct的内容分类:
- 标识符: 描述本进程的唯一标示符,用来区别其他进程。
- 状态: 任务状态,退出代码,退出信号等。
- 优先级: 相对于其他进程的优先级。
- 程序计数器: 程序中即将被执行的下一条指令的地址。
- 内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
- 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
- I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
- 记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
- ……
重点介绍 标识符,状态,优先级