Linux->进程概念于基本创建

news2024/12/29 10:16:34

1. 进程基本概念

        当一个可执行程序被加载到内存当中,并由操作系统将其管理起来,此时这个程序就被称之为进程。也就是下方的:

程序的一个执行实例,正在执行的程序等
担当分配系统资源(CPU时间,内存)的实体

        这样解释相信大家也只是看看,对于其本质并没有什么理解,所以我用一个问题的方式来为大家解惑。

        首先,我们知道一个或者多个可执行程序被存储在磁盘当中,然后我们执行这个可执行程序,这个程序的数据和信息被加载到了内存当中,那么此时,这和程序变为了进程吗?

        没有!记得我开始说的吗?可执行程序被加载到内存当中,这个操作系统被管理起来才算是进程,而我们刚才的操作只完成了第一步,也就是将程序加载到内存当中,那么这个程序当然还不是进程。

        那么重点就来了,这个被管理的过程是如何做的呢?

        其实操作系统会对每一个被加载进入程序抽象化,并提取进程的属性,形成一个结构,并将这些结构以特定的数据结构组织起来进行管理。这里抽象描述进程的东西就是->PCB

        也就是说进程 = 内核关于进程的相关数据结构 + 当前进程的代码和数据。

2. 描述进程-PCB

        所有被描述的程序信息都被存放到了一个叫做进程控制块的数据结构当中,我们可以理解为进程属性的集合。

        我们都知道每一个程序也就是文件都是由内容和属性组成,而每一个PCB结构体都是通过描述这些程序的数据和信息而得来的,那么文件的属性和进程属性有关联吗?

        答案是,有关联但是并不大,其实进程属性是由操作系统为了管理这些结构体主动为其添加的,并不是从文件属性中获取的,但是也不是所有信息都没有记录,它里面记录了文件的名字和路径这些信息,所以说他有关联但是不大。

        在Linux操作系统下的PCB是task_struct。它里面记录的信息大致为下:

标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/ O状态信息: 包括显示的I/O请求,分配给进程的I/ O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。

         透过里面的信息我们可以更清楚地了解为什么要有PCB的存在,那就是为了更好的描述进程的属性和更好的管理起来。

下图为一个程序变为进程的过程:

3. 查看进程

        首先我们先在Liunx中写一个简单的C语言程序。

  1 #include<stdio.h>
  2 #include<unistd.h>
  3 #include<sys/types.h>

  4 int main()
  5 {
  6   while(1)
  7   {
  8     printf("hello world\n");                       
  9     sleep(1);
 10   }
 11 
 12   return 0;
 13 }

           然后运行起来。效果如下

         另外开辟一个页面,输入指令

ps axj | head -1 && ps axj | grep myproc

        便可得到下方的信息。

         可以看到我们的进程正在执行,记住上面的PID,我们去Linux根目录下的/proc目录中查找这个PID。

         当然这个进程的PID并不是固定的,它是随时更改的。

         当我重新运行这个程序,它的PID也随之而改变,那么也就证明了进程是动态的。


        以上就是我对进程的初步理解,说实话这一部分是真的很难,我写这篇博客也只是我对于这一片知识的理解,能够帮到大家最好,希望大家一起努力。

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

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

相关文章

阿里云云通信风控系统的架构与实践

作者&#xff1a;铭杰 阿里云云通信创立于 2017 年&#xff0c;历经 5 年发展已经孵化出智能消息、智能语音、隐私号、号码百科等多个热门产品。目前&#xff0c;已成为了国内云通信市场的领头羊&#xff0c;在国际市场上服务范围也覆盖了 200 多个国家。随着业务的不断壮大&am…

正则表达式是如何运作的?

在日常的开发工作当中&#xff0c;我们必不可免的会碰到需要使用正则的情况。 正则在很多时候通过不同的组合方式最后都可以达到既定的目标结果。比如我们有一个需要匹配的字符串&#xff1a; hello&#xff0c;我们可以通过 / .</p>/ 以及 / .?</p>/ 来匹配&…

数据分析与SAS学习笔记8

过程步&#xff1a;一个典型的SAS完整程序&#xff1a; 代码说明&#xff1a; 1&#xff09;reg&#xff1a;回归分析&#xff1b; 2&#xff09;model&#xff1a;因变量和自变量。 proc开头部分叫过程步。 常用过程&#xff1a; SORT过程&#xff1a; PRINT过程与FORTMAT…

Linux环境下绕过长度限制写入webshell

前提当命令执行漏洞对长度有限制时&#xff0c;我们可以通过一些Linux命令生成文件进行执行。如果应用程序是使用shell解析器来执行命令或文件&#xff0c;那么不需要该文件具有执行属性(x)如果应用程序没有shell解析器&#xff0c;那么写入文件内容时&#xff0c;可以第一条语…

终极方案,清理 docker 占用磁盘过大问题, 亲测有效!

背景 在笔者的工作测试环境中&#xff0c;使用过程中突然出现根磁盘快吃满了&#xff08;docker也是使用的根池盘的/var/lib/docker&#xff09;&#xff0c; wtf &#xff1f; 服务用不了&#xff1f; 当然网上找到了一些常规的清楚docker 日志文件 但是通过df -hT 查看到over…

2023年Java面试题精选(蚂蚁金服/滴滴/美团/拼多多腾讯)

作为一名优秀的程序员&#xff0c;技术面试都是不可避免的一个环节&#xff0c;一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 如果你参加过一些大厂面试&#xff0c;肯定会遇到一些这样的问题&#xff1a; 1、看你项目都用的框架&#xff0c;熟悉…

Linux 中使用 docker-compose 部署 MongoDB 6 以上版本副本集及配置 SSL / TLS 协议

