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

linux基础5:linux进程1(冯诺依曼体系结构+os管理+进程状态1)

冯诺依曼体系结构+os管理

  • 一.冯诺依曼体系结构:
    • 1.简单介绍(准备一)
    • 2.场景:
      • 1.程序的运行:
      • 2.登录qq发送消息:
    • 3.为什么需要内存:
      • 1.简单的引入:
      • 2.计算机存储体系:
      • 3.内存的意义:
  • 二.操作系统:
    • 1.概念引入:
    • 2.故事引入:(校园环境做背景)
      • 1.管理者和被管理者是不需要见面
      • 2.管理者如何获取被管理者信息?
      • 3.数据量较大的时候怎么办?
      • 4.建立学生的数据结构:保存在容器中
      • 5.总结:管理的过程就是一个 先描述再组织的一个过程!
    • 3.系统调用和库函数的概念:
      • 1.基本概念:
      • 2.从上到下需要注意的一些问题:
  • 三.进程管理:
    • 1.承上启下:
    • 2.基本概念:
      • 2-1事实:
    • 3.描述进程:PCB :task_struct(linux系统下)
    • 4.场景一:加载多个程序到内存:
    • 5.task_struct 内容分类:
      • 5-1:程序计数器
    • 6.组织和查看进程:
      • 6-0:在C/C++下获取当前程序的子父进程号的函数:
      • 6-1:查看进程简单方式:
      • 6-2:创建文件:
      • 6-3:chdir() 修改当前工作目录:
    • 7.系统调用创建进程——fork
      • 7-1:创建子进程:
      • 7-2:三个问题:
        • 1:给父进程返回子进程的pid 给子进程返回0?
        • 2:一个函数只能返回一个值?这个tmp有两个值?返回了两次吗?
        • 3:if 和else 的判断都满足条件说明 tmp==0 并且大于0?
        • 4:一个进程奔溃了影不影响另一个进程?
    • 8.进程状态:
      • 8-1:进程排队:
        • 问题一:需要找到结构体的首地址!
        • 问题二:队列:
      • 8-2:状态:
      • 8-3:运行:
      • 8-4:阻塞:
      • 8-5:挂起:

一.冯诺依曼体系结构:

1.简单介绍(准备一)

在这里插入图片描述

常见的输入设备:磁盘 ,键盘,鼠标,摄像头,麦克风,声卡,网卡,数位板。
常见的输出设备:显示器,声卡,网卡,打印机。
输入+输出:声卡,网卡。
cpu的功能:进行运算操作+控制cpu的信息流动。
存储器就是我们的内存:所以的设备都只能和内存打交道。

2.场景:

1.程序的运行:

一个程序的运行是直接加载到内存当中的!

在这里插入图片描述

2.登录qq发送消息:

在这里插入图片描述

3.为什么需要内存:

1.简单的引入:

1.假设我们的体系结构中只有输入设备,输出设备,cpu三个主要部分?
2.结论:系统效率大大降低,效率只取决与输入输出设备:

在这里插入图片描述

2.计算机存储体系:

在这里插入图片描述

1.从上到下速度越来越慢:
2.造价越来越便宜:
3.每级之间效率相差不大:

3.内存的意义:

1.因为cpu直接和输入输出设备进行交互太缓慢:运行程序多的时候就只能看输入和输出设备:
2.输入设备的中的可执行程序加载到内存中cpu没有执行之前程序都可以预先加载到内存中。
3.cpu要进行运算就从内存中去拿到程序。
4.执行结果也可以在内存中进行保存让输出设备一个一个的拿出去。

有了上面两个知识的铺垫我们就可以解释内存存在的意义:

1.整个系统的效率就由内存的效率决定了:
2.减少了使用成本并且体系结构使用稳定:
3.综上所述:整个硬件体系就不存在影响效率的问题了,转换到了软件的问题,整个机器的效率就要看操作系统了。

二.操作系统:

1.概念引入:

1.操作系统本质是一个软件,是第一个软件。
2.操作系统和底层硬件之间的联系结构图。

在这里插入图片描述

2.故事引入:(校园环境做背景)

校长—>做决策:
辅导员—>保证管理和决策落地:
学生---->被管理人:

1.管理者和被管理者是不需要见面

