【Linux】进程的基本概念(进程控制块,ps命令,top命令查看进程)

news2024/12/24 9:10:32

       

目录

01.进程的基本概念

程序与进程

进程的属性

02.进程控制块(PCB)

task_struct的内容分类

组织进程

03.查看进程

ps命令

top指令


        在计算机科学领域,进程是一项关键概念,它是程序执行的一个实例,是操作系统的基本单位。本文将从进程的基本概念到内核观点的深入理解,以及Linux操作系统下的具体实现等方面逐步探讨进程的相关知识。

01.进程的基本概念

程序与进程

程序与进程之间存在着密切的关系,但并不是同一个概念。

程序

  • 程序是一组指令的集合,是静态的代码文件,通常存储在磁盘或其他存储介质中。
  • 程序是计算机执行特定任务的指令序列,它描述了如何处理输入数据以产生输出结果。

进程

  • 进程是程序的执行实例,是操作系统中的基本执行单位。
  • 进程包括了程序的执行状态、内存空间、资源分配情况等信息。
  • 每个进程都有自己的唯一标识符(PID),并且可以独立运行和被操作系统调度。

        用生活中的例子来解释,程序就像是一本菜谱,描述了如何准备一道菜的步骤、所需的食材以及烹饪方法,但它本身并不会做任何事情而进程则是根据菜谱准备食物的实际过程,它是程序在执行过程中的动态实例。就像你可以同时烹饪多道菜一样,操作系统可以同时执行多个进程,每个进程都在独立地执行它们的指令,拥有自己的资源和状态。

进程的属性

        进程的属性包括了唯一标识符、状态、优先级、程序计数器、内存指针、上下文书籍、I/O状态信息、记账信息等。这些属性描述了进程在执行过程中的各个方面,是操作系统进行进程管理的基础。进程信息存放在名为进程控制块的数据结构中,也可以称之为进程属性的集合。

02.进程控制块(PCB)

        在内核观点中,进程被认为是担任分配资源的实体。而进程的信息被存放在一个称为进程控制块的数据结构中,它是进程属性的集合,包含了进程在执行过程中所需的所有信息。

        在LInux操作系统中,描述进程的结构体称为"task_struct".它被装载到内存中,并包含了进程的所有信息。"task_struct"是Linux内核的一种数据结构。

task_struct的内容分类

标示符

描述本进程的唯一标识符,通常是一个PID(进程ID),用来区别其他进程。

状态

包括任务状态、退出代码、退出信号等,描述了进程当前所处的状态和执行情况。

优先级

相对于其他进程的优先级,用来决定进程在调度时的执行顺序。

程序计数器

记录了程序中即将被执行的下一条指令的地址,用来指示进程当前执行的位置。

内存指针

包括了程序代码和进程相关数据的指针,以及与其他进程共享的内存块的指针,用来管理进程的内存空间和数据共享。

上下文数据

指进程执行时处理器的寄存器中的数据,包括了寄存器的状态、程序计数器等,是进程从一个状态切换到另一个状态时需要保存和恢复的信息。

I/O状态信息

包括显示的I/O请求、分配给进程的I/O设备和被进程使用的文件列表等,用来描述进程的I/O操作情况。

记账信息

包括了处理器时间总和、使用的时钟数总和、时间限制、记账号等,用于统计和记录进程的运行情况和资源消耗情况。

组织进程

在Linux内核源代码中,所有运行在系统中的进程都以"task_struct"链表的形式存在内核中。这种组织形式方便了操作系统对进程的管理和调度。

03.查看进程

进程的信息可以通过 /proc系统文件夹查看

大多数进程信息同样可以使用ps或top工具来获取

ps命令

ps命令用于显示系统中当前运行进程的信息。它提供了许多选项,可以根据需要显示不同的进程信息。以下是它的常用选项:

  • -e:显示所有进程信息。
  • -f:显示详细的进程信息,包括父进程的PID、CPU利用率等。
  • -u user:显示指定用户的进程信息。
  • -aux:显示所有用户的所有进程信息,并且以更详细的方式显示。
  • -p pid1,pid2,...:显示指定PID的进程信息。
  • -N:显示与指定条件不匹配的进程信息。
  • -o format:指定显示的输出格式。

 示例:

