进程入门与PCB基础知识.

发布于:2022-12-07 ⋅ 阅读:(905) ⋅ 点赞:(0)

🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸
在这里插入图片描述

一、进程概述

进程其实就是系统中正在运行的一个程序
在这里插入图片描述
启动一个软件,本质上就是启动一个进程
在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的认识和进程的查看相关知识,之后还会继续更新,觉得有帮助的话就点一点吧!
    感谢大家的支持,在提升自我的过程中不断更新!!

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到