1.管理者和被管理者之间是通过管理者获取到被管理者的信息进行管理本质上是对信息做管理。

2.管理者如何获取被管理者信息?

1.通过辅导员拿到被管理者的信息!

3.数据量较大的时候怎么办?

1.当管理者在面对大量的被管理者的时候,这么多的数据如何去处理?把对人的管理变成对数据的管理!

4.建立学生的数据结构:保存在容器中

1.我们知道每一个学生都有相同的属性不同的内容,每一个学生的属性内容都是不一样的。
2.建立学生结构体,把信息保存在容器中,进行对学生数据的管理:
3.对学生的管理就转移到了对容器的每一个学生信息结构体的增删查改。

5.总结:管理的过程就是一个 先描述再组织的一个过程!

通过上面的介绍:对于底层硬件的管理就是
1.操作系统(驱动管理)----------->校长。
2.硬件驱动-------->辅导员
3.硬件本身-------->学生
4.总结:对于硬件的管理本质上就是一个先描述再组织的过程。
描述:结构体进行描述 组织:使用数据结构进行组织
5.为什么需要操作系统?
5-1:没有操作系统需要自己管理和控制硬件:
5-2:对下:更好的控制软硬件资源:
5-3:对上:提供良好的运行环境:
5-4:稳定,高效,安全。

3.系统调用和库函数的概念:

1.基本概念:

1.在开发角度,对外会表现为一个整体,但是会暴露自己的部分接口,供上层进行开发使用,这部分由操作系统提供的接口叫做系统调用。
2.系统调用在使用上,功能比较基础,对用户的要求相对比较高,所以有心的开发者可以对部分系统进行适度的封装,从而形成了库,有了库,就更加利于用户的使用和开发者的开发。
3意义:解决系统调用:减少接口使用成本:
4.上面这个概念有可能不是特别容易听懂:说一个故事!

可以把系统调用接口想象成银行的取钱的窗口,一个比较会存取钱的人(不需要lib库可以直接和系统接口交互)来了呢可以直接取号去到窗口办理业务。那么现在有一位老大爷要来取钱老大爷什么也不会那么这个老大爷就找到了大堂经理(lib库),大堂经理就帮助老大爷进行拿号到窗口办理业务取钱的整个过程相当于调用系统接口借助了lib库的帮助一样。

在这里插入图片描述

2.从上到下需要注意的一些问题:

1.从上到下是不可以发生越级访问。
2.不可以绕过操作系统
3.操作系统从头到尾是贯穿的。

三.进程管理:

1.承上启下:

操作系统是怎么进行进程管理的呢?
非常简单先描述再组织的一个过程!

2.基本概念:

课本上:程序的一个执行实例,正在执行的的一个程序:
内核上:担当分配系统资源(cpu时间 , 内存)实体。

上面这些概念不是特别的好可以不看!用网上比较火的说法就是:如说!

2-1事实:

1.我们可以同时启动多个程序—多个exe加载到内存中:
2.操作系统需要管理多个加载到内存中的程序!
3.操作系统如何管理加载到内存中的程序呢?先描述再组织!

3.描述进程:PCB :task_struct(linux系统下)

task_struct(进程控制块:进程属性的合集) 是PCB的一种是linux系统下的描述进程属性的结构体,它会被装载到RAM(内存)里并且包含进程的信息。

4.场景一:加载多个程序到内存:

总结:
进程 = 可执行程序+内核PCB对象
进程 = 可执行程序+内核数据结构

在这里插入图片描述

5.task_struct 内容分类:

标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息

5-1:程序计数器

程序计数器: 程序中即将被执行的下一条指令的地址。
在这里插入图片描述

6.组织和查看进程:

1.PCB->task_struct :PCB操作系统规定的名称!
2.结构体中包含进程的所有属性:

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

6-0:在C/C++下获取当前程序的子父进程号的函数:

#include<unistd.h>
#include<sys/types.h>
1.获取当前程序的进程:getpid():
2.获取当前程序的父进程:getppid():

6-1:查看进程简单方式:

方法一:查看系统文件夹:/proc/ 下的进程信息!
请添加图片描述

方法二:通过命令进行查询:
ps ajx | head -1 && ps ajx | grep mybin
ps ajx 查看当前系统的所有进程
请添加图片描述

