【LInux】进程概念II -- 描述进程
Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。
本篇导航
- 0. 进程概念
- 1. 描述进程
- 2. 组织进程

0. 进程概念
在初学阶段,我们对进程这个词仅在书上看见过,大多不太理解这个究竟是什么意思?
回顾我们之前所讲,如何去管理一件事物:先描述再组织.同样的 操作系统想要对进程进行管理也是要先去描述这个进程再去组织才能完成管理.
所以要管理进程,描述并组织这两步必不可少.
1. 描述进程
我们打开windows下的任务管理器.可以发现有很多的任务.
这些任务我们可以粗略的把他认为是一个个进程.例如:我现在运行了edge,typora …等进程
根据之前所介绍的冯诺依曼体系结构来看,他们都是被加载到了内存当中,我们才可以使用.
所以我们先简单的对进程进行一个定义:一个加载到内存中的程序,叫做进程
那么如何描述他呢?
通过一个叫 PCB (process control block)的结构体来描述.在Linux中其名为Task_Struct(文末附有源码)
操作系统的工作流程是这样的:(省略了部分细节,之后详谈)
先将磁盘中的可执行程序移动到内存中,再为其分配一个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的字样表示程序成功启动
现在我们用如下命令可以查看其进程属性
`ps -ajx | head -1 && ps -ajx | grep proce`
可以看到其具有几个属性:
PPID: 父进程进程号
PID: 当前进程进程号
STAT: 当前进程状态
我们可以进入/proc这个目录来查看当前系统中运行的进程.
这是我服务器上所运行的进程号
我们可以看到刚刚我们创建的进程号为1846149的进程在这里也有属于自己的文件夹.
我们进去看看有什么属性?
当前情况下,我们只需要了解
-
exe存储的是我们可执行程序的路径.也可以理解为一个指针指向对应的路径
-
cwd是当前工作目录.在很多时候我们在一个程序中直接写文件名,系统在处理的时候会自动将cwd拼接在文件名前,这样就在当前路径中完成了自己想要的操作.
2. 组织进程
现在我们已经完成了描述进程这一工作:任何程序在加入到内存前,形成真正的进程时,操作系统需要先创建描述其属性的结构体对象
那Linux具体是如何组织进程的呢?最基本的方式为采用双向链表进行组织
相关文章:

【LInux】进程概念II -- 描述进程
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 本篇导航 0. 进程概念1. 描述进程2. 组织进程 0. 进程概念 在初学阶段,我们对进程这个词仅在书上看见过,大多不太理解这个究竟是什么意思…...
紫光集团、展讯通信、锐迪科(RDA)、紫光展锐以及翱捷科技(ASR)关系梳理
紫光集团、展讯通信、锐迪科(RDA)、紫光展锐以及翱捷科技(ASR)关系梳理 参考链接: 一文梳理国产芯片巨头:紫光集团https://zhuanlan.zhihu.com/p/578232102 紫光展锐发展史,曾经的热血海归们如今都去哪了? 然而早在2013年和2014年,展讯和锐迪科就分别被紫光收购。相隔一…...

7.多线程之单例模式
单例模式 文章目录 单例模式1. 什么是单例模式2. 饿汉模式3. 懒汉模式3.1 单线程版:3.2 多线程版 1. 什么是单例模式 单例模式是一种设计模式,常见的设计模式还有工厂模式、建造者模式等。 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码…...
docker 常用指令
以下是一些常用的Docker指令: 构建镜像: docker build -t <image_name> <Dockerfile_directory>运行容器: docker run -d --name <container_name> <image_name>查看正在运行的容器: docker ps停止容…...
Numpy、Pandas、Matplotlib学习(更新ing...)
数据科学 一、Numpy二、Pandas三、Matplotlib参考链接 一、Numpy 在numpy中以np.nan表示缺失值,它是一个浮点数。 二、Pandas 1、如要选出col0在30到80之间的行中col3与col1之差为奇数的行,或者col2大于50中的行col3超过col1均值的行,可以…...
Linux-sdio接口
支持模式 4位模式: CMD:命令线,单向传输,由主机控制。 DAT0-DAT3:数据线,双向传输,由主机和外设共同控制。8位模式: CMD:命令线,单向传输,由主机…...

【MATLAB源码-第62期】基于蜣螂优化算法(DBO)的无人机三维地图路径规划,输出最短路径和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 蜣螂优化算法(Dung Beetle Optimization, DBO)是一种模拟蜣螂在寻找食物和进行导航的过程的优化算法。蜣螂是一种能够将粪球滚到合适地点的昆虫,它们利用天空中的光线和自身的感知能力来确…...

