• 进程入门与PCB基础知识.


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

    一、进程概述

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

    在这里插入图片描述

  • 相关阅读:
    C++ Qt开发:QUdpSocket网络通信组件
    一文读懂 Prometheus 长期存储主流方案
    JMeter—逻辑控制器
    计算机网络概述
    浮点数在内存中的存储
    SQL学习笔记1:SQL语句可以分三类
    “两客一危”车辆综合监控信息化产品及应用分析
    Linux 服务器(Ubuntu) 安装 golang记录
    六.Linux远程登录
    Servlet 请求和响应
  • 原文地址:https://blog.csdn.net/zhu_pi_xx/article/details/127043008