方法三:使用脚本进行进程的刷新:
while : ; do ps ajx | head -1 && ps ajx | grep mybin ;sleep 1 ; done
功能:可以进行实时的进程信息观察:
请添加图片描述

6-2:创建文件:

在这里插入图片描述

1.我们知道在C语言中我们使用fopen()函数打开一个文件进行只写操作,如果当前路径下没有这个文件会创建一个文件用来进行写入!
2.那么 这个路径在linux中是以什么进行保存的呢?
3.我们查看了proc中存放的该进程的程序:
cwd(当前工作路径):/LIMO/proc_learn/
exe(可执行程序的路径):/LIMO/proc_learn/mybin
4.fopen() 函数可以找到cwd的路径并且在这个路径下生成文件!

请添加图片描述

6-3:chdir() 修改当前工作目录:

在这里插入图片描述

动图效果:
请添加图片描述

7.系统调用创建进程——fork

7-1:创建子进程:

使用man fork 查看一下信息!
1.复制当前进程称为父进程生成一个子进程。
2.fork有两个返回值!
3.父进程拿到新开辟子进程的pid,子进程拿到pid为0的返回值!
4.子进程的意义,我们想要生成的子进程去给我们做事情!

在这里插入图片描述

 44 int main()45 {46     int n1=5;47     while(n1--)48     {49         printf("当前进程:%d 当前父进程: %d\n",getpid(),getppid());50     }51 52     pid_t tmp = fork();53     printf("程序pid: %d",getpid());54 55     while(1)56     {57         if(tmp == 0)58         {59             60         printf("当前进程是子进程的进程号:%d 当前父进程: %d\n",getpid(),g    etppid());61         }62         else63         {64 65         printf("当前进程是父进程的进程号:%d 当前父进程: %d\n",getpid(),g    etppid());66         }67         sleep(1);68     }69     return 0;70 }

//观察一下动图效果:

在这里插入图片描述

7-2:三个问题:

1:给父进程返回子进程的pid 给子进程返回0?

父进程:子进程 = 1:n 一个父进程有可能有多个子进程,所以想要父进程可以确定的找到某一个子进程就需要返回子进程的pid 。对于子进程来说父进程只有一个所以找到父进程是非常容易的所以返回0;

2:一个函数只能返回一个值?这个tmp有两个值?返回了两次吗?

fork()函数的实现:
在这里插入图片描述

子父进程共享变量,在return的时候发生写时拷贝变量名是相同的,地址不相同,进程号不相同,拷贝使用不同的内存空间!在linux下可以使用同一个变量名表示不同的内存!

3:if 和else 的判断都满足条件说明 tmp==0 并且大于0?

这个问题需要一些后面的知识以后再说!

4:一个进程奔溃了影不影响另一个进程?

命令: kill -9 进程号 :单独杀死一个进程!

动图效果:
在这里插入图片描述

8.进程状态:

8-1:进程排队:

在这里插入图片描述

1.进程具有这样的连接状态,只要进程的task_struct 进行这样的排队。直接连在这个地方。我们只要有这个节点就可以找到这个链表,就可以链入全局双链表或者链入队列!

问题一:需要找到结构体的首地址!

在这里插入图片描述

找到了task_struct 的首地址就可以对对象数据进行任意的访问!
在全局还是任何队列消息非常容易找到!

问题二:队列:

1.进程·不是一直在运行的(有可能在等待软硬件的资源)进程放在cpu中也不是一直都会运行的!
2.只要是进程排队就是pcb排队!
3.如何排队就是通过struct listnode 结构体保存信息进行排队!

8-2:状态:

运行,阻塞,挂起:都是一个状态这些状态都有对应的队列!
进程的一个状态就是:进程在状态队列进行的一个排队!把对应的struct listnode 加到保存的对应的位置!

这些状态是如何进行保存的呢?

struct task_struct {
int status;
……………………
}

#define New 1
#define Ready 2
#define runing 3
#define block 4

8-3:运行:

1.一个cpu一个运行队列:
2.struct runqueue{
int num;
task_struct* q ;//保存了pcb中的struct listnode 这个对象的地址!
}
3.已经加载到运行时队列,表示的意思是我已经准备好被随时的进行调度了!

在这里插入图片描述

8-4:阻塞:

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

