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

计算机操作系统(七)详细讲解进程的组成与特性,状态与转换

计算机操作系统(七)进程的组成与特性,状态与转换

  • 前言
  • 一、进程的组成
    • 1. 什么是“进程”?
    • 2. 进程的三个核心组成部分
      • 2.1 PCB(进程控制块)—— 进程的“身份证+户口本”
      • 2.2 程序段—— 进程的“任务清单”
      • 2.3 数据段—— 进程的“材料箱”
    • 总结
  • 二、进程的特征
    • 1. 动态性
    • 2. 并发性
    • 3. 独立性
    • 4. 异步性
    • 5. 结构性
    • 总结:
  • 三、进程的状态
    • 1. 创建态
    • 2. 就绪态
    • 3. 运行态
    • 4. 阻塞态
    • 5. 终止态
    • 6.状态转换图:
    • 总结
  • 四、进程的转换
    • 1.创建态 → 就绪态
    • 2. 就绪态 → 运行态
    • 3. 运行态 → 就绪态
    • 4. 运行态 → 阻塞态
    • 5. 阻塞态 → 就绪态
    • 6. 运行态 → 终止态
    • 7. 为什么就绪态不能直接到阻塞态?
    • 状态转换图:
  • 五、进程的组织--链接方式和索引
    • 1.PCB的“组织方式”:
      • 1.1 链表链接:给PCB“分组排队
        • 1. 执行态PCB:(唯一)
        • 2. 就绪队列:
        • 3. 阻塞队列:
    • 2. 索引方式:给PCB“建花名册”,快速查找
        • 1. 索引表是什么?
        • 2. **为什么需要索引?**
    • 3. 两种方式如何配合?


前言

  • 前面的博客中,我们探讨了计算机操作系统的基本概念。
  • 本节将深入解析进程的组成、特性,以及状态与转换机制。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的操作系统博客专栏
https://blog.csdn.net/2402_83322742/category_12916780.html?spm=1001.2014.3001.5482


一、进程的组成

在这里插入图片描述

1. 什么是“进程”?

  • 先打个比方:你打开电脑上的“计算器”程序,这个程序开始运行的过程,就是一个 “进程”

  • 进程就像一个“正在干活的工人”,而它的组成部分,就是这个工人干活时需要的“工具包”“任务清单”和“材料”。
    在这里插入图片描述

2. 进程的三个核心组成部分

在这里插入图片描述

2.1 PCB(进程控制块)—— 进程的“身份证+户口本”

  • 是什么?
    PCB是操作系统给每个进程单独创建的一个“小档案”,里面记录了这个进程的所有关键信息,比如:

    • 进程的“名字”(PID)、当前状态(是在运行、暂停还是排队等着?)
    • 它的“优先级”(比如重要的进程优先干活)
    • 它占用了哪些“资源”(比如用了多少内存、有没有占用打印机)
    • 下一步该执行哪行代码(类似书签,记录进度)。
  • 作用:
    操作系统全靠这个“档案”来管理所有进程,比如决定先让哪个进程运行、怎么暂停/恢复进程

  • 类比: 就像老师手里的“学生档案”,记录了每个学生的学号、成绩、座位号,老师靠档案管理学生。

2.2 程序段—— 进程的“任务清单”

  • 是什么?
    程序段就是这个进程要执行的“代码”,也就是程序的逻辑步骤。
    比如计算器程序的程序段,里面写着“如何计算加法”“如何显示数字”等具体的指令。

  • 作用:
    告诉计算机“该做什么”,是进程的“灵魂”。不管进程运行多少次,程序段的内容都是固定的(比如计算器的加法逻辑不会自己变)。
    类比: 就像工人手里的“操作手册”,上面写着“第一步拧螺丝,第二步插电线”等具体步骤。

2.3 数据段—— 进程的“材料箱”

  • 是什么?
    数据段是进程运行时用到的“临时数据”,比如:

    • 计算器输入的数字(比如你输入的“1+2”)
    • 程序运行中的中间结果(比如计算到一半的数值)
    • 临时存储的用户设置(比如计算器的“主题颜色”)。
  • 作用:
    程序段执行时需要“数据”才能干活,数据段就是存放这些数据的地方。不同进程的数据段是隔离的(比如计算器和微信的数据不会混在一起)。
    类比: 就像工人干活时用的“材料箱”,里面装着螺丝、电线、零件等,用完就清空(进程结束后数据段就没了)。

总结

  1. 当你打开“计算器”程序时,操作系统会创建一个 进程
  2. 同时生成一个 PCB(记录这个进程的“身份信息”)。
  3. 把计算器的“程序代码”(程序段)加载到内存,告诉计算机“按这个逻辑干活”。
  4. 开辟一块内存空间作为 数据段,用来存放你输入的数字、计算结果等临时数据。
  5. 操作系统通过PCB管理这个进程,比如你最小化计算器时,PCB会记录它的“暂停状态”,等你恢复时继续运行。

