进程的一些概述

news2024/11/14 19:16:19

文章目录

  • 前言
  • 一、进程以及查看指令
  • 二、查看进程


前言

进程是什么?进程应该如何描述?进程又该如何管理?进程如何查看?

一、进程以及查看指令

一个正在运行的程序,加载到内存中的程序是进程也叫做任务,用任务资源管理器可以查看正在运行的任务(进程)
在这里插入图片描述
写一个程序,使它一直运行起来,这样这个可执行程序就成了一个进程
在这里插入图片描述

在这里插入图片描述

进进程信息该怎么描述?
进程信息和一般也没什么两样,都是要将其描述为一个结构体集合,用结构体描述起来,里面有一个进程的字段信息。进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。操作系统可以同时运行多个进程,但是各个进程都不一样,它如何做到同时运行,就像是在电脑上可以同时挂起多个软件一样,他们几乎是同时运行的,在我们用户的角度来看!虽然各个进程不一样,但是他们其中包含的信息都是照着一个模板来的,这个进程拥有的信息,每个进程都有,只是具体内容不相同罢了!这样也就要涉及到操作系统管理进程了,那么操作系统应该如何管理进程?和操作系统管理软硬件资源一样,先将它们的信息描述起来,然后通过数据结构将一个个进程组织起来,实现对进程的管理。六字真言:先描述,再组织。操作系统对进程的管理转换为对数据结构的增删查改。其实对于描述信息有特定数据结构控制块,多数操作系统统称为为PCB(process control block)不过在linux操作系统下的PCB是task_struct。在电脑开机时,操作系统会加载到内存,内存为操作系统分配一个空间,操作系统会为每一个京城形成一个描述进程信息的进程控制块(task_struct),任何进程真正加载到内存,形成真正进程时然后将自己的信息填充进task_struct中,并将自己的代码和数据写入,这样一个真正的进程就在操作系统上形成了。一个进程不仅仅包含自己的属性信息还包括自己的代码以及数据

PCB是进程属性的集合。辨别一个事物和对象时,都是通过属性认识的,当属性积累到一定程度时,这些描述属性信息的集合就是一个个目标对象了,而进程所有属性信息的集合就是一个个进程控制块,我们人认识这个世界都是通过一个个属性认识的。描述进程的属性信息有哪些?这可就太多了:进程标识符(描述一个进程的唯一标识符,用来区别其他进程),进程状态(每个进程都有对应的状态,工作,休闲休眠,就如人一样,在每时每刻每个人可能有不同的状态),进程优先级(进程运行,是放在cpu上运行,而cpu只有一个,资源那么少,进程很多,就注定了进程之间存在竞争关系,那么就会有谁先谁后访问cpu资源问题),程序计数器(程序中即将被执行的下一条指令的地址),内存指针(包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针),上下文数据(进程执行时处理器的寄存器中的数据),I/O状态信息(包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表)等等,描述一个进程信息很多。
进程=内核PCB数据结构对象(描述进程的所有属性值)+自己的代码和数据
就像高考填报志愿之后,高校会将填报本校的学生的基本信息拿到,虽然人还没有到我学校,但是你已经是我学校的学生了,因为描述你的所有属性信息我都已经得到,只待我自己进入到这个学校我就是一个严格意义上的大学生了,而在人还没有到学校时候已经人到了学校之后,学校对于我的管理都只是对于描述我属性信息的管理。反例:如学校保安是不是学校学生?不是!虽然人是在学校了,但是描述他的基本信息没有给学校学生管理系统中,尽管自己代码和数据都在操作系统中但是若没有描述自己属性的结构体是构不成一个进程的
进程的代码和数据加载到内存进入操作系统,进程怎么找到自己对应的代码和数据,这就在它的属性字段中有一个指针信息,他会指向自己的代码和数据,这样保证搞不丢,还有每一个进程pcb中还有一个属性为PCB结构体指针,可以将一个个PCB结构体连接组织起来就可以让操作系统实现对进程管理
Linux下进程管理
Linux中描述进程的结构体是task_struct,task_struct是Linux内核中的一种数据结构类型,它里面包含着进程的所有属性信息!