1.这个时候就进入了阻塞状态。
2.为什么产生?需要获取软硬件的资源所以进入阻塞状态!
3.阻塞状态是有一个阻塞队列的和运行队列是一个作用!
4.阻塞队列(等待队列)是由对应的的硬件提供的!
5.进程进入等待队列是把进程链入底层设备的一个过程!
6.对于设备来说输入数据完成就是表示硬件已经就绪?这个状态只有操作系统最清楚!操作系统在这个地方就进行了管理!

总结:进程在等待软硬件资源的时候,如果没有准备好我们的task_struct
1.将自己设置为阻塞状态,进入对应软硬件提供的等待队列。
2.把自己的pcb链入对应软硬件提供的等待队列。
3.状态的改变,导致pcb会被os变迁到不同的队列中!

8-5:挂起:

1.进入挂起的前提是:资源已经非常吃紧了!
2.这个挂起也叫做阻塞挂起!
3.在阻塞状态下把进程相关的代码和数据转换到外设中节省内存空间。
4.意义:我们可以慢一些但是不可以为了快产生资源吃紧导致有可能最后操作系统就挂掉了!

相关文章:

linux基础5:linux进程1(冯诺依曼体系结构+os管理+进程状态1)

冯诺依曼体系结构os管理 一.冯诺依曼体系结构&#xff1a;1.简单介绍&#xff08;准备一&#xff09;2.场景&#xff1a;1.程序的运行&#xff1a;2.登录qq发送消息&#xff1a; 3.为什么需要内存&#xff1a;1.简单的引入&#xff1a;2.计算机存储体系&#xff1a;3.内存的意义…...

JVM-基础

jdk7及以前&#xff1a; 通过-XX:PermSize 来设置永久代初始分配空间&#xff0c;默认值是20.75m -XX:MaxPermSize来设定永久代最大可分配空间&#xff0c;32位是64m&#xff0c;64位是82m jdk8及之后&#xff1a; 通过-XX:MetaspaceSize 来设置永久代初始分配空间&#xff…...

Baidu Comate 基于百度文心一言的智能编码助手

本心、输入输出、结果 文章目录 Baidu Comate 基于百度文心一言的智能编码助手前言产品能力主要功能特性JetBrains IntelliJ IDEA 插件安装相关链接花有重开日,人无再少年实践是检验真理的唯一标准Baidu Comate 基于百度文心一言的智能编码助手 编辑:简简单单 Online zuozuo …...

基本微信小程序的图书馆座位管理系统

项目介绍 图书馆因有良好的学习氛围、大量的学习资源吸引大家前来学习,图书馆还未开馆就有大量的用户在门口排队等待,有限的座位与日益增加的自主学习者之间形成了供不应求的现象,再加上不了解图书馆的座位使用情况和恶意占座等现象,使得有限的学习座位越发紧张。本团队针对此…...

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(免费思路)

中国是世界上最大的苹果生产国&#xff0c;年产量约为 3500 万吨。同时&#xff0c;中国也是世界上最大的苹果出口国&#xff0c;世界上每两个苹果中就有一个出口到国。世界上每两个苹果中就有一个来自中国&#xff0c;中国出口的苹果占全球出口量的六分之一以上。来自中国。中…...

AWS CLI和EKSCTL的客户端设置

文章目录 小结过程安装AWS CLI安装EKSCTL在两个Kubernetes Cluster之间切换 参考 小结 在Linux环境中对AWS CLI和EKSCTL的客户端进行了设置。 过程 安装AWS CLI 使用以下指令安装&#xff1a; curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"…...

分组背包问题学习笔记 AcWing 9. 分组背包问题

原题 有 N&#xfffd; 组物品和一个容量是 V&#xfffd; 的背包。 每组物品有若干个&#xff0c;同一组内的物品最多只能选一个。 每件物品的体积是 vij&#xfffd;&#xfffd;&#xfffd;&#xff0c;价值是 wij&#xfffd;&#xfffd;&#xfffd;&#xff0c;其中 …...

JSP EL 算数运算符逻辑运算符

除了 empty 我们这边还有一些基本的运算符 第一种 等等于 jsp代码如下 <% page contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %> <%request.setCharacterEncoding("UTF-8");%> <!DOCTYPE html> <html> …...