二、进程的特征

在这里插入图片描述

1. 动态性

  • 是什么?
    进程不是“死的”,而是一个“动态变化的过程”。

    • 它会“出生”:比如你打开一个软件(程序运行,创建进程)。
    • 会“干活”:在内存里执行代码、处理数据。
    • 会“死亡”:关闭软件时,进程结束,资源被回收。
    • 状态会变:比如从“运行中”变成“暂停”(你最小化窗口时),再变回“运行”。
  • 和程序的区别:
    程序是硬盘里的“静态文件”(比如微信安装包),而进程是程序“运行起来的实例”(打开的微信窗口就是一个进程)。
    类比: 程序像“剧本”(静态不变),进程像“演员演剧本”(动态表演,有开始和结束)。

2. 并发性

  • 是什么?
    多个进程可以“同时存在”于内存中,一起运行(虽然CPU同一时间只能执行一个,但操作系统让它们“轮流快速切换”,看起来像同时进行)。
    比如你一边用微信聊天(微信进程),一边用浏览器看网页(浏览器进程),一边听音乐(音乐进程),它们同时在内存里“活着”,只是CPU在它们之间快速切换执行。

  • 作用:
    让电脑能“一心多用”,提高效率。
    类比: 就像老师同时管多个学生:一会儿给A讲题,一会儿给B批改作业,一会儿让C自己做题。虽然同一时间只处理一个,但快速切换,看起来像同时在做

3. 独立性

  • 是什么?
    每个进程都是“独立的个体”,有自己的“私人资源”,互不干扰。

    • 资源隔离:比如微信进程的内存数据、打开的文件,计算器进程绝对碰不到(操作系统保证它们互相隔离)。
    • 地位平等:每个进程都是操作系统分配资源的“基本单位”(比如分配内存、网络权限,都是以进程为单位)。
  • 好处:
    一个进程崩溃(比如微信卡死),不会影响其他进程(浏览器还能正常用)
    类比: 每个进程像“独立的房间”,房间里的东西(数据、资源)只有自己能用,别人进不来,也不会被别人的房间影响。

4. 异步性

  • 是什么?
    进程按自己的“节奏”运行,操作系统不确定它们的执行顺序,但最终结果正确。

    • 比如你同时下载文件(下载进程)和写文档(文档进程):
      • 下载可能时快时慢(取决于网络),文档编辑也随时可能暂停/继续。
      • 操作系统会根据规则(比如优先级)调度它们,但具体先执行谁、执行多久,进程自己不知道(“异步”就是“不同步”,没有严格的顺序)。
  • 为什么没问题?
    操作系统通过PCB记录每个进程的“进度”(比如执行到哪行代码),随时能暂停和恢复,保证最终结果正确。
    类比: 像排队买奶茶,每个人点单、制作的速度不同(有人点复杂的奶茶慢,有人点简单的快),店员按规则(比如先来后到)处理,虽然顺序不确定,但最后每个人都能拿到自己的奶茶。

5. 结构性

在这里插入图片描述

  • 是什么?
    每个进程都必须“标配”三个部分:

    1. PCB(进程控制块):相当于进程的“身份证”,记录它的所有信息(状态、资源、进度等),没有PCB的话,操作系统根本不知道这个进程存在。
    2. 程序段:进程要执行的代码(做事的逻辑)。
    3. 数据段:进程运行时用的临时数据(比如你输入的内容、中间结果)。
  • 重点:PCB是进程存在的“唯一标志”!
    只要操作系统里有一个进程,就一定有对应的PCB;反之,没有PCB的东西,就不是进程(比如普通的文件、数据)。
    类比: 每个进程像一个“完整的人”,必须有“身份证(PCB)”+“大脑(程序段,指挥做事)”+“身体(数据段,存储临时信息)”,缺一不可。

总结:

  • 动态性:进程是“活着的、会变的”,有出生、运行、死亡的过程。
  • 并发性:多个进程能“同时存在”,一起在电脑里干活(轮流执行)。
  • 独立性:每个进程有自己的“私人资源”,互不干扰、互不侵犯。
  • 异步性:进程按自己的节奏运行,顺序不确定,但结果正确。
  • 结构性:每个进程都必须有“PCB+程序段+数据段”三件套,PCB是它的“身份象征”。

三、进程的状态

在这里插入图片描述

1. 创建态

  • 发生了什么?
    当你打开一个程序(比如微信),操作系统开始“生”这个进程,分两步:
    初始化PCB:给进程办“临时身份证”(记录PID、初始状态等基本信息),就像老师给新学生登记学号、座位号。
    分配资源:给进程分“课桌”(内存空间)、“课本”(程序段代码)、“草稿纸”(数据段临时存储区),但还没让它“正式上课”(占用CPU)。

  • 状态特点
    进程刚“诞生”,还没准备好运行,就像学生刚进教室,书包还没放好,老师还没让他开始做题。