在使用ps命令查找某一进程的信息时,可以结合“grep”命令,例如

ps aux | grep proc

这样就会筛选出名称为proc的进程的信息

此时为什么会用两个进程的信息呢,第一行时proc进程的信息,第二行其实是grep的进程信息,grep命令在输出时会给匹配的文本添加高亮颜色,如果不想看到grep进程信息,可以使用-v选项

此时就只有proc进程的信息了。

        注意:有时候可能因为没用正确方式终止程序导致留下一个僵尸进程或者后台进程,这个时候虽然程序没有在运行,但是进程信息仍然会显示在ps命令的输出中。这个时候就需要使用“kill”命令终止程序(一般的程序只需要ctrl+c就可以终止)下面看一个例子:

还是proc程序,运行时加入选项&,此时就会生成一个后台程序,ctrl+c无法进行终止

此时复制一个当前窗口,获取该进程PID并输入kill指令

这样进程就终止了

 

top指令

        top命令是一个用于实时监测系统进程的工具,它可以显示系统当前正在运行的进程以及它们的资源占用情况。运行top命令后,会在终端显示一个实时更新的进程列表,包括进程的PID、用户、CPU占用率、内存占用率等信息。

top命令以交互方式运行,可以在列表中执行一些命令:

  • q 键退出 top 命令。
  • k 键输入一个进程的 PID 并按回车,然后输入一个信号值(例如 9 表示 SIGKILL),可以杀死指定的进程。
  • u 键输入一个用户名,可以过滤显示属于该用户的进程。
  • ? 键可以查看更多可用的命令列表。
  • P 键按 CPU 占用率排序。
  • M 键按内存占用率排序。

        还可以通过在命令行中指定选项来修改 top 命令的默认行为。例如,你可以使用 -d 选项指定更新间隔时间,使用 -n 选项指定显示进程的数量等。

以上就是进程的一些相关知识的整理了~

总结:

        进程作为计算机系统中的基本概念,承载着程序的执行实例,是操作系统进行资源分配和管理的核心。通过对进程的基本概念、内核实现以及创建和调度的深入探讨,我们能够更好地理解操作系统中进程管理的机制。觉得博客对你有帮助的,点赞关注支持一下吧~😉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1544264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】线程预备知识{远程拷贝/重入函数与volatile关键字/认识SIGCHILD信号/普通信号/实时信号}

文章目录 0.远程拷贝1.重入函数与volatile关键字2.认识SIGCHILD信号3.普通信号/实时信号 0.远程拷贝 打包资源:tar czf code.tgz *远程传输:scp code.tgz usr服务器ip:/home/usr/路径解压:tar xzf code.tgz 1.重入函数与volatile关键字 先看…

【智能算法】秃鹰搜索算法(BES)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年, Alsattar等人受到秃鹰猎食自然行为启发,提出了秃鹰搜索算法(Bald Eagle Search,BES)。 2.算法原理 2.1算法思想 BES主要分为三…

龙智亮相2024国际集成电路展览会暨研讨会(IIC Shanghai),分享芯片研发及管理解决方案与技术实践

2024年3月28-29日(周四-周五),上海张江科学会堂,2024国际集成电路展览会暨研讨会(IIC Shanghai 2024)即将盛大开幕。龙智携芯片研发及管理解决方案、最佳实践与案例,以及惊喜大奖在#1A14展位等着…

第十九章 linux部署scrapyd

文章目录 1. linux部署python环境1. 部署python源文件环境2. 下载python3. 解压安装包4. 安装5. 配置环境变量6. 检查是否安装成功7. 准备python使用的包8. 安装scrapyd9. 配置scrapyd10. 开放6800端口 2. 部署gerapy1. 本机下载包2. 初始化3. 进入gerapy同步数据库4. 创建用户…

堂哥让我给他做个真人动漫头像

背景 堂哥最喜欢的动漫是死神。他给了我一张死神主角一户的头像,以及自己的头像,希望我产出一张真人动漫头像。 一户的头像: 堂哥自拍照: 最近,有大佬部署了个stable diffusion,正好拿来一试身手。 stab…

优质视频素材库排行榜前十名有哪些?

在视频创作的世界中,每一帧画面、每一个音符都承载着无限的可能。为了帮助你更好地探索这些可能性,我继续为你精选了一系列素材网站。这些网站不仅能够提供高质量的视频、音效和图像素材,还能激发你的创意灵感,助你一臂之力。 1&…