二、查看进程

进程可以通过指令查看
ps axj查看所有的进程
在这里插入图片描述
在这里插入图片描述
第一行是描述进程的相关属性,查看进程信息还可以通过ls /proc系统文件夹查看
在这里插入图片描述
proc是一个系统文件夹,在这文件夹下蓝色数字是每一个进程对应的唯一标识符(PID)
在这里插入图片描述
用proc查看进程看的时候不是进程的名称,而是要查看进程的PID才行。我运行一个./myprocess程序,用ps axj查看进程对应属性,再通过管道过滤出想要进程的信息 ps axj|head -1&& ps axj|grep (可执行程序名)
在这里插入图片描述
出现了两个myprocess命令的文件,是这样的,由于管道也是一个可执行程序,在执行它是会把它认为是一个在运行的进程,所有管道文件过滤myprocess的指令也会被显示出来。
在这里插入图片描述
然后ls /proc会这个文件夹下会找到PID为12306的数字
在这里插入图片描述
最后再明确查看proc目录下的这个pid为12306这个进程

在这里插入图片描述
出现的cwd(current work dir)是当前我这个进程的工作目录(路径),exe是当前进程下的哪个可执行程序。理解当前工作目录下,就如一个人他在哪里工作会有具体的地址,然后它工作用的电脑是放在它工作的地方,是在它当前的工作路径下。我产生的价值,做出来的东西是在我处的地方!

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

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

相关文章

从单机到分布式微服务,大文件校验上传的通用解决方案

一、先说结论 本文将结合我的工作实战经历,总结和提炼一种从单体架构到分布式微服务都适用的一种文件上传和校验的通用解决方案,形成一个完整的方法论。本文主要解决手段包括多线程、设计模式、分而治之、MapReduce等,虽然文中使用的编程语言…

在Visual Studio中调试 .NET源代码

前言 在我们日常开发过程中常常会使用到很多其他封装好的第三方类库(NuGet依赖项)或者是.NET框架中自带的库。如果可以设置断点并在NuGet依赖项或框架本身上使用调试器的所有功能,那么我们的源码调试体验和生产效率会得到大大的提升。今天我…

openKylin系统安装ssh服务结合内网穿透实现固定公网地址访问

文章目录 1. 安装SSH服务2. 本地SSH连接测试3. openKylin安装Cpolar4. 配置 SSH公网地址5. 公网远程SSH连接小结 6. 固定SSH公网地址7. SSH固定地址连接 openKylin是中国首个基于Linux 的桌面操作系统开发者平台,通过开放操作系统源代码的方式,打造具有自…

Selenium 自动化 —— Selenium IDE录制、回放、导出Java源码