2. 就绪态

  • 发生了什么?
    进程已经“万事俱备”:PCB办好,资源(内存、文件等)都拿到了,只差CPU“点名”让它运行。
    就像学生坐在座位上,课本、笔都摆好了,举手等着老师说:“你来回答问题”(分配CPU时间片)。

  • 关键:为什么不直接运行?
    因为CPU同一时间只能“辅导”一个学生(执行一个进程),其他准备好的进程只能在“就绪队列”里排队,等CPU轮到自己。

3. 运行态

  • 发生了什么?
    CPU选中了这个进程,开始执行它的程序段代码,处理数据段里的数据。
    就像老师叫到某个学生的名字,让他上台做题,此时这个学生“独占”老师的注意力(单核CPU下,同一时间只有一个进程在运行)。

  • 两种情况会“下讲台”:
    ① 时间片用完:老师说“你先下去,下一个同学来”(CPU分配的时间到了,进程回到就绪态排队)。
    ② 主动“请假”:比如进程需要等用户点击按钮(进入阻塞态)。

4. 阻塞态

  • 为什么会阻塞?
    进程运行时遇到“等事件”的情况,比如:

    • 等用户输入(比如你在微信里还没打字,进程没法继续发消息)。
    • 等文件读取(比如打开一个大文件,还没读完数据)。
    • 等网络响应(比如网页还没加载完)。
      这时进程“卡住了”,无法继续执行,只能“暂停”,把CPU让给其他就绪态的进程。
  • 状态特点:
    进程就像学生做题时发现“没草稿纸了”,举手跟老师说:“我等你拿纸来,现在先不做了”,然后放下笔,坐在座位上干等(不占用CPU,但保留PCB和资源)。
    注意:阻塞态和就绪态的区别:就绪态是“能干活但没轮到”,阻塞态是“想干活但干不了,得等事件发生”。

5. 终止态

  • 为什么会终止?
    两种情况:
    正常结束:进程完成任务(比如你关闭计算器,程序正常退出)。
    异常终止:进程出错崩溃(比如微信突然卡死,操作系统强制结束它)。

  • 操作系统在终止态做什么?
    最重要的事:回收资源

    • 归还内存(把“课桌”让给其他进程)。
    • 关闭打开的文件(把“课本”放回书架)。
    • 删除PCB(注销“学生档案”,操作系统不再知道这个进程存在)。
      如果不回收,就像学生放学不收拾书包,占着课桌不放,时间长了教室会堆满垃圾(内存泄漏、资源浪费)。

6.状态转换图:

创建态 → 就绪态(准备好,等CPU)  
就绪态 → 运行态(CPU选中,开始干活)  
运行态 → 就绪态(时间片用完,回去排队)  
运行态 → 阻塞态(等事件,被迫暂停)  
阻塞态 → 就绪态(事件发生了,比如用户输入了,重新排队等CPU)  
运行态/阻塞态 → 终止态(干活结束或出错,放学回家)  

总结

  • 创建态:进程刚“出生”,正在办身份证、分资源,还没准备好上课。
  • 就绪态:进程万事俱备,在“就绪队列”里举手等CPU点名。
  • 运行态:进程正在CPU上执行,就像学生在老师面前做题。
  • 阻塞态:进程遇到“等事件”卡住了,暂时放下活,等事件好了再继续。
  • 终止态:进程下课放学,操作系统回收它的所有资源,从此消失。

四、进程的转换

在这里插入图片描述

1.创建态 → 就绪态

  • 条件:系统完成创建进程的所有准备(初始化PCB、分好资源)。
  • 类比:你走进奶茶店,店员登记完你的信息(创建态),给你号码牌(10号),你去等待区坐着(就绪态)。

2. 就绪态 → 运行态

  • 条件:CPU“调度”选中这个进程(店员喊:“10号顾客来点单!”)。
  • 关键:就绪态是“排队等CPU”,运行态是“正在用CPU”,必须通过“调度”才能转换(就像必须等店员喊号才能去点单)。

3. 运行态 → 就绪态

  • 两种情况
    时间片用完:CPU分配给进程的“时间配额”到了(比如店员说:“你先讲到这里,下一位!”),进程回到就绪队列重新排队。
    主动让步:比如高优先级进程来了,当前进程被迫暂停(比如突然来了VIP顾客,店员让你稍等,先服务VIP)。
  • 类比:你点单时,店员说:“你前面还有更急的顾客,先去后面重新排队吧!”你回到等待区(就绪态)。