利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )

Linux 给人的印象是黑乎乎的神秘窗口,文本操作和数据处理似乎没有 Windows 窗口界面直观方便。其实Linux 有自己的独特的法宝,称之为三剑客:grep,awk 和 sed。你可以用这三件法宝很方便的处理数据 :查找,分…

时间戳的转换-unix时间戳转换为utc时间(python实现)

import datetimetimestamp = 1711358882# 将时间戳转换为UTC时间 utc_time = datetime.datetime.utcfromtimestamp(timestamp)# 格式化并输出时间 formatted_time = utc_time.strftime(%Y-%m-%d %H:%M:%S) print(formatted_time)同样:UTC如何转换为unix时间戳 from datetime …

【考研数学】如何搭配好《660》+《880》组合?

如果1800题都做不明白,那就不要去做880题660题 做完1800题之后,还迷迷糊糊,解题水平极低,都是犯了一个错误: 那就是为了做题而做题! 如果这个习惯不改掉,那不管是做660题还是880题都起不到任…

穿越地心:3D可视化技术带你领略地球内部奇观

在广袤无垠的宇宙中,地球是一颗充满生机与奥秘的蓝色星球。我们每天都生活在这颗星球上,感受着它的温暖与恩赐,却往往忽略了它深邃的内部世界。 想象一下,你能够穿越时空,深入地球的核心,亲眼目睹那些亿万年…

ssm005基于SSM框架的购物商城系统+jsp

购物商城系统的设计与实现 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就…

GL-15过流继电器 10A、5A 板前接线带附件 JOSEF约瑟

系列型号: GL-11过流继电器; GL-12过流继电器; GL-13过流继电器; GL-14过流继电器; GL-15过流继电器; GL-16过流继电器; GL-17过流继电器; 用途 GL-10系列过流继电器(以下简称继电器)具有反时限特性,应用于电机、变压器等主设备以及输配电系统的继电保…

SQLAlchemy操作数据库

数据库是一个网站的基础。 比如 MySQL 、 MongoDB 、 SQLite 、 PostgreSQL 等,这里我们以 MySQL为例进行讲解。 SQLAlchemy 是一个 ORM 框架 我们会以 MySQL SQLAlchemy 组合进行讲解。 在操作数据库操作之前,先确保你已经安装了以下两个插件&#…

spring 环境配置

1.安装idea 建议安装2020以上的版本 idea 旗舰版 下载路径 破解软件和激活码地址,破解软件相对麻烦,建议用激活码(可能不稳定)。 2.安装 JDK 版本选择1.8的 安装完以后记得配置环境变量,配置完以后输入java -version查看是否安装成功 参考…

Word邮件合并

Word邮件合并功能可以解决在Word中批量填写内容的需求,当需要大量格式相同,只修改少数相关内容时,例如利用Word制作工资条,通知函,奖状等等,同时操作也非常简单灵活。下面通过例子来说明邮件合并的使用方法…

技术与业务:项目成功的黄金关键

目录 前言1 明确业务需求2 技术选择与业务匹配3 解决方案设计与业务一致4 开发与实施5 持续监控与优化6 反馈循环与持续改进结语 前言 在当今数字化时代,技术与业务之间的紧密联系对于项目的成功至关重要。无论是开发新产品、提供服务还是改进现有流程,…

QT_day3:2024/3/22

作业1:设计界面 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin…

【OJ】动归练习二

个人主页 : zxctscl 如有转载请先通知 题目 1. 91.解码方法1.1 分析1.2 代码 2. 62.不同路径2.1 分析2.2 代码 3. 63.不同路径 II3.1 分析3.2 代码 1. 91.解码方法 1.1 分析 题目所述就是把一串数字反向解码为字母映射出来,有多少种方法。 题目也说&…

科学计算库numpy的使用

import numpy as np import matplotlib.pyplot as plt #加载显示图片,目录根据实际情况写。 img_arr plt.imread(‘D:\大数据分析\python\123.jpg’) plt.imshow(img_arr) #将图片进行左右翻转 plt.imshow(img_arr[:,::-1,:]) plt.imsave(‘D:\大数据分析\pyt…