ubuntu22.04 arrch64版在线安装node

脚本 #安装node#下载node、npm国内镜像&#xff08;推荐&#xff09;# 判断是否安装了nodeif type -p node; thenecho "node has been installed."elsemkdir -p /home/zenglg cd /home/zenglgwget https://registry.npmmirror.com/-/binary/node/v10.14.1/node-v10.…...

腾讯云轻量数据库开箱测评,1核1G轻量数据库测试

腾讯云轻量数据库1核1G开箱测评&#xff0c;轻量数据库服务采用腾讯云自研的新一代云原生数据库TDSQL-C&#xff0c;轻量数据库兼100%兼容MySQL数据库&#xff0c;实现超百万级 QPS 的高吞吐&#xff0c;128TB海量分布式智能存储&#xff0c;虽然轻量数据库为单节点架构&#x…...

Linux安全之AIDE系统入侵检测工具安装和使用

一、AIDE 系统入侵检测工具简介 AIDE&#xff0c;全称为Advanced Intrusion Detection Environment&#xff0c;是一个主要用于检测文件完整性的入侵检测工具。它能够构建一个指定文件的数据库&#xff0c;并使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性&am…...

【Flink】状态管理

目录 1、状态概述 1.1 无状态算子 1.2 有状态算子 2、状态分类 ​编辑 2.1 算子状态 2.1.1 列表状态&#xff08;ListState&#xff09; 2.1.2 联合列表状态&#xff08;UnionListState&#xff09; 2.1.3 广播状态&#xff08;BroadcastState&#xff09; 2.2 按键分…...

《微信小程序开发从入门到实战》学习二十八

3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好&#xff0c;现在实现视图层的页面展示。 投票的标题、&#xff0c;描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示&#xff0c;涉及到单选还是多选&…...

2824. 统计和小于目标的下标对数目 : 详解 “左找右“ “右找左“ 两种方式

题目描述 这是 LeetCode 上的 「2824. 统计和小于目标的下标对数目」 &#xff0c;难度为 「简单」。 Tag : 「排序」、「二分」、「双指针」 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target&#xff0c;请你返回满足 0 < i < j < n 且 nums[i] n…...

windows电脑定时开关机设置

设置流程 右击【此电脑】>【管理】 【任务计划程序】>【创建基本任务】 gina 命令 查看 已经添加的定时任务从哪看&#xff1f;这里&#xff1a; 往下滑啦&#xff0c;看你刚才添加的任务&#xff1a;...

微信小程序取消自定义默认标题

微信小程序取消自定义默认标题 在单独页面index.json中添加 "navigationStyle":"custom"即可 注&#xff1a;仅记录开发查找&#xff01;&#xff01;&#xff01;...

Vue3鼠标拖拽生成区域块并选中元素

Vue3鼠标拖拽生成区域块并选中元素&#xff0c;选中的元素则背景高亮(或者其它逻辑)。 <script setup> import { ref } from vue// 区域ref const regionRef ref(null)// 内容ref const itemRefs ref(null)// 是否开启绘画区域 const enable ref(false)// 鼠标开始位置…...

[深度理解] 重启 Splunk Search Head Cluster

1: 背景: 关于释放Splunk search head 的job 运行压力:splunk search head cluster 要重启的话,怎么办? 答案是:splunk rolling-restart shcluster-members Initiate a rolling restart from the command line Invoke the splunk rolling-restart command from any me…...

Python + Docker 还是 Rust + WebAssembly?

在不断发展的技术世界中&#xff0c;由大语言模型驱动的应用程序&#xff0c;通常被称为“LLM 应用”&#xff0c;已成为各种行业技术创新背后的驱动力。随着这些应用程序的普及&#xff0c;用户需求的大量涌入对底层基础设施的性能、安全性和可靠性提出了新的挑战。 Python 和…...

[汇编实操]DOSBox工具: unable to open input file: 文件名.asm问题解决

出错原因1 &#xff1a;将文件放在debug文件下&#xff0c;mount后发现并没有该文件 解决方案 &#xff1a;重启DOSBox&#xff0c;重新mount&#xff0c;直到dir后可以看到该asm文件 出错原因2&#xff1a;DOS系统不支持8位以上的文件名 解决方案 &#xff1a;将文件名改为8…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

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

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

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...