当前位置: 首页 > news >正文

河南电商网站设计/营销网站建设哪家好

河南电商网站设计,营销网站建设哪家好,用wordpress搭建个人独立博客ppt,wordpress显示目录个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 文章目录 前言浅谈进程概念1. 进程和操作系统的联系2.描述进程的对象——PCB …

在这里插入图片描述
在这里插入图片描述

个人主页:🍝在肯德基吃麻辣烫
我的gitee:Linux仓库
个人专栏:Linux专栏
分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处

文章目录

  • 前言
  • 浅谈进程概念
    • 1. 进程和操作系统的联系
    • 2.描述进程的对象——PCB
  • 深谈进程概念
    • 3. 对进程的组织操作
  • 总结


前言

本篇文章继上一篇的冯诺依曼体系结构和操作系统这两个软硬件的概念之后,开始讲解Linux下三座大山之一的进程

因为进程概念虽然不是很多,但比较难以理解,因为它离我们日常生活比较远,比较抽象,本文章以最平易近人的语言和生活中我们都熟悉的例子对进程进行剖析,希望这篇文章能进一步帮助你理解进程的概念,吃透Linux的其中一座大山。

废话不多说,我们现在开始。


浅谈进程概念

  • 进程到底是什么呢?

这里给出一个比较简单的理解:

一个加载到内存的程序就叫做进程。

正在运行的程序,也叫做进程。

我们可以这样理解,进程,进:进入,程:程序,进入内存的程序,就是进程。

自从我们理解冯诺依曼之后,程序加载到内存这件事情我们就可以轻松理解。前面我们讲过,操作系统是一款进行管理的软件。 既然操作系统是软件,那就应该也会被加载到内存中运行。我们平时所说的启动电脑,就是先启动操作系统,也就是将操作系统加载到内存中。

以我的电脑为例,当打开任务管理器时,下面一览无余的任务等,这些就是进程,正在运行的程序。在这里插入图片描述

1. 进程和操作系统的联系

其实,程序是一堆数据和代码,最先是被存放到磁盘中。我们知道启动电脑时,操作系统也会被加载到内存中运行,在内存中有一块空间属于操作系统自己的数据和代码。
在这里插入图片描述

当我们想要运行整个程序时,由于CPU只会和内存打交道,不会直接和磁盘交互,这就注定了程序想要运行必须加载到内存中,这个同时也遵守了冯诺依曼体系结构。


  • 这时候我们仔细想想,只能由一个程序能加载到内存里面吗?

其实并不是,我们玩电脑的时候,会同时启动几个软件,我们会一边看b站一边登录qq和微信,一边敲代码,这些都可以同时进行。

所以,一个操作系统,是可以同时运行多个进程的!

这就像大学里面有大一的,有大二的,有在实习的,有天天在宿舍打游戏的一样,一个操作系统要想同时运行那么多个进程,就必须将进程管理起来!

  • 操作系统如何管理进程呢?

还记得上篇文章那句贯穿整个Linux的话吗?

先描述,再组织

描述的过程就是让操作系统先认识进程,再将进程用一个struct结构体描述起来,然后将众多进程全部都具体化,而对于进程的管理无非就是多一个进程,少一个进程等等这些操作,所以操作系统再将进程组织起来,就能达到管理

2.描述进程的对象——PCB

从上面我们可以知道,任何一个程序,加载到内存时,操作系统对进程进行描述时,会把进程具象化成一个struct结构体,而这个结构体就是PCB,全称是Process Ctrl Block:进程控制块

怎么理解进程PCB?


  • 这里有一个问题:人是怎么认识一个事物的?

假如这里有一个苹果,我们都会说,这个苹果是圆的,是红色的,大大的一个东西,还是一个甜甜的水果。

又譬如对你大学舍友的描述,长得怎么样,两个眼睛扛着两片眉毛,一个鼻子,一张嘴巴,爱好什么,喜欢做什么等等。

可以看出来,这些描述一个事物,就是通过事物本身的属性来描述的!

其实我们对一个事物本身并不了解,而是通过该事物的大量属性来了解这个事物,当属性足够多时,这一堆属性的集合,就是目标事物本身!

所以描述进程的对象——PCB,就是进程属性的集合!


到这里我们再对程序加载到内存这件事情进一步详谈:

程序加载到内存中时:

  • 1.把数据和代码都加载到内存中
  • 2.同时创建描述该进程的PCB对象并加载到内存中