4. 运行态 → 阻塞态

  • 条件:进程需要“等待某个事件”(比如等用户输入、等文件读取、等网络响应)。
  • 类比:你点单时发现“忘记带钱包”,只能对店员说:“我等回家拿钱包再来,现在先不买了”,然后站到旁边(阻塞态,不占用店员时间)。

5. 阻塞态 → 就绪态

  • 条件:等待的事件发生了(比如你拿到钱包、文件读完了、网络通了)。
  • 类比:你拿到钱包回来,店员给你新的号码牌(15号),你回到等待区重新排队(就绪态)。
  • 注意不能直接从阻塞态回到运行态!必须先到就绪态排队,等CPU再次调度(就像你拿完钱包回来,不能直接插队,必须重新排队等喊号)。

6. 运行态 → 终止态

  • 两种情况
    ① 正常结束:进程跑完所有代码(你点完单、付完款、拿到奶茶,离开店铺)。
    ② 异常终止:进程遇到错误无法修复(比如点单时系统崩溃,店员说:“今天没法帮你点了,下次再来”)。
  • 关键:一旦进入终止态,进程“彻底消失”,资源被回收(你的排队记录被删除,座位被其他顾客占用)。

7. 为什么就绪态不能直接到阻塞态?

  • 因为阻塞态的前提是“进程正在运行时遇到了等待事件”,就绪态的进程还没拿到CPU(没开始点单),根本没机会“卡住”。
  • 类比:你在等待区排队(就绪态),还没轮到你点单,怎么会中途因为“没带钱包”卡住呢?只有轮到你点单(运行态)时,才可能遇到问题进入阻塞态。

状态转换图:

创建态 → 就绪态(办手续完毕,开始排队)  
就绪态 → 运行态(被店员喊号,开始点单)  
运行态 → 就绪态(时间到/让步,回去重新排队)  
运行态 → 阻塞态(等事件,暂停点单,站到旁边)  
阻塞态 → 就绪态(事件完成,重新拿号排队)  
运行态 → 终止态(点单结束/出错,离开店铺)  

五、进程的组织–链接方式和索引

  • 每个进程都有一个PCB(进程控制块,相当于“学生档案”),当电脑运行很多进程时,操作系统需要把这些“档案”有条理地管起来,不然就会乱成一锅粥。
  • 主要有两种“管理方法”:链表链接(按状态分组排队)和索引表查找(快速定位某个档案)。

1.PCB的“组织方式”:

在这里插入图片描述

1.1 链表链接:给PCB“分组排队

就像学校把学生按“状态”分成“上课组”“排队组”“等待组”,每个组用“链表”串起来,方便按组管理:
在这里插入图片描述

1. 执行态PCB:(唯一)
  • 特点:同一时间只有一个进程在运行(单核CPU下),操作系统用一个“指针”直接指向这个PCB(比如老师手里的“当前答题学生”牌子)。
  • 类比:全班只有一个学生在黑板上做题,老师一眼就能看到他,不需要排队。
2. 就绪队列:
  • 结构:所有就绪态的PCB用“指针”连成一个“链表”(每个PCB里有一个“下一个就绪PCB”的地址)。
  • 作用:操作系统要选下一个运行的进程时,直接从这个队列里按规则(比如优先级)挑一个,就像老师从“排队名单”里喊下一个学生。
  • 类比:等待区的学生每人手里拿一张纸条,上面写着“下一个学生的学号”,连成一条“排队链”,老师按顺序喊人。
3. 阻塞队列:
  • 特点:阻塞原因不同(比如等磁盘、等网络),会分成多个阻塞队列。
    • 比如“等待磁盘读取”的PCB组成一个队列,“等待用户输入”的组成另一个队列。
  • 结构每个PCB里有一个“阻塞队列指针”,指向同类型阻塞队列的下一个PCB。
  • 类比:等待取快递的学生,按“快递类型”分组(比如等课本的一队,等零食的一队),每队用链表连起来,方便快递到了之后统一通知。

2. 索引方式:给PCB“建花名册”,快速查找

光有排队的链表还不够,操作系统需要快速找到某个特定的PCB(比如通过进程ID找对应的档案),这时候就需要“索引表”:

1. 索引表是什么?
  • 相当于一个“花名册”,按进程ID(PID,类似学号)排序,每个条目记录“PID”和“对应PCB的地址”。
  • 类比:老师手里的班级花名册,按学号排好,每个学号对应一个学生的座位号,老师喊“学号3号”,马上就能找到对应的学生。
2. 为什么需要索引?
  • 链表适合“按组管理”(比如就绪队列按顺序调度),但如果要找“某个特定PID的进程”,链表需要从头开始一个个找,很慢。
  • 索引表就像“字典”,可以通过PID直接“查字典”找到PCB的位置,速度飞快(比如查学号3号,直接翻到花名册第3页)。

3. 两种方式如何配合?

