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

【软件设计师-从小白到大牛】上午题基础篇:第二章 操作系统

文章目录

  • 前言
  • 章节提要
  • 一、进程管理
    • 1、进程的状态
    • 2、前趋图
    • 3、进程的同步与互斥
    • 4、PV操作
    • 6、PV操作与前趋图
    • 7、死锁问题
    • 进程资源图(补充)
    • 真题链接
  • 二、存储管理
    • 1、分区存储组织
    • 2、页式存储组织
    • 3、段式存储组织
    • 4、段页式存储组织
    • 5、快表
    • 6、页面置换算法
    • 单缓冲区、双缓冲区(补充)
    • 磁盘调度算法(补充)
    • 真题链接
  • 三、文件管理
    • 1、索引文件结构
    • 2、文件和树型目录结构
    • 真题链接
    • 3、空闲存储空间的管理
    • 真题链接
  • 四、设备管理
    • 1、数据传输控制方式
    • 2、虚设备与SPOOLING技术
    • 3、微内核操作系统

前言


本系列文章为观看b站视频以及b站up主@zst_2001系列视频所做的笔记,感谢相关博主的分享。如有侵权,立即删除。
视频链接:视频链接(注:文章中有关图片等内容未标明出处均出自该视频)
b站up主页:b站up

章节提要

占比 5-7分
​​​​在这里插入图片描述
在这里插入图片描述

一、进程管理

  • (注:下图来自前言中up主视频)在这里插入图片描述在这里插入图片描述
    (说明:计算机系统层次结构)

1、进程的状态

1)运行:当一个进程在CPU上运行时,则称该进程处于运行状态。

2)就绪:当一个进程除CPU外其他一切资源全部获得,则称该进程处于就绪状态

3)等待(阻塞或睡眠):当一个进程除CPU外还缺少其他资源,则称该进程处于等待状态。

时间片轮转来分配CPU资源,即一个进程从就绪到运行只能运行一个时间片,等时间片到无论任务是否完成均退出运行态转为就绪态,等待下一次调度(时间片轮转)
在这里插入图片描述

2、前趋图

前趋图是一个 有向无循环图
(注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))
在这里插入图片描述
在这里插入图片描述

3、进程的同步与互斥

1) 同步与互斥不互为“反义词”。同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。

2)进程的同步:在系统中一些需要相互合作、协同工作的进程。
在这里插入图片描述
2)进程的互斥:系统中多个进程因争用临界资源而互斥执行。
在这里插入图片描述
在这里插入图片描述

4、PV操作

1)临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等。

2)临界区:每个进程中访问临界资源的那段代码称为临界区。

3)信号量S:是一种特殊的变量。S>=0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。

4)P操作定义S=S-1,若S>=0,则执行P操作的进程继续执行;若 S<0,则置该进程为 阻塞 状态(因为无可用资源),并将其插入阻塞队列。

5)V操作定义S=S+1,若S>0,则执行V操作的进程继续执行;若 S<=0,则从阻塞状态 唤醒 一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
在这里插入图片描述
6)练习题
在这里插入图片描述

正确答案:AC
解析:付款后需要有V操作来唤醒收银员的收费操作,即a1为V操作,来唤醒b1相同信号量的P操作(没有人付款收银员的收款操作处于“阻塞”状态,有人付款才唤醒收银员的收费操作);而购书者付款后,需要等待收银员的收费操作完成,即付款后还需要P操作进行阻塞(a2),等待收费完成后的V操作进行唤醒(b2)。由此可知a1和b1是相同信号量的V操作和P操作,a2和b2是相同信号量的P操作和V操作。
PV操作解题的核心是找出约束关系(假设先执行某一个进程,然后看会发生什么问题,加入PV操作后可以解决此问题则为正确答案)

6、PV操作与前趋图

在这里插入图片描述
1)例题
在这里插入图片描述

