进程入门与PCB基础知识.
🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸
文章目录
- 一、进程概述
- 二、PCB(进程控制块的统称)
- Linux的PCB task_struct
- tast_struct内容分布
- 三、查看进程
- 1.ps
- 2.top
- 四、总结
一、进程概述
进程其实就是系统中正在运行的一个程序
启动一个软件,本质上就是启动一个进程
在Linux下,执行一条命令也是在系统层面创建了一个进程,pwd,ls,也是一个进程
被加载到内存当中的程序 ,就叫做进程,变成进程之后,才能被操作系统所管理
进程= 文件的代码和数据 + PCB
二、PCB(进程控制块的统称)
PCB process control block进程控制块
进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的结合
Linux是可以同时加载多个程序,同时存在大量的进程在系统中
进程=对应的代码和数据+进程对应的PCB结构体
对进程的管理,也就变成了对PCB结构体链表的增删查改
一个可执行程序本质就是 文件代码+数据 ,运行一个程序,也就是为对应的程序新创建了一个进程控制块,交给操作系统管理,PCB结构体用来描述进程的属性。
Linux的PCB task_struct
在不同的操作系统中,PCB的名字就不同,所有运行在系统里的进程都以task_struct链表的形式存在于内核中
//Linux中:
struct tast_struct
{
....
};
在Linux中描述进程的结构体叫做task_struct ,task_struct 是PCB的一种,是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。
tast_struct内容分布
1.标示符:描述本进程的唯一标示符,用于区别其他进程(其实是一个无符号整数)
2.状态:任务状态,退出代码,退出信息等等
3.优先级:相对于其他进程的优先级
4.程序计数器PC:程序中即将被执行的下一条指令的地址
5.内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
6.上下文数据:进程执行时处理器的寄存器中的数据
7.I/O状态信息:包括显示的I/O请求,分配给进程I/O设备和被进程使用的文件列表
8.记账信息:可能包括处理器的时间总和,使用的时钟数总和,时间限制,记帐号等
9.其他信息
三、查看进程
测试代码:
1.ps
ps Process Status
ps只能看到当前终端的进程,要想看到所有的进程就用ps axj
ps
ps axj
//a表示所有的进程
//x表示按照特定风格去显示
ps axj再利用管道和grep查看指定内容
想把头部带上也行,展示头部是ps axj | head -1
ps axj | head -1 && ps axj | grep "process"
这里的第二个进程其实就是grep
2.top
除了ps外还有top命令,top就相当于是windows下的任务管理器,还是建议用ps看
四、总结
以上是对进程的入门以及对PCB的认识和进程的查看相关知识,之后还会继续更新,觉得有帮助的话就点一点吧!
感谢大家的支持,在提升自我的过程中不断更新!!