Hello Selenium 示例 之前我们在专栏的第一篇文章中演示了使用使用Selenium进行百度搜索的Hello world示例。 代码不复杂非常简单: public static void main(String[] args) {WebDriver driver null;try {// 设置Chrome驱动的路径 // System.setPro…

matplotlib库简介及函数说明

目录 简介matplotlib.pyplot as plt 常用函数说明创建子图plt.subplots().plot() 子图参数set_title()axis2.legend()fig.autofmt_xdate() 简介 matplotlib 是一个用于创建二维图表和数据可视化的 Python …

【JavaWeb】Spring非阻塞通信 - Spring Reactive之WebFlux的使用

【JavaWeb】Spring非阻塞通信 - Spring Reactive之WebFlux的使用 文章目录 【JavaWeb】Spring非阻塞通信 - Spring Reactive之WebFlux的使用参考资料一、初识WebFlux1、什么是函数式编程1)面向对象编程思维 VS 函数式编程思维(封装、继承和多态描述事物间…

【视频异常检测】Delving into CLIP latent space for Video Anomaly Recognition 论文阅读

Delving into CLIP latent space for Video Anomaly Recognition 论文阅读 ABSTRACT1. Introduction2. Related Works3. Proposed approach3.1. Selector model3.2. Temporal Model3.3. Predictions Aggregation3.4. Training 4. Experiments4.1. Experiment Setup4.2. Evaluat…

Linux设置IP地址多种方法保姆级教程,外加修改主机名并通过生成密钥,组建机群。

[引入提问] 怎么设置linux服务器的名称? 方法1: nmtui—自动打开设置机器名称的操作界面---输入即可。重启hostnamed服务, systemctl restart system-hostnamed 方法2: 直接编辑 vim /etc/hostname ,输入新的…

VR历史建筑漫游介绍|虚拟现实体验店加盟|VR设备购买

VR历史建筑漫游是一种利用虚拟现实技术,让用户可以身临其境地参观和探索历史建筑的体验。通过VR头显和相关设备,用户可以在虚拟环境中自由移动和互动,感受历史建筑的真实氛围和文化内涵。 在VR历史建筑漫游中,您可以选择不同的历史…

Vue+SpringBoot打造数据可视化的智慧河南大屏

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏,包含了GDP、…

SpringCloud搭建微服务之Micrometer分布式链路追踪

1. 概述 由于Spring Cloud Sleuth最新版本只支持Spring Boot 2.7.x,核心项目已经迁移到Micrometer Traceing项目,Spring Boot 3.x版本要实现分布式链路追踪需要集成Micrometer。更多详情可以参阅Micrometer官网 本文将以Spring Boot 3.2.x和Spring Clo…

视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。

在视频业务深入的过程中越来越多的硬件设备接入视频交互的视频会议中远程交互,有的是视频采集,有的是医疗影像等资料,都需要在终端承显,这就需要我们的设备终端能多设备,多协议接入,设备接入如下。 1&#…

Python Web开发记录 Day13:Django part7 Ajax入门与案例(任务管理)

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、Ajax入门①简介②工作原理③优点④缺点⑤使用…

Poly Kernel Inception Network在遥感检测中的应用

摘要 https://export.arxiv.org/pdf/2403.06258 遥感图像(RSI)中的目标检测经常面临一些日益严重的挑战,包括目标尺度的巨大变化和多样的上下文环境。先前的方法试图通过扩大骨干网络的空间感受野来解决这些挑战,要么通过大核卷积…

易基因:人类大脑的单细胞DNA甲基化和3D基因组结构|Science

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 高通通量表观基因组分析技术可用于阐明大脑中细胞复杂性的基因调控程序。5-甲基胞嘧啶 (5mCs)是哺乳动物基因组中最常见的修饰碱基,大多数5mCs发生在胞嘧啶-鸟嘌呤二核苷酸&a…

Spring Boot 实现程序的优雅退出

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 前言 优雅停机是什么 SpringBoot如何实现优雅停机 合理杀死进程 法一&…

企业开展开源安全治理必要性及可行性详细分析

背景 开源软件安全威胁是近几年企业安全面临的主要威胁,也是企业应用安全方向讨论的热门话题,但是由于是新的需求新的方向,很多企业在观望,当前开展这项工作是否已经成熟,项目成功率如何? 当新鲜事物产生时…

【iOS】——Blocks

文章目录 前言一、Blocks概要1.什么是Blocks 二、Block模式1.block语法2.block类型变量3.截获自动变量值4._Block修饰符5.截获的自动变量 三、Blocks的实现1.Block的实质2.截获自动变量值3._Block说明符4.Block存储域 前言 一、Blocks概要 1.什么是Blocks Blocks是C语言的扩…

聚类分析 | Matlab实现基于NNMF+DBO+K-Medoids的数据聚类可视化

聚类分析 | Matlab实现基于NNMFDBOK-Medoids的数据聚类可视化 目录 聚类分析 | Matlab实现基于NNMFDBOK-Medoids的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 NNMFDBOK-Medoids聚类,蜣螂优化算法DBO优化K-Medoids 非负矩阵分解&#xff08…

mac清除dns缓存指令 mac清除缓存怎么清理

你是否曾经被要求清理dns缓存并刷新?清理dns缓存一般是由于修改了主机文件,或者想排除一些网络上的故障。在Mac上清除dns缓存需要使用命令行来实现。在本文中,软妹子将向大家介绍mac清除dns缓存指令,并展示mac清除缓存怎么清理。 …