正确答案:CAA
解析:(v处理,P等待),将用到的信号量标到线上(从上到下,从左到右
在这里插入图片描述
每条线箭头的起点位置是V操作,箭头的终点位置是P操作.
在这里插入图片描述

  • (注:下图来自希赛网解析)
    在这里插入图片描述
    (说明:前驱图解题方法)
  • 前驱图解题具体方法说明:有几个箭头需要几个信号量每个箭头信号量按进程编号组成的十进制数从小到大或者直接按上面的方法进行编号),每个进程完成后 (即指出的箭头需要执行V操作每个进程开始前(即指入的箭头需要执行P操作
    (注:下图来自前言中up主视频)
    在这里插入图片描述
    (说明:共4个箭头,需4个信号量;四个箭头分别是P1->P2、P2->P3、P3->P4、P1->P3。按箭头两端的进程编号组成的十进制数从小到大排序:P1->P2、P1->P3、P2->P3、P3->P4(因为12<13<23<34)。所以依次对四个箭头赋予四个信号量:S1、S2、S3、S4。针对每个箭头对箭头指出端为V操作,箭头指入端为P操作即可
  • PV操作是操作系统提供的具有特定功能的原语。利用PV操作可以 实现资源的互斥使用
    P操作用来检查资源是否可用;V操作用来释放资源
  • (注:下图来自希赛网)
    在这里插入图片描述
    在这里插入图片描述(说明:进程管理PV操作相关)
  • 信号量的取值范围:(资源数-进程数)~ 资源数(常考)
  • (注:下图来自前言中up主视频)(了解即可,重点掌握前趋图
    在这里插入图片描述
    (说明:互斥信号量在一个图中成对出现,而同步信号量在两个图中交叉出现

7、死锁问题

1)概念:
在这里插入图片描述

  • (注:下图来自前言中up主视频)在这里插入图片描述
    (说明:发生死锁条件)

2)例题:
在这里插入图片描述

正确答案:13
解析:系统不可能发生死锁的最小资源数n:n>=(w-1)*m+1
(m个进程,每个进程需要资源w个)
利用上述可求得n>=(5-1)*3+1=13。

3)银行家算法
在这里插入图片描述
-内容:
在这里插入图片描述
-例题:
在这里插入图片描述

正确答案:B
解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进程资源图(补充)

  • (注:下图来自前言中up主视频)
    在这里插入图片描述
    在这里插入图片描述
    (说明:处理进程资源图相关问题原则:先分配(资源),再申请(资源);或者先申请(资源)再分配(资源)从而判断是否能够满足要求,如果可以则为非阻塞结点,不可满足则为阻塞结点。方法:从非阻塞结点开始化简,当非阻塞结点满足条件后释放其申请的资源,对剩余进程继续进行分配/申请。当所有进程均可完成时,称该图是 可化简的
    分配:指向P的箭头;申请:P指出的箭头
    非阻塞结点:可完成;可化简(存在一种次序,可以使进程完成)
  • 当一个进程资源图中所有结点均为阻塞结点时,处于死锁状态
  • 线程可与同属一个进程的其它线程共享进程所拥有的全部资源(注:线程与线程之间是不可见的)。

真题链接

  • 在支持多线程的操作系统中,假设进程P创建了若干个线程,那么 该进程中某线程的栈指针 是不能被这些线程共享的。

二、存储管理

1、分区存储组织

在这里插入图片描述
(25k空间空出来原因:可能之前分配的作业已经执行完)

2、页式存储组织

在这里插入图片描述

  • 页面淘汰原则:淘汰在内存中的页号(即状态位为1),优先淘汰访问位为0的页号;若访问位都为1,则优先淘汰修改位为0的页号。(注:淘汰的页号需要在内存中(即淘汰内存中的页号)
  • 分页存储管理:页面大小为4k时,地址结构如图:
    (注:下图来自前言中up主视频)
    在这里插入图片描述
    (说明:做题方法:如果逻辑地址为四位十六进制数表示,则 该十六进制数的第一位表示页号,后三位表示页内地址。若要求该逻辑地址转化为的物理地址( 物理地址=物理块号(页帧号)+页内地址该+不是算术加法,是直接将物理块号(页帧号)和页内地址拼接起来就可以),即 求页号对应的物理块号(页帧号)[直接查表],然后物理块号后面接上页内地址即为物理地址(转换后的物理地址仍然是十六进制))
  • 页面大小为多少kb就看其是2的多少次方,这个次方数就是页内地址的位数,逻辑地址/物理地址中,从后往前,去掉页内地址位数个数字,剩下的为页号。(逻辑地址/物理地址转为二进制后,然后再去掉页内地址位数个数字)

1)例题
在这里插入图片描述

正确答案:D、B
解析逻辑地址=页号+页内地址。页面大小4K=212,说明一个页的页内地址是12位(二进制),高于12位的部分为页号(从右往左数),对应的16进制,页内地址就是3位(从右往左数高于3位的为页号),所以页内地址为A29H,页号为5,物理块号(页帧号)为6(查表),物理地址=页帧号+页内地址,所以物理地址为6A29H。页面淘汰原则:1)淘汰访问位为0;2)多个访问位为0,则淘汰修改位为0。所以淘汰1号页。

3、段式存储组织

在这里插入图片描述

4、段页式存储组织

在这里插入图片描述

  • (注:下图来自前言中up主视频)
    在这里插入图片描述
    (说明:分别数有多少位数字(数的位数=大数-小数+1)来表示段号、段内页号或页内地址即可,所求结果即为 2数的位数分别可代表最多的段数、每个段最大允许的页数、页的大小

5、快表

在这里插入图片描述
快表放在Cache中,慢表放在内存中

6、页面置换算法

在这里插入图片描述
抖动:刚被换出的页面很快又被访问,需重新调入,导致系统频繁地更换页面,以至于一个进程在运行过程中把大部分时间花费在完成页面置换的工作上
1)例题
在这里插入图片描述
2)例题
在这里插入图片描述