这就像是,大学新生考上了某所学校时,要证明我真正在那所学校了,就需要在学校的教务系统录入我的名字信息等等。也许该名同学还在放暑假,可是当学校教务系统有该同学的信息时, 就表明这名同学真正的来这所大学就读了。

深谈进程概念

从前面我们可以知道,一个程序加载到内存,一是程序本身的数据和代码加载到内存,二是操作系统创建了一个PCB对象并加载到内存

所以,单纯的数据和代码不叫进程,单纯的PCB对象也不叫进程,而是数据和代码 + 描述该进程的PCB结构体 = 进程!
1)进程的数据和代码是程序员写的
2)描述该进程的PCB结构体是操作系统维护的

可以想想,在学校中我们对学生的管理是看学生的及格率,挂科率,学分绩,宿舍号等属性进行管理的。

所以,操作系统对进程的管理并不是对数据和代码的管理,而是对描述该进程的PCB结构体进行管理!

因为这个内核PCB结构体就是该进程属性的集合!

在这里插入图片描述


可是,操作系统对进程进行管理,不只是要知道该进程的属性值,还要获取进程的数据和代码。因此,在描述该进程的PCB结构体中,一定有指向该进程数据和代码指针信息

就像管理学生,学校老师如何通过学生的属性去获取指向学生数据的 “ 指针信息 ”?

其实就是手机号。手机号是该学生的属性值,但是这个属性可以找到学生这个人!

以上就是关于操作系统如何对进程进行描述的过程。


3. 对进程的组织操作

通过上面的信息可以知道,操作系统会对多个进程进行描述,管理这些进程的时候就管理对应描述进程的PCB对象就可以了。

在PCB结构体中大概有这些信息:
在这里插入图片描述
前面说过,操作系统对进程的管理方式是:
先描述,再组织。

那么该如何对那么多的进程组织起来呢?
其实我们可以再PCB结构体中再加一个指针信息:

struct PCB* next,该指针指向下一个PCB结构体对象,如下图:
在这里插入图片描述

从而将操作系统对进程的管理转化成对一个链表的增删查改!

这个过程就是对进程进行组织的过程!

总结:进程 = 内核PCB数据结构 + 自己的代码和数据。
操作系统对进程的管理是先描述,再组织的过程;操作系统对进程的数据管理是被弱化的,更重要的是对进程的PCB结构体进行管理,然后将这一个个的PCB结构体连接起来,就形成了对链表的增删查改。


总结

本篇文章重点在于理解进程的概念就可以了,进程的相关内容比较多且难以理解,从进程概念入手是最合适的,后面会持续更新如何创建进程,进程的状态等详细的内容,更好地理解进程,贯穿整个Linux。

相关文章:

【Linux】深入理解进程概念

个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 文章目录 前言浅谈进程概念1. 进程和操作系统的联系2.描述进程的对象——PCB …...

Java课题笔记~ AspectJ 的开发环境(掌握)

AspectJ 的开发环境(掌握) &#xff08;1&#xff09; maven 依赖 <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></depe…...

机器学习参数调优

手动调参 分析影响模型的参数&#xff0c;设计步长进行交叉验证 我们以随机森林为例&#xff1a; 本文将使用sklearn自带的乳腺癌数据集&#xff0c;建立随机森林&#xff0c;并基于泛化误差&#xff08;Genelization Error&#xff09;与模型复杂度的关系来对模型进行调参&…...

[Java基础]面向对象-关键字分析:this,static,final,super

系列文章目录 【Java基础】Java总览_小王师傅66的博客-CSDN博客 [Java基础]基本概念(上)(标识符,关键字,基本数据类型)_小王师傅66的博客-CSDN博客 [Java基础]基本概念(下)运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用_小王师傅66的博客-CSDN博客 [Java基础]…...

数据结构初阶--二叉树的顺序结构之堆

目录 一.堆的概念及结构 1.1.堆的概念 1.2.堆的存储结构 二.堆的功能实现 2.1.堆的定义 2.2.堆的初始化 2.3.堆的销毁 2.4.堆的打印 2.5.堆的插入 向上调整算法 堆的插入 2.6.堆的删除 向下调整算法 堆的删除 2.7.堆的取堆顶元素 2.8.堆的判空 2.9.堆的求堆的…...

NVM Command学习

ubuntu系统安装nvme-cli&#xff0c;可以在应用层发起命令。 sudo apt install nvme-cli$ sudo nvme --help nvme-1.9 usage: nvme <command> [<device>] [<args>]The <device> may be either an NVMe character device (ex: /dev/nvme0) or an nvme …...

TCP Socket 基础知识点(实例是以Java进行演示)

