【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日
    浏览(49)
  • 【Linux】进程概念与进程状态

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

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

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

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

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

    2023年04月25日
    浏览(54)
  • 【Linux】进程周边001之进程概念

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

    2024年02月05日
    浏览(41)
  • 【Linux】-- 进程概念的引入

    目录 硬件 冯诺依曼体系结构 冯诺依曼体系结构推导 重点概念 网络数据流向 软件 操作系统(Operator System - OS) 概念 定位 进程内核数据结构PCB(task_struct) 通过系统调用创建进程-fork初始 fork基本用法 使用if进行分流 查看运行效果         我们常见的计算机,如笔记本。我

    2023年04月17日
    浏览(29)
  • 【linux】进程概念详述

    输入设备: 键盘、磁盘、网卡、显卡、写字板、摄像头等 输出设备: 显示器、磁盘、网卡、显卡等 存储器: 内存 运算器和控制器: CPU 我们可以看到输入设备和输出设备并不是完全独立的。比如我们以前的文件操作是 从磁盘中读取 为什么能直接把外设的数据加载到CPU中?

    2023年04月21日
    浏览(19)
  • 『 Linux 』进程地址空间概念

    在c/C++中存在一种 内存 的概念; 一般来说一个内存的空间分布包括 栈区 , 堆区 , 代码段 等等; 且内存是 自底向上 (由 0x00000000 至 0xFFFFFFFF ); 以该图为例: 该图即为常见的内存分布图; 正文代码段 正文代码段所存放的数据 一般为函数体的二进制代码 ; 已初始化数据区 已初始化

    2024年02月03日
    浏览(44)
  • Linux进程概念——其二

    目录 环境变量 基本概念 常见环境变量 查看环境变量方法 测试PATH 重点 测试HOME 和环境变量相关的命令 环境变量的组织方式 通过代码获取环境变量 通过系统调用获取或设置环境变量 环境变量通常是具有全局属性的 重点 程序地址空间 研究背景 程序地址空间回顾 程

    2024年02月02日
    浏览(13)
  • Linux——进程的概念

    task_struct 是linux下管理进程的结构,称为PCB,进程控制块。linux所有的指令本质上都是一个进程。进程 = task_struct + 进程的数据、代码、可执行程序,有属性、有内容。 进程是系统的工作单元。系统由多个进程组成,包括操作系统进程(执行系统代码)、用户进程(执行用户代

    2024年02月11日
    浏览(21)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包