举个例子:你打开了微信(进程A,PID=100)、浏览器(进程B,PID=200)、音乐播放器(进程C,PID=300)

  1. 链表分组

    • 假设当前微信在运行(执行态),浏览器和音乐播放器在就绪队列里排队(链表:B→C)。
    • 如果浏览器需要等网络加载网页(进入阻塞态),会被移到“等待网络”的阻塞队列,链表变成:C(就绪),B(阻塞-网络队列)。
  2. 索引表查找

    • 操作系统维护一个索引表,条目是:
      • PID=100 → PCB_A的地址(微信)
      • PID=200 → PCB_B的地址(浏览器)
      • PID=300 → PCB_C的地址(音乐播放器)
    • 当你想终止浏览器进程时,通过PID=200直接在索引表找到PCB_B,不管它在哪个队列,都能快速定位并操作。

以上就是对本次关于操作系统博客内容的总结,后续我们将深入探讨操作系统更多知识。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的操作系统博客专栏
https://blog.csdn.net/2402_83322742/category_12916780.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

相关文章:

计算机操作系统(七)详细讲解进程的组成与特性,状态与转换

计算机操作系统(七)进程的组成与特性,状态与转换 前言一、进程的组成1. 什么是“进程”?2. 进程的三个核心组成部分2.1 PCB(进程控制块)—— 进程的“身份证户口本”2.2 程序段—— 进程的“任务清单”2.3 …...

【2025.5.12】视觉语言模型 (更好、更快、更强)

【2025.5.12】Vision Language Models (Better, Faster, Stronger): https://huggingface.co/blog/vlms-2025 【2024.4.11】Vision Language Models Explained【先了解视觉语言模型是什么】: https://huggingface.co/blog/vlms nanoVLM: https://github.…...

数据清洗ETL

ETL介绍 “ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL一词较常用在数据仓库&#xff0c…...

STM32 实时时钟(RTC)详解

一、RTC 简介 RTC(Real Time Clock)即实时时钟,本质上是一个 32 位的秒级计数器: 最大计数值为 4294967295 秒,约合 136 年: 复制编辑 4294967295 / 60 / 60 / 24 / 365 ≈ 136 年 RTC 初始化时&#x…...

Java中的异常机制

目录 Error(错误) Exception(异常) 受检异常(Checked Exception) 非受检异常(Unchecked Exception) 图示总结: 异常处理机制 try-catch-finally throws关键字 图…...

计算机网络:怎么理解调制解调器的数字调制技术?

数字调制技术详解 数字调制技术是将数字比特流转换为适合在物理信道(如电缆、光纤、无线信道)传输的模拟信号的核心技术。通过改变载波(通常是正弦波)的幅度、频率或相位(或组合),将二进制数据映射到模拟波形上。其目标是高效利用频谱资源、提升抗干扰能力,并适应不同…...

【MySQL】自适应哈希详解:作用、配置以及如何查看

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...

【sql】按照数据的日期/天 ,对入库数据做数量分类

我今天写SQL,发现我的时间的写法是“年-月-日 时:分:秒 ”, 我想要按照“年-月-日”分类,看看我每一天的入库数据量是多少,然后做出一个报表出来。 sql对时间的处理: SELECT DATE(update_time) AS date_only,COUNT(*…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式) 二、数…...

【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)