本篇根据TCP & Socket 相关知识点和学习所得进行整理所得。 文章目录 前言1. TCP相关知识点1.1 双工/单工1.2 TCP协议的主要特点1.3 TCP的可靠性原理1.4 报文段1.4.1 端口1.4.2 seq序号1.4.3 ack确认号1.4.4 数据偏移1.4.5 保留1.4.6 控制位1.4.7 窗口1.4.8 校验和1.4.9 紧…...

openCV图像读取和显示

文章目录 一、imread二、namedWindow三、imshow #include <opencv2/opencv.hpp> #include <iostream>using namespace std; using namespace cv;int main(int argc,char** argv) {cv::Mat img imread("./sun.png"); //3通道 24位if (img.empty()) {std:…...

requests 方法总结

当使用 requests 库进行接口自动化测试时&#xff0c;以下是一些详细的步骤和方法总结&#xff1a; 1. **安装 requests 库**&#xff1a;首先&#xff0c;确保你已经安装了 requests 库。可以使用 pip 命令进行安装&#xff1a;pip install requests。 2. **导入库**&#x…...

Go语言删除文本文件中的指定行

GO语言删除文本文件中的指定行 1. 思路2. 处理文件3. 处理后的文本文件 1. 思路 假设现在有一个文本文件&#xff0c;我们需要删除文件中乱码的行。我们可以使用go的os库来处理文件&#xff0c;遍历整个文件然后将除过乱码的行写入一个新文件&#xff0c;以此来实现我们的需求…...

Arthas GC日志-JVM(十八)

上篇文章说jvm的实际运行情况。 Jvm实际运行情况-JVM&#xff08;十七&#xff09; Arthas介绍 因为arthas完全是java代码写的&#xff0c;我们直接用命令启动&#xff1a; Java -jar arthas-boot.jar 启动成功后&#xff0c;选择我们项目的进程。 进入我们可用dashboard…...

ISC 2023︱诚邀您参与赛宁“安全验证评估”论坛

​​8月9日-10日&#xff0c;第十一届互联网安全大会&#xff08;简称ISC 2023&#xff09;将在北京国家会议中心举办。本次大会以“安全即服务&#xff0c;开启人工智能时代数字安全新范式”为主题&#xff0c;打造全球首场AI数字安全峰会&#xff0c;赋予安全即服务新时代内涵…...

分享一个计算器

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算器</title><style>* {box-sizing: border-box;}body…...

Android 13 Launcher——长按图标弹窗背景变暗

目录 一.背景 二.修改代码 一.背景 客户定制需要长按图标弹窗让其背景变暗,所以需要进行定制,如下是定制流程,本篇是接上篇https://gonglipeng.blog.csdn.net/article/details/132171100 的内容 二.修改代码 主要代码逻辑在ArrowPopup中的reorderAndShow方法和closeCom…...

Elasticsearch概述和DSL查询总结

目录 Elasticsearch概述 1. 什么是Elasticsearch 2. 作用 3. 特点 DSL&#xff08;Domain Specifit Language&#xff09;特定领域语言&#xff1a; 概念和作用 查询代码总结 最后附项目准备 1.创建搜索工程&#xff08;maven工程&#xff09; 2.配置文件 application…...

扩展卡尔曼滤波器代码

文章目录 前言问题状态向量和观测向量加性噪声的形式状态方程及求导观测方程及求导状态初始化过程噪声和观测噪声卡尔曼滤波过程code 前言 卡尔曼滤波器在1960年被卡尔曼发明之后&#xff0c;被广泛应用在动态系统预测。在自动驾驶、机器人、AR领域等应用广泛。卡尔曼滤波器使…...

9:00开始面试,9:08就出来了,这问题问的实在是····

外包工作3年&#xff0c;今年裸辞跳槽&#xff0c;很幸运的是找到了下家&#xff0c;不过 自从加入到这家公司&#xff0c;每天不是在加班就是在加班的路上&#xff0c;薪资倒是给的不少&#xff0c;所以我也就忍了。没想到6月一纸通知&#xff0c;所有人都不许加班&#xff0…...

揭秘:5个美国程序员与日本程序员的差异

大家好&#xff0c;这里是程序员晚枫。想了解更多精彩内容&#xff0c;快来关注程序员晚枫 今天以美国和日本程序员为例&#xff0c;给大家分享一下国外程序员的生活。 以下是五个美国程序员和日本程序员的的区别&#xff1a; 工作方式&#xff1a;美国程序员通常更注重自由和…...

Springboot实现简单JWT登录鉴权