正确答案:B、C
解析:没有使用快表说明每读一次程序的块,需要先在内存上来查表,然后读取相应的内存块,所以每一个块需要进行两次内存的访问,总共6个块,所以访问12次内存。默认指令一次性调入(无论占几个块),指令跨页产生一次缺页中断,操作数跨页产生两次缺页中断。 所以产生5次缺页中断。

单缓冲区、双缓冲区(补充)

了解即可

  • (注:下图来自前言中up主视频)在这里插入图片描述
    在这里插入图片描述

磁盘调度算法(补充)

  • 先来先服务(FCFS):根据进程请求访问磁盘的先后次序进行调度。
  • 最短寻道时间优先(SSTF):要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短。
  • 扫描算法(SCAN)或电梯调度算法
    (注:下图来自前言中up主视频)
    在这里插入图片描述
  • 单向扫描调度算法(CSCAN)或循环扫描算法
    (注:下图来自前言中up主视频)
    在这里插入图片描述

真题链接

  • 在移臂(磁盘)调度算法中,先来先服务和最短寻找(道)时间优先 算法可能会随时改变移动臂(磁头)的运动方向。(重复考,重点记忆)
  • 旋转调度算法
    • 读取记录时间=磁盘旋转速度/记录数
    • 如果是顺序处理,而且没有对信息存储进行优化,则磁头(磁头初始在0)在读取完一个记录后,然后进行处理,由于磁头在处理过程中不会停止,所以,当磁头处理完之后,到达了按顺序读取的下一个记录的下一个记录(应该处理2,但磁头此时已经到达3),即磁头需要旋转一圈,然后来读取下一个记录。所以处理时间为 读取第一个记录的时间+处理第一个记录的时间+(总记录数-1)*(磁头旋转到应该读取的记录的开始位置的时间+读取单条记录的时间+处理单条记录的时间(单缓冲区)
    • 如果对信息存储进行优化,即将记录进行顺序处理的间隔分步,即将每一个记录的下一个读取的记录安排在磁头读取完并处理完记录后,这样磁头处理完记录后就可以直接读取下一条记录,不用再旋转一圈,则时间为 总记录数 *(读取单条记录的时间+处理单条记录的时间)(单缓冲区)。
    • 存取时间=寻道时间+旋转延迟时间+传输时间看清题目是读取多少块,每块之间的寻道时间+块之间的旋转延迟时间和传输时间)。
  • 例题:
    (注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))
    在这里插入图片描述
    在这里插入图片描述

三、文件管理

1、索引文件结构

在这里插入图片描述

  • 多级索引结构
    (注:下图来自前言中up主视频)
    image
  • 磁盘块=数据块=索引块
    1)例题
    在这里插入图片描述

正确答案:C、D
解析:逻辑块号往往从0开始算,逻辑块号为5的存在58号物理块中,1个物理盘块1k大,1个地址4个字节,所以1个索引块可以存1k/4=256个地址,所以逻辑块号为261的存在187号物理块中,101号物理块存放的是二级地址索引表。

2、文件和树型目录结构

在这里插入图片描述

  • 目录结构“××路径”不写(不包括)文件名;“××名”写(包括)文件名
    (注:下图来自前言中up主视频)
    image

真题链接

  • 若系统正在将 目录 文件修改的结果写回磁盘时系统发生崩溃,则对系统的影响相对较大。

3、空闲存储空间的管理

在这里插入图片描述

  • 位示图:每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用
  • 一字节(Byte)等于8bit,字长视具体机器而定
  • 块号从0开始,字号题目没有给出则默认从1开始
  • 一个字对应32个物理块
  • (注:下图来自前言中up主视频)
    imageimage

1)例题
在这里插入图片描述