一、准备环境 MongoDB 副本集部署至少 3 个节点&#xff08;奇数节点&#xff09;&#xff0c;为了保障数据安全性&#xff0c;可考虑将 MongoDB 节点分布在不同的主机上&#xff0c;本示例使用一台主机部署 3 个 MongoDB示例。 1、创建 MongoDB 集群数据相关目录 # 创建 Mo…

大数据|大数据基础(概念向)

目录 &#x1f4da;大数据概念 &#x1f407;常见数据存储单位 &#x1f407;大数据的特点&#xff08;5V&#xff09; &#x1f407;大数据 VS 数据库 &#x1f31f;数据库 &#x1f31f;大数据 &#x1f4da;大数据业务分析基本步骤 &#x1f407;收集数据 &#x1f4…

RockerMQ简介和单节点部署

目录一、RockerMQ简介二、Linux中单节点部署1、准备工作2、下载和解压3、修改初始内存4、启动5、查看进程6、发送接收消息测试7、关闭三、控制台的安装与启动(可视化页面)1、修改配置&#xff08;1&#xff09;修改端口号&#xff08;2&#xff09;指定RocketMQ的name server地…

企业知识管理常见的误区及解决方案

在企业信息化的背景下&#xff0c;越来越多的首席信息官&#xff08;CIO&#xff09;承担着促进组织知识管理实施的责任。然而&#xff0c;从实践的角度来看&#xff0c;虽然我国大多数知识管理实施项目都取得了一定的成果&#xff0c;但与预期有很大的不同&#xff0c;甚至许多…

这18个被全网吹爆了的AI绘画工具,分享给你!

伴随着ChatGPT的横空出世&#xff0c;一场史无前例的科技革命正在拉开序幕。 AI 拥有强大的信息储备和数据处理能力&#xff0c;无论是速度、质量&#xff0c;还是思维模式&#xff0c;都让人只呼不得了&#xff01;写代码、造论文丝毫不在话下&#xff0c;甚至还能和你探讨茶…

当 Amazon Lambda 遇上 Apache APISIX 可以擦出什么火花?

本文首先介绍了什么是 Serverless&#xff0c;以及为什么需要 Serverless&#xff1b;其次&#xff0c;讲述了一个好的网关在 Serverless 架构下的重要性&#xff0c;而 APISIX 就是这样的一个网关&#xff1b;最后&#xff0c;本文重点介绍了 APISIX 中的 Serverless 类型的插…

您应该知道的几个安卓照片恢复应用程序

如果您不小心删除了存储在 Android 手机上的一些重要照片&#xff0c;该怎么办&#xff1f;如果您之前已创建备份&#xff0c;则只需将备份文件中的照片恢复到您的手机即可。但数据丢失往往是突然发生的&#xff0c;可能是由于误操作、恢复出厂设置或物理损坏等原因造成的。如果…

高性能低功耗4口高速USB2.0 HUB NS1.1S 兼容FE1.1

NS1.1S是一款高性能、低功耗4口高速 USB2.0 HUB 控制器&#xff0c;上行端口兼容高速 480MHz和全速12MHz两种模式&#xff0c;4个下行端口兼容高速480MHz、全速12MHz、低速1.5MHz三种模式。 NS1.1S采用状态机单事务处理架构&#xff0c;而非单片机架构&#xff0c;多个事务缓冲…

Java无法通过形参设置为null改变实参

文章目录问题描述问题例子问题分析问题描述 在实际业务开发过程中&#xff0c;我们会把实参传递给形参&#xff0c;在方法体内对引用对象进行构建或者修改&#xff0c;从而改变实参&#xff0c;因为对形参对象属性修改时&#xff0c;实参对象也会随着改变&#xff0c;详情请看&…

《Java核心技术》笔记——第六章

文章目录CH6.接口、lambda表达式与内部类1.接口基本2.常用接口3.lambda表达式4.内部类5.服务加载器与代理前章&#xff1a; 第三章~第五章的学习笔记CH6.接口、lambda表达式与内部类 1.接口基本 接口基本——interface声明&#xff0c;方法无需指明public&#xff08;默认都是…

基于node vue的电商系统 mongodb express框架

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 基于node vue的电商系统 mongodb express框架前言技术栈基本功能普通用户管理员一、运行截图&#xff1f;二、使用步骤1.前端main.js2.后端admin路由前言 技术栈 本项目采用…

行业分析| OA系统中的实时通讯

前言 当前实时通讯市场中有QQ、MSN、网络电话以及视频会议等&#xff0c;同时也有各个互联网巨头推出的基于自身平台的实时通讯工具&#xff0c;比如&#xff0c;百度hi&#xff0c;淘宝旺旺等&#xff0c;相对而言其与纯粹的实时通讯工具不同&#xff0c;基于自身平台的实时通…

点击化学 PEG 试剂1858242-47-3,Propargyl丙炔基-PEG1-乙酸活性酯

Propargyl-PEG1-Acetic acid-NHS ester&#xff0c;丙炔基-聚乙二醇-乙酸琥珀酰亚胺酯&#xff0c;丙炔基-PEG1-乙酸活性酯&#xff0c;丙炔基-PEG1-乙酸-NHS 酯产品规格&#xff1a;1.CAS号&#xff1a;1858242-47-32.分子式&#xff1a;C9H9NO53.分子量&#xff1a;211.174.包…

ChatGPT商业前景如何?人工智能未来会如何发展?

ChatGPT不仅在互联网和多个行业引发人们的关注&#xff0c;在投资界还掀起了机构对人工智能领域的投资热潮。人工智能聊天程序ChatGPT在去年11月亮相之后&#xff0c;在推出仅两个月后&#xff0c;今年1月份的月活用户已达到了1亿&#xff0c;成为史上增长最快的消费者应用程序…