【LInux】进程概念II -- 描述进程

这篇具有很好参考价值的文章主要介绍了【LInux】进程概念II -- 描述进程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。


【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

0. 进程概念

在初学阶段,我们对进程这个词仅在书上看见过,大多不太理解这个究竟是什么意思?

回顾我们之前所讲,如何去管理一件事物:先描述再组织.同样的 操作系统想要对进程进行管理也是要先去描述这个进程再去组织才能完成管理.

所以要管理进程,描述并组织这两步必不可少.

1. 描述进程

我们打开windows下的任务管理器.可以发现有很多的任务.

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

这些任务我们可以粗略的把他认为是一个个进程.例如:我现在运行了edge,typora …等进程

根据之前所介绍的冯诺依曼体系结构来看,他们都是被加载到了内存当中,我们才可以使用.

所以我们先简单的对进程进行一个定义:一个加载到内存中的程序,叫做进程

那么如何描述他呢?

通过一个叫 PCB (process control block)的结构体来描述.在Linux中其名为Task_Struct(文末附有源码)

操作系统的工作流程是这样的:(省略了部分细节,之后详谈)

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

先将磁盘中的可执行程序移动到内存中,再为其分配一个PCB用指针指向该可执行程序,这一整块内容,我们统称为进程;

所以现在进程是由什么组成的也就是怎么描述进程的概念有了:进程=PCB+用户数据(代码段以及可执行程序等)

我们在Linux中看看是不是这样的呢?

打开我们的服务器,创建一份名为process.cpp的C++文件.

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
    while(1)
    {
        printf("i am a process\n");
        sleep(1);
    }
}

将其用gcc进行编译

gcc -o proce process.cpp

之后将其运行,此时屏幕上会出书 i am a process的字样表示程序成功启动

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

现在我们用如下命令可以查看其进程属性

`ps -ajx | head -1 && ps -ajx | grep proce`

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

可以看到其具有几个属性:

PPID: 父进程进程号

PID: 当前进程进程号

STAT: 当前进程状态

我们可以进入/proc这个目录来查看当前系统中运行的进程.

这是我服务器上所运行的进程号

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

我们可以看到刚刚我们创建的进程号为1846149的进程在这里也有属于自己的文件夹.

我们进去看看有什么属性?

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程

当前情况下,我们只需要了解

  1. exe存储的是我们可执行程序的路径.也可以理解为一个指针指向对应的路径

  2. cwd是当前工作目录.在很多时候我们在一个程序中直接写文件名,系统在处理的时候会自动将cwd拼接在文件名前,这样就在当前路径中完成了自己想要的操作.

2. 组织进程

现在我们已经完成了描述进程这一工作:任何程序在加入到内存前,形成真正的进程时,操作系统需要先创建描述其属性的结构体对象

那Linux具体是如何组织进程的呢?最基本的方式为采用双向链表进行组织

【LInux】进程概念II -- 描述进程,Linux,linux,运维,服务器,进程文章来源地址https://www.toymoban.com/news/detail-730172.html

到了这里,关于【LInux】进程概念II -- 描述进程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux进程篇】进程概念(1)

    作者:爱写代码的刚子 时间:2023.7.30 前言:操作系统和软硬件的关系就相当于管理者和被管理者的关系,管理者并不需要见到被管理者,通过执行者拿到对应数据,通过对数据的管理来达到管理的目的。==对软硬件的管理最后一定会变成对某种数据结构的增删查改。==本篇博

    2024年02月14日
    浏览(33)
  • 【Linux】进程概念与进程状态

    在通常的计算机书籍或者课本中对进程概念的描述是这样的 – 进程就是被加载到内存中的程序,或者被运行起来的程序就叫做进程 ;这样说的原因如下: 首先,从 【Linux】计算机的软硬件体系结构 中我们知道,为了提高计算机的整体效率,在数据层面,CPU 不会直接和外设

    2024年02月02日
    浏览(32)
  • 【Linux升级之路】3_Linux进程概念

    🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux升级之路】 ✒️✒️本篇内容:认识冯诺依曼系统,操作系统概念与定位,深入理解进程概念(了解PCB),学习进程状态(创建进程、僵尸进程和孤儿进程),进程优先级进程切换(进程竞争性与独立性、并行与并

    2024年02月05日
    浏览(22)
  • 【Linux】进程周边001之进程概念

    👀 樊梓慕: 个人主页  🎥 个人专栏: 《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》 🌝 每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.基本概念 2.描述进程-PCB 2.1task_struct-Linux中的PCB 2.2task_struct内容分类(成员) 3.查看进

    2024年02月05日
    浏览(29)
  • 【Linux】进程学习(1)---理解进程概念

    数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大

    2023年04月25日
    浏览(41)
  • 【Linux】深入理解进程概念

    个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 本篇文章继上一篇的冯诺依曼体系结构和操作系统这两个软硬件的概念之后,开始讲解Linux下 三座大山 之一的 进程 。 因为进程概念虽然不是

    2024年02月14日
    浏览(23)
  • Linux进程概念(一)

    前文我们了解了,进程的基本概念,在课本上被描述为,正在执行的程序,在linux内核上,认为进程是担当分配系统资源(CPU时间,内存)的实体。 进程=内核描述数据结构(PCB)+代码和数据 在Linux中,PCB为task_struct,它会被装载到RAM(内存)里并且包含着进程的信息。 本文我们

    2024年02月14日
    浏览(28)
  • 【Linux】进程基础概念【下篇】

    目录 1. 基本概念 2. 常见环境变量 常见环境变量指令 (1. PATH (2. HOME (3. SHELL 3.环境变量的组织形式 (1)通过代码如何获取环境变量 (2)普通变量与环境变量的区别 (3)命令行参数 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。

    2024年02月09日
    浏览(32)
  • Linux进程概念(上)

    哈喽大家好,我是 鹿九丸 color{red}{鹿九丸} 鹿九丸 ,今天给大家带来的是Linux进程概念(上)。 如果大家在看我的博客的过程中或者学习的过程中以及在学习方向上有什么问题或者想跟我交流的话可以加我的企鹅号: 2361038962 color{red}{2361038962} 2361038962 ,或者寄邮件到相应的

    2024年02月19日
    浏览(16)
  • 【Linux】进程——基础概念【上篇】

    目录 一, 冯* 诺依曼体系结构 1,存储结构 ​编辑 二, 操作系统  1,概念 2,设计OS的目的 3,定位 4,如何理解 \\\"管理\\\" 5, 总结  三,进程 1. 概念  那么如何区分进程  程序? 2. PCB —— 描述进程 3. 组织进程 补充: cwd  4.  task_struct ——PCB  (1) PID——标识符 5.父子进程

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包