正确答案:D、B
解析:4195号物理块是第4196个物理块(因为从0开始编号),所以用(4195+1)/32=131.125,所以前面已经填满了131个,当前物理块所占的位在第132个字当中。因为需要占用所以取值必须为“1”,而由图可知4195号物理块在第32个字的第3位置。
在这里插入图片描述
第多少个字从1开始算
多少位置从0开始算

真题链接

  • 在Windows XP操作系统中,用户利用“磁盘管理”程序可以对磁盘进行初始化、创建卷,可以选择使用FAT、FAT32或NTFS文件系统格式化卷。通常将"C:\Windows\myprogram.exe"文件设置成只读和隐藏属性,以便控制用户对该文件的访问,这一级安全管理称之为 文件级 安全管理。
  • 如果系统采用信箱通信方式,当进程调用Send原语被设置成“等信箱”状态时,其原因是 指定的信箱中存满了信件
  • 设计操作系统时不需要考虑的问题是语言编译器的设计实现
  • 嵌入式系统初始化过程主要有3个环节,按照自底向上、从硬件到软件的次序依次为 片级初始化->板级初始化->系统级初始化。系统级初始化主要任务是 以软件初始化为主,主要进行操作系统的初始化
  • 当用户通过键盘或鼠标进入某应用系统时,通常最先获得键盘或鼠标输入信息的是 中断处理 程序。
  • 实时操作系统主要用于有实时要求的过程控制等领域。实时操作系统对于来自外部的事件必须在
    被控对象规定的时间内做出及时响应并对其进行处理
  • 从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置。该要求体现了嵌入式操作系统的 可定制性
  • I/O软件隐藏了I/O操作实现的细节,方便用户使用I/O设备
  • 在磁盘调度管理中通常 先进行移臂调度,再进行旋转调度
  • 若磁盘的转速提高一倍,则 旋转等待时间减半
  • 云计算有多种部署模型(Deployment Models)。若云的基础设施是为某个客户单独使用而构建的,那么该部署模型属于 私有云
  • (注:下图来自前言中up主视频)image

四、设备管理

1、数据传输控制方式

在这里插入图片描述

  • (注:下图来自前言中up主视频)image
    (说明:I/O系统的层次结构与每层的主要功能)

2、虚设备与SPOOLING技术

在这里插入图片描述

3、微内核操作系统

在这里插入图片描述

相关文章:

【软件设计师-从小白到大牛】上午题基础篇:第二章 操作系统

文章目录 前言章节提要一、进程管理1、进程的状态2、前趋图3、进程的同步与互斥4、PV操作6、PV操作与前趋图7、死锁问题进程资源图&#xff08;补充&#xff09;真题链接 二、存储管理1、分区存储组织2、页式存储组织3、段式存储组织4、段页式存储组织5、快表6、页面置换算法单…...

【20230921】关于sing-box命令行程序开机自启动运行(Windows、Linux)

1 背景 sing-box是一个命令行程序&#xff0c;官网给出的教程是复制链接到Git Bash&#xff08;windows&#xff09;或终端运行&#xff08;Linux&#xff09;。每次开机都进行复制运行是一件繁琐的事情。 复制的内容其实就是下次并运行shell脚本&#xff0c;其实系统只需要运…...

LeetCode 75-02:字符串的最大公因子

前置知识&#xff1a;使用欧几里得算法求出最大公约数 func gcdOfStrings(str1 string, str2 string) string {if str1str2 ! str2str1 {return ""}return str1[:gcd(len(str1), len(str2))] }func gcd(a, b int)int{if b 0{return a}return gcd(b, a%b) }...

k8s1.19使用ceph14

一、静态 pv (rbd)方式 1、所有k8s节点安装依赖组件 注意:安装ceph-common软件包推荐使用软件包源与Ceph集群源相同,软件版本一致。 cat > /etc/yum.repos.d/ceph.repo << EOF [ceph] name=ceph baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_…...

Leetcode 50. Pow(x, n)

文章目录 题目代码&#xff08;9.19 首刷看解析&#xff09; 题目 Leetcode 50. Pow(x, n) 代码&#xff08;9.19 首刷看解析&#xff09; 快速幂 class Solution { public:double myPow(double x, int n) {if(n 0)return 1;if(n 1)return x;if(n INT_MIN) { // 避免-n整…...

hive分区表的元数据信息numRows显示为0