RealVNC Enterprise 7.7.0 Crack
RealVNC连接_旗舰产品 RealVNC Connect 是为需要强大安全性、弹性和安心的组织提供的远程访问解决方案。 设备访问 按需协助 随时随地安全访问和管理任何设备 通过安全的远程访问让您的组织保持联系,帮助您提高生产力并促进更广泛的协作。 随时随地安全远程访问和…...

Windows下Jenkins自动化部署SpringBoot应用
Windows下Jenkins自动化部署SpringBoot应用 1、下载安装包 下载地址: 一个是 msi 程序: https://mirrors.aliyun.com/jenkins/windows/ 一个是 war 程序: https://get.jenkins.io/war-stable/ https://mirrors.jenkins.io/war/ 这里我…...
Leetcode59螺旋矩阵2
代码: class Solution {public int[][] generateMatrix(int n) {if(n1){int[][] arr {{1}};return arr; }int[][] arr new int[n][n];int cnt1;int left 0,right n-1,top0,downn-1;while(left<right){for(int ileft;i<right;i){arr[top][i] cnt;}for(in…...

抖音很火的情侣飞行棋/真心话大冒险/情侣扫雷html网站源码带在线支付、代理分销等!
-------- 演示地址 -------- 演示地址:http://game.71.vy386.cn 演示后台:http://game.71.vy386.cn/admin 后台账号:admin888 后台密码:admin888 -------- 程序特色 -------- 1、完整的分销制度,可自定义多种不同…...

Word批量删除文档属性和个人信息方法图解
投标文件中设计敏感信息,在投标前必须删除,Word批量删除文档属性和个人信息方法图解: 右键word文件属性--详细信息,可以查看如下信息; 删除上述信息的办法: 1.打开word文件---文件 2.检查文档、检查文档 检…...
Kubernetes(K8s)从入门到精通系列之十八:使用 Operator Lifecycle Manager(OLM) 安装operator
Kubernetes从入门到精通系列之十八:使用 Operator Lifecycle Manager OLM 安装operator 一、先决条件二、安装operator三、示例:安装最新版本的 Operator四、示例:安装特定版本的 Operator 从运算符目录中安装运算符 通过 CatalogSource 将 …...
request、response请求转发和重定向
Request&Response request是请求对象,获取请求数据;response是响应对象,设置响应数据。 request获取请求数据 获取请求方式:request.getMethod(); 获取访问路径:request.getContextPath(); 获取UR…...
MySql学习路线
学习MySQL数据库的路线可以分为不同的阶段,从入门到高级,逐步掌握数据库管理和开发技能。以下是一个关于MySQL学习的路线: ### 初级阶段 1. **数据库基础知识**: - 学习数据库的基本概念,了解关系数据库管理系统&…...

Vue实现首页导航和左侧菜单,介绍mock.js并实现登录注册间的跳转,实现左侧栏折叠效果,优化Main.vue组件,使用mock.js生成随机响应数据
目录 1. mockjs 1.1 mockjs介绍 1.2 mockjs使用步骤 1.2.1 安装mockjs依赖 1.2.2 在项目中引入mockjs 1.2.3 创建目录和文件 1.2.4 为每个组件准备模拟数据 1.2.5 测试 1.2.6 前端调试 1.2.7 mockjs生成随机响应数据 1.2.8 根据不同响应,给出不同提示 2…...
汇总下之RobotFramework自动化框架的系列文章
总下之前分享的RobotFramework自动化框架的系列文章,有需要的同学可关注收藏 python自动化测试框架RobotFramework基础环境安装/使用(一) python自动化测试框架RobotFramework内置库BuiltIn介绍(二) python自动化测…...
0052【Edabit ★☆☆☆☆☆】Learn Lodash: _.drop, Drop the First Elements of an Array
0052【Edabit ★☆☆☆☆☆】Learn Lodash: _.drop, Drop the First Elements of an Array arrays Instructions According to the lodash documentation, _.drop creates a slice of an array with n elements dropped from the beginning. Your challenge is to write your…...

从无人机到实景三维海洋系统
无人机(比如大疆的测量无人机)测量的影像数据一般通过Pix4d处理以后生成OBJ或者FBX格式,在CesiumLab,转成3dtiles,就可以做成实景三维系统。Pix4d的教程在B站有很多,想了解的同学可直接在B站搜索学习&#…...
第二章前端开发ES6基础
目录 扩展运算符 概述 语法 应用 模板字符串 概述 应用 内置对象扩展 概述 数组扩展方法 字符串扩展方法 set数据结构 概述 基本使用 操作方法 遍历方法 认识symbol 概述 作用 基本使用 项目 扩展运算符 概述 扩展运算符(spread operator)是 ES6 中新…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...