一、API测试练习平台 Postman Learning Center (https://learning.postman.com/) 特点:Postman官方学习中心,提供API测试完整教程(含视频、文档、沙盒环境) 练习场景:请求构造、环境变量、自动…...

iOS Safari调试教程

iOS Safari调试 本教程将指导您如何使用WebDebugX调试iOS设备上的Safari浏览器。通过本教程,您将学习如何连接iOS设备、调试Safari中的网页、分析性能问题以及解决常见的调试挑战。 准备工作 在开始调试iOS Safari之前,请确保您已经: 安装…...

Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新

面对城市停车资源错配导致的30%以上交通拥堵问题&#xff0c;本文以某新一线城市智慧交通项目为蓝本&#xff0c;深度解析Java大数据技术如何实现多源停车数据融合、动态路径规划与诱导策略优化。通过构建“感知-计算-决策”全链路系统&#xff0c;实现车位状态更新延迟<200…...

KUKA库卡焊接机器人智能气阀

在工业焊接的大舞台上&#xff0c;成本把控与环保考量愈发重要。KUKA 库卡焊接机器人智能气阀&#xff0c;作为前沿科技结晶&#xff0c;成为实现库卡焊接机器人节气的关键 “利器”&#xff0c;助力企业在降本增效与绿色发展之路上大步迈进。​ 智能气阀融合先进传感与智能调…...

react中安装依赖时的问题 【集合】

目录 依赖升级/更新 1、 npm install --save-dev 与 npm install 的区别 1. ‌安装位置&#xff08;依赖类型&#xff09;‌ 2. ‌package.json 中的区别‌ 3. ‌示例 4. ‌何时使用哪种方式‌ 2、npm install 和 yarn add 有什么不一样吗 ‌命令语法‌&#xff1a; …...

【网络实验】-BGP-EBGP的基本配置

实验拓扑 实验要求&#xff1a; 使用两种方式建立不同AS号的BGP邻居&#xff0c;不同AS号路由器之间建立的邻居称为EBGP邻居 实验目的&#xff1a; 熟悉使用物理口和环回口建立邻居的方式 IP地址规划&#xff1a; 路由器接口IP地址AR1G0/0/012.1.1.1/24AR1Loopback 01.1.1…...

【嵌入式开发-按键扫描】

嵌入式开发-按键扫描 ■ 1. 按键■ 按键队列发送后在读取队列处理■ 定时器30ms扫描一次&#xff0c;并通过MsgAdd(msg); 发送出去。 ■ 2. 触摸屏处理■■ ■ 1. 按键 ■ 按键队列发送后在读取队列处理 // key queue #define KEY_QUEUE_MAX 5typedef enum {KEY_TYPE_IR 0,K…...

NineData 社区版 V4.1.0 正式发布,新增 4 条迁移链路,本地化数据管理能力再升级

NineData 社区版 V4.1.0 正式更新发布。本次通过新增 4 条迁移链路扩展、国产数据库深度适配、敏感数据保护增强‌等升级&#xff0c;进一步巩固了其作为高效、安全、易用的数据管理工具的定位。无论是开发测试、数据迁移&#xff0c;还是多环境的数据管理&#xff0c;NineData…...

TypeScript装饰器:从入门到精通

TypeScript装饰器&#xff1a;从入门到精通 什么是装饰器&#xff1f; 装饰器&#xff08;Decorator&#xff09;是TypeScript中一个非常酷的特性&#xff0c;它允许我们在不修改原有代码的情况下&#xff0c;给类、方法、属性等添加额外的功能。想象一下装饰器就像给你的代码…...

R语言学习--Day02--实战经验反馈

最近在做需要用R语言做数据清洗的项目&#xff0c;在网上看再多的技巧与语法&#xff0c;都不如在项目中实战学习的快&#xff0c;下面是我通过实战得来的经验。 判断Rstudio是否卡死 很多时候&#xff0c;我们在运行R语言代码时&#xff0c;即使只是运行框选的几行代码&#…...

《AI驱动的智能推荐系统:原理、应用与未来》

一、引言 在当今信息爆炸的时代&#xff0c;用户面临着海量的信息选择&#xff0c;从购物平台上的商品推荐到流媒体服务中的影视推荐&#xff0c;智能推荐系统已经成为我们日常生活中不可或缺的一部分。AI驱动的智能推荐系统通过分析用户的行为和偏好&#xff0c;为用户提供个性…...

AR禁毒:科技赋能,筑牢防毒新防线

过去&#xff0c;传统禁毒宣传教育方式对普及禁毒知识、提高禁毒意识意义重大。但随着时代和社会环境变化&#xff0c;其困境逐渐显现。传统宣传方式单一&#xff0c;主要依靠讲座、发传单、办展览。讲座形式枯燥&#xff0c;对青少年吸引力不足&#xff1b;发传单易被丢弃&…...

Ubuntu摄像头打开失败

如果遇见上面Ubuntu连接摄像头但无法打开如以上 先安装cheese apt install cheese 打开终端控制台&#xff0c;输入以下命令 ls /dev/video* 出现以上有设备的情况&#xff0c;我们采用以下解决 &#xff1a; 1、点击虚拟机->点击设置 2、 进入设置界面点击USB控制器&a…...

Ascend的aclgraph(七)AclConcreteGraph:capture_begin

1 回顾 在上一章Ascend的aclgraph&#xff08;六&#xff09;AclConcreteGraph中提到了capture_begin和capture_end两个函数&#xff0c;这2个函数是pybind形式&#xff0c;调用到torch_npu中去执行。 大概流程图如下: def __enter__(self):# Free as much memory as we can…...

JT/T 808 各版本协议字段级别对比与解析适配建议

文章目录 一、概述二、字段级对比表&#xff08;以核心消息为例&#xff09;三、版本文档结构差异分析四、Java 协议解析适配建议4.1、协议版本识别策略&#xff1a;4.2、可扩展消息体结构设计&#xff1a;4.3、字段兼容处理建议&#xff1a;4.4、推荐使用解析库或框架&#xf…...

Kafka 消费者组进度监控方法解析

#作者&#xff1a;张桐瑞 文章目录 前言一、使用 Kafka 自带命令行工具 kafka-consumer-groups 脚本二、使用 Kafka Java Consumer API 编程三、使用 Kafka 自带的 JMX 监控指标 前言 在 Kafka 消息队列系统中&#xff0c;对于 Kafka 消费者而言&#xff0c;监控其消费进度&a…...

国产大模型 “五强争霸”,决战 AGI

中国 AI 大模型市场正经历一场史无前例的洗牌&#xff01;曾经 “百模混战” 的局面已落幕&#xff0c;字节、阿里、阶跃星辰、智谱和 DeepSeek 五大巨头强势崛起&#xff0c;形成 “基模五强” 新格局。这场竞争不仅是技术实力的较量&#xff0c;更是资源、人才与生态的全面博…...

lesson01-PyTorch初见(理论+代码实战)

一、初识PyTorch 二、同类框架 PyTorchVSTensorFlow 三、参数 对比 四、PyTorch生态 四、常用的网络层 五、代码分析 import torch from torch import autogradx torch.tensor(1.) a torch.tensor(1., requires_gradTrue) b torch.tensor(2., requires_gradTrue) c tor…...

几种运放典型应用电路

运算放大器简称:OP、OPA、OPAMP、运放。 一、电压跟随器 电压跟随器顾名思义运放的输入端电压与运放的输出电压相等 这个电路一般应用目的是增加电压驱动能力: 比如说有个3V电源,借一个负载,随着负载电流变大,3V就会变小说明3V电源带负载能力小,驱动能力弱,这个时候…...

Mybatis——动态sql

<if> 实现方式 动态标签 <if> 条件判断&#xff0c;进行sql语句拼接 成立则拼接 <where> 进行条件子句拼接&#xff0c;防止and重复 if案例 crtl alt L 格式化 <foreach>——用于批量操作&#xff08;删除&#xff09; <include>...

技术社区集锦

推荐地址 社区汇总地址 https://juejin.cn/post/7468935497799286834 社区 项目ValueValueGitHubgithub.com-----Giteegitee.com-----StackOverflowstackoverflow.com全球知名的技术问答网站博客园www.cnblogs.com开发者的知识分享社区稀土掘金juejin.cn技术内容分享与交流平…...

【Elasticsearch】DSL 篇

Elasticsearch 之 DSL 篇 介绍 Elasticsearch 提供了基于 JSON 的 DSL 语句来定义查询条件&#xff0c;其 JavaAPI 就是在组织 DSL 条件。 先学习 DSL 的查询语法&#xff0c;然后再基于 DSL 来对照学习 JavaAPI&#xff0c;就会事半功倍 json 格式&#xff0c;好理解&#…...

常见 RPC 协议类别对比

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;协议是分布式系统中实现跨进程通信的核心机制之一。它允许客户端像调用本地函数一样调用远端服务器上的函数。 根据通信方式、数据编码方式和平台兼容性不同&#xff0c;常见的 RPC 协议分为以下几类…...

React系列——nvm、node、npm、yarn(MAC)

nvm&#xff0c;node&#xff0c;npm之间的区别 1、nvm&#xff1a;nodejs版本管理工具。nvm 可以管理很多 node 版本和 npm 版本。 2、nodejs&#xff1a;在项目开发时的所需要的代码库 3、npm&#xff1a;nodejs包管理工具。nvm、nodejs、npm的关系 nvm 管理 nodejs 和 npm…...

LeetCode 热题 100 230. 二叉搜索树中第 K 小的元素

LeetCode 热题 100 | 230. 二叉搜索树中第 K 小的元素 大家好&#xff0c;今天我们来解决一道经典的二叉搜索树问题——二叉搜索树中第 K 小的元素。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求查找二叉搜索树中的第 K 小的元素。 问题描述 给定一个二叉搜索树的根…...

vscode - 笔记

1 IDE就用vscode&#xff0c;安装Remote-SSH插件通过SSH访问树莓派里的文件夹 写在开始&#xff1a;阿尔法Linux开发板学习开始 - 银色的音色 - 博客园 2 VSCode之Linux C/C开发和调试 VSCode之Linux C/C开发和调试 CMake代码编译 json配置_哔哩哔哩_bilibili 3 VS Code 凭…...

使用VSCode编辑Markdown+PlantUml

vscode :https://code.visualstudio.com/ 什么是markdown&#xff1a; Markdown 是一种轻量级标记语言&#xff0c;它允许人们使用易读易写的纯文本格式编写文档。 Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。 在vscode上安装MarkDown相关…...

关于 Golang GC 机制的一些细节:什么是根对象?GC 机制的触发时机?

文章目录 关于 Golang GC 机制的一些细节&#xff1a;什么是根对象&#xff1f;GC 机制的触发时机&#xff1f;简要回顾 Golang GC 三色标记法的工作流程什么是根对象&#xff1f;GC 的触发时机&#xff1f; 关于 Golang GC 机制的一些细节&#xff1a;什么是根对象&#xff1f…...

内存虚拟盘(RAMDisk)是什么?

内存虚拟盘&#xff08;RAMDisk&#xff09;是一种通过软件将计算机的部分物理内存&#xff08;RAM&#xff09;模拟为硬盘驱动器的技术&#xff0c;利用内存的高速读写特性显著提升数据访问效率。以下从原理、优势、实现方式及应用场景等方面详细解析&#xff1a; ​1. 技术原…...

深入浅出入侵检测系统(IDS)的工作原理与应用场景

网络安全界的“火眼金睛”&#xff1a;入侵检测系统IDS 一、IDS简介&#xff1a;网络安全界的“火眼金睛” 在计算机安全领域&#xff0c;有一个“火眼金睛”的角色&#xff0c;它能在网络世界中识破各种“妖魔鬼怪”的伪装&#xff0c;及时发出警报&#xff0c;保护我们的数…...

AISBench benchmark评测工具实操-精度评测场景-采用命令行指定模型和数据集的方式

一、环境信息 1.1.硬件设备 昇腾Atlas800 I A2:910A 01:00.0 Processing accelerators: Huawei Technologies Co., Ltd. Device d801 (rev 20) 1.2.软件信息 1.2.1模型: DeepSeek-R1-Distill-Qwen-1.5B 1.2.2.物理机系统: NAME="EulerOS" VERSION="2.0 …...

HTTP GET报文解读

考虑当浏览器发送一个HTTP GET报文时&#xff0c;通过Wireshark 俘获到下列ASCII字符串&#xff1a; GET /cs453/index.html HTTP/1.1 Host: gaia.cs.umass.edu User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) Acc…...

南审计院考研分享会 经验总结

汪学长 – 中科大 计科专硕 初试准备 数学先做真题&#xff0c;模拟题刷的越多分越高&#xff1b;408真题最重要&#xff0c;模拟题辅助&#xff1b;英语只做真题&#xff1b;政治9月份开始背 代码能力在低年级培养的重要性和路径 考研不选择机构原因 因为机构里面学习的框…...

Android多媒体——媒体解码流程分析(十四)

NuPlayer 的解码模块相对比较简单,统一使用了一个基类 NuPlayerDecoderBase 管理,该类中包含了一个 MediaCodec 的对象,实际解码工作全靠 MediaCodec。 一、解码器创建 解码器创建的入口在 NuPlayer 的 NuPlayer::instantiateDecoder() 函数调用时。NuPlayer 在执行 start(…...

学习threejs,使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Physijs 物理引擎1.1.1 ☘️…...

自由学习记录(60)

Lecture 16 Ray Tracing 4_哔哩哔哩_bilibili 老师说的“高频采样”问题是什么&#xff1f; 现在考虑一个特殊情况&#xff1a; ❗ 一个像素内&#xff0c;图像信号变化很剧烈&#xff08;高频&#xff09;&#xff1a; 比如&#xff1a; 细网格纹理 马赛克背景 很高频的…...

Gartner《分布式和微服务架构中数据架构》学习心得

一、简介 随着信息技术的不断发展,软件架构也在持续演变以适应不断变化的业务需求。从传统的单体架构向分布式和微服务架构转变,给数据的管理带来了新的挑战和机遇。《Working With Data in Distributed and Microservices Architectures》研究针对在分布式和微服务架构中处…...

谷歌web第三方登录

1.在谷歌控制台创建客户端信息 https://console.cloud.google.com/auth/clients 注&#xff1a;在重定向的url中一定要是https开头的。 创建完成之后主要获取三个信息 clientID、secret、redirctUrl 2.配置pom <dependency><groupId>com.google.auth</group…...

ConfigMap 和 Secret 是否支持热更新

在 Kubernetes 中&#xff0c;ConfigMap 和 Secret 是否支持热更新取决于它们的使用方式和应用程序的行为。以下是详细分析&#xff1a; 1. ConfigMap 的热更新 场景 1&#xff1a;通过 Volume 挂载到 Pod 支持热更新&#xff1a; 如果 Pod 通过 volume 挂载 ConfigMap&#…...

时序数据库IoTDB分布式系统监控基础概述

在分布式系统环境中&#xff0c;系统性能调优与瓶颈定位一直是工程实践与架构设计中的关键挑战。面对诸如系统性能无法提升、查询延迟增加等问题&#xff0c;需要一套有效的监控体系来洞察系统的内部状态与运行情况。 可观测性概念 随着分布式架构的普及&#xff0c;可观测性…...

【乱码】前端js流式输出因为Uint8Array字节不完整导致乱码问题

【乱码】流式输出因为Uint8Array字节不完整导致乱码问题 function push() {reader.read().then(({ done, value }) > {if (done) { 问题代码 var a new Uint8Array([115,44,32,115,101,114,105,102,34,62,230]) var b new Uint8Array([156,136,60,47,115,112,97,110,62…...