创建分区表 CREATE TABLE `dept_partition`(`deptno` int, `dname` string, `loc` string) PARTITIONED BY (...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;功…...

【云原生】聊聊为什么需要docker以及其基础架构

为什么需要docker 在没有docker之前&#xff0c;我们开发、测试、生产其实是根据不同的服务器进行配置的&#xff0c;很可能因为软件配置不同而导致的生产事故&#xff0c;那么如果能较好的解决软件和配置等封装成一个可运行的软件&#xff0c;无需关注配置&#xff0c;那么是…...

“高级前端开发技术探索路由的使用及Node安装使用“

目录 引言1. Vue路由的使用2. VueNode.js的安装使用总结 引言 在当今互联网时代&#xff0c;前端开发技术日新月异&#xff0c;不断涌现出各种新的框架和工具。作为一名前端开发者&#xff0c;我们需要不断学习和探索新的技术&#xff0c;以提升自己的开发能力。本文将深入探讨…...

LeetCode 494.目标和 (动态规划 + 性能优化)二维数组 压缩成 一维数组

494. 目标和 - 力扣&#xff08;LeetCode&#xff09; 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2…...

[36c3 2019]includer

[36c3 2019]includer 题目描述&#xff1a;Just sitting here and waiting for PHP 8.0 (lolphp). 首先来了解一下临时文件包含之PHP - compress.zlib:// 在 php-src 里可以找到和 compress.zlib:// 有关的代码 | code 注意到 STREAM_WILL_CAST&#xff0c;涉及到 cast 经常…...

Python150题day10

④continue练习 从列表 Ist [1,3,5,2,7,9,10] 中输出所有的奇数&#xff0c;代码如下 lst [1, 3, 5, 2, 7, 9, 10] for item in lst: if item % 2 0: continue print(item) 在上述代码中&#xff0c;当遇到偶数时&#xff0c;continue 语句会跳过当前迭代&…...

Autosar工具-Davinci Developer

文章目录 前言一、Davinci Developer简介二、导航栏File(主要是用于保存、打开工程等操作)HomeProject(主要用于导入、导出arxml文件)Graphic(主要在SWC设计时使用,包含对图形界面下的设计工具)Window(主要就是对我们的Dev界面外形修改用的,使得界面更加方便我们使用(比如隐…...

js中的数据结构:栈,队列,链表,字典哈希表,树

栈&#xff1a;先进后出 队列&#xff1a;先进先出 链表&#xff1a; 单链表&#xff1a; 双链表&#xff1a; 环形链表&#xff1a;最后一个数据的next指针不是指向null&#xff0c;指向的是任意之间的一个数据&#xff0c;形成一个环 数组和链表的区别&#xff1a; 字典和哈…...

Verdi实现信号的平移

在Verilog/System verilog中&#xff0c;# xxx可以实现延迟指定时间的功能&#xff0c;而在使用verdi查看信号波形并进行分析时&#xff0c;同样也可以实现类似的功能。 (注&#xff1a;这种信号平移是有其应用场景的&#xff0c;例如&#xff0c;在某些仿真模型中&#xff0c;…...

Leetcode算法入门与数组丨6. 数组双指针、滑动窗口

文章目录 1 双指针基础知识1.1 双指针简介1.2 左右指针&#xff08;对撞指针&#xff09;1.3 快慢指针1.4 分离双指针 2 滑动窗口基础知识2.1 滑动窗口算法介绍2.2 滑动窗口适用范围2.3 固定长度滑动窗口2.4 不固定长度滑动窗口 1 双指针基础知识 1.1 双指针简介 双指针&…...

推荐一本书《横向领导力》

大家好&#xff0c;这里是大话硬件。 今天想给大家推荐一本我近期正在阅读的书籍《横向领导力》。 这本书很早就买了&#xff0c;但是在去年就看了前面3章的内容&#xff0c;而且也没做笔记&#xff0c;仅仅是在书本上写写画画&#xff0c;也没有什么体会&#xff0c;感觉看不懂…...

React实战过程的知识了解

做项目用到react和antd&#xff0c;没办法循序渐进的学习&#xff0c;只能把一些点记录在这里&#xff0c;希望大家指正。 1.杂七杂八 正文 //actionRef&#xff0c;操作表单的预设方法&#xff0c;包括&#xff1a;刷新、重置所有项并刷新、重置到默认项、加载更多、清空选…...

F对象和Q对象

F对象和Q对象 F对象 一个F对象代表数据库中某条记录的字段的信息 作用: 通常是对数据库中的字段值在不获取的情况下进行操作 用于类属性(字段)之间的比较 语法 from django.db.models import F F(列名)解决一种极端事件的产生&#xff0c;比如用户对一条微博的点赞&#xf…...

Visio——绘制倾斜线段

一、形状 -> 图表和数学图形 -> 多行 二、放置多行线&#xff0c;可以发现存在两个折点 三、选择多行线&#xff0c;右键选择删除点&#xff0c;即可得到倾斜线段...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...