登录为啥需要鉴权&#xff1f; 登录需要鉴权是为了保护系统的安全性和用户的隐私。在一个 Web 应用中&#xff0c;用户需要提供一定的身份信息&#xff08;例如用户名和密码&#xff09;进行登录&#xff0c;登录后系统会为用户生成一个身份令牌&#xff08;例如 JWT Token&am…...

C++设计模式创建型之工厂模式整理

一、工厂模式分类 工厂模式属于创建型模式&#xff0c;一般可以细分为简单工厂模式、工厂模式和抽象工厂模式。每种都有不同的特色和应用场景。 二、工厂模式详情 1、简单工厂模式 1&#xff09;概述 简单工厂模式相对来说&#xff0c;在四人组写的《设计模式------可复用面…...

前端安全XSS和CSRF讲解

文章目录 XSSXSS攻击原理常见的攻击方式预防措施 CSRFCSRF攻击原理常见攻击情景预防措施&#xff1a; CSRF和XSS的区别 XSS 全称Cross Site Scripting&#xff0c;名为跨站脚本攻击。为啥不是单词第一个字母组合CSS&#xff0c;大概率与样式名称css进行区分。 XSS攻击原理 不…...

本地化部署自建类ChatGPT服务远程访问

本地化部署自建类ChatGPT服务远程访问 文章目录 本地化部署自建类ChatGPT服务远程访问前言系统环境1. 安装Text generation web UI2.安装依赖3. 安装语言模型4. 启动5. 安装cpolar 内网穿透6. 创建公网地址7. 公网访问8. 固定公网地址 &#x1f340;小结&#x1f340; 前言 Te…...

一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)

概念与功能&#xff1a; webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手&#xff1a;隔行变色 -S实际是--save的简写&#xff0c;表示安装的第三方…...

安全防御(3)

1.总结当堂NAT与双机热备原理&#xff0c;形成思维导图 2.完成课堂nat与双机热备试验 引用IDS是指入侵检测系统&#xff0c;它可以在网络中检测和防御入侵行为。IDS的签名是指根据已知入侵行为的特征制定的规则&#xff0c;用于检测和警告可能存在的入侵行为。签名过滤器可以根…...

AR远程专家指导在汽车改装上的应用有哪些?

随着科技的不断发展&#xff0c;AR增强现实技术逐渐走进了我们的生活。加上商贸国际化&#xff0c;远程协同纵深到制造生产的更多环节&#xff0c;研发协同、工艺优化等场景复杂、跨层级、需要频繁沟通确认的流程正通过AR应用实现全面远程化的过渡&#xff0c;在汽车行业&#…...

css-3:什么是响应式设计?响应式的原理是什么?如何做?

1、响应式设计是什么&#xff1f; 响应式网站设计&#xff08;Responsive WEB desgin&#xff09;是一个网络页面设计布局&#xff0c;页面的设计与开发应当根据用户行为以及设备环境&#xff08;系统平台、屏幕尺寸、屏幕定向等&#xff09;进行相应的相应和调整。 描述响应式…...

Armstrong数,n位数等于其各位数的n次方之和。

//Armstrong数具有以下特征&#xff1a;一个n位数等于其各位数的n次方之和。 //例如&#xff1a;1531^35^33^3 16341^46^43^44^4 #include<stdio.h> #include<math.h> //实在不知道的暴力求解方法 int main() {//Armstrong数具有以下特征&#xff1a;一个…...

blender的下载安装和配置中文环境

引言 在3D建模和动画设计领域&#xff0c;Blender 作为一款强大且免费的开源软件&#xff0c;一直以优秀的性能和对众多技术的支持赢得了大批用户的喜爱。然而&#xff0c;对于刚接触这款软件的用户而言&#xff0c;其安装和配置过程可能会带来一定困扰&#xff0c;尤其是在设…...

MyCat配置rule.xml、server.xml讲解

1. rule.xml分片规则配置文件 rule.xml中配置的主要就是拆分表的规则&#xff0c;rule.xml中主要包含两类标签 tableRule 和Function。 tableRule标签里面主要配置我们的分片规则&#xff0c;Function里面涉及的是分片规则里面所涉及的java类&#xff0c;都是在function中配置…...

Linux项目部署

目录 一JAVAWeb环境的部署【安装JDK&#xff0c;MySQL数据库&#xff0c;Tomcat】 二.手工部署SpringBoot项目&#xff08;写的最好的&#xff09; 1.在IDEA中开发SpringBoot项目并打成jar包--点击右侧的Maven执行package命令 2.将jar包上传到Linux服务器 3.执行以下命令&a…...