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

专业的网站建设与优化/百度推广助手电脑版

专业的网站建设与优化,百度推广助手电脑版,如何做简单网站首页,温州网论坛学习目标 1.认识冯诺依曼系统 2.认识操作系统概念与定位 (系统调用接口) 3.理解进程的概念(PCB) 4.理解进程的状态(fork创建进程,僵尸进程及孤儿进程) 5.了解进程的调度(优先级,竞争性&#xff…

学习目标

1.认识冯诺依曼系统

2.认识操作系统概念与定位 (系统调用接口)

3.理解进程的概念(PCB)

4.理解进程的状态(fork创建进程,僵尸进程及孤儿进程)

5.了解进程的调度(优先级,竞争性,独立性,并行,并发)

6.理解环境变量(熟悉常见环境变量及指令)

目录

学习目标

1.冯诺依曼系统

2.操作系统概念与定位 

2.1概念

2.2系统调用与库函数

3.进程的概念

3.1 概念

3.2 PCB

3.3查看进程以及fork

4.进程的状态

4.1状态

4.2 僵尸进程

4.2 孤儿进程

5.进程的调度

5.1相关概念

5.2进程的相关信息

6.环境变量

6.1概念

6.2main函数中的三个参数

6.2环境变量通常是具有全局属性的


1.冯诺依曼系统

  • 输入单元:包括键盘, 鼠标,扫描仪, 写板等
  • 中央处理器(CPU):含有运算器和控制器等
  • 输出单元:显示器,打印机等

补充:

  • 这里的存储器指的是内存
  • 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

        所有设备都只能直接和内存打交道

2.操作系统概念与定位 

2.1概念

 1.概念:任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

2.设计OS的的目的:

  • 与硬件交互,管理所有的软硬件资源
  • 为用户程序(应用程序)提供一个良好的执行环境

3.定位

  • 操作系统是一款纯正的“搞管理”的软件

4.什么是管理?

  • 管理的例子
  • 描述被管理对象
  • 组织被管理对象

        先描述,再组织

2.2系统调用与库函数

1.系统调用:

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。

2.库函数:

  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发

3.进程的概念

3.1 概念

1.进程: 对应的代码和数据 + 进程对应的PCB结构体(包含进程的所以属性)

--课本概念:程序的一个执行实例,正在执行的程序等

--内核观点:担当分配系统资源(CPU时间,内存)的实体

3.2 PCB

1.PCB(描述进程):

  • 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
  • 课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct

--task_struct-PCB的一种:

  • 在Linux中描述进程的结构体叫做task_struct。
  • task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息

--task_ struct内容分类:

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

2.为什么每个进程,都要有一个PCB结构体变量?

--操作系统要管理进程,先描述,再组织,

  当代码加载到内存时,操作系统都为其创建一个结构体PCB,将代码和PCB关联起来,对进程的管理就变为对PCB的管理

3.3查看进程以及fork

1.进程的信息可以通过 /proc 系统文件夹查看:

  • 如:要获取PID为1的进程信息,你需要查看 /proc/1 这个文件夹
  • 大多数进程信息同样可以使用top和ps这些用户级工具来获取

指令:

--命令:psps  axj   显示所有进程ps  axj   |  grep '进程名'  (也可以看到pid)ps  axj   |  head -1 && ps axj | grep  '进程名 '--结束进程:
1.CTRL + c
2. kill -9 pid

示例:

ps  axj   |  grep '进程名'  (也可以看到pid)

ps  axj   |  head -1 && ps axj | grep  '进程名 '

2.通过系统调用获取进程标示符:

  • 进程id(PID)
  • 父进程id(PPID)

代码:

头文件:sys/types.h
getpid()  获取自己的进程id
getppid()  获取父进程id  (始终是bash相当于是shell外壳)

3.通过系统调用创建进程-fork初识

  • fork有两个返回值
  • 父子进程代码共享,数据各自开辟空间,私有一份(采用写时拷贝)

fork后变成两个进程,一个是父进程,一个是子进程

for之前是一个执行流,之后变为两个执行流

1.头文件:unistd.h

2.返回值:(fork具有2个返回值?)

--失败:-1

--成功:a.给父进程返回子进程的pid b.给子进程返回0


fork的基本用法

fork之后,代码是父子共享的,我们想要两个进程做不同的事:可以使用条件判断解决

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{int ret = fork();if(ret < 0){perror("fork");return 1;}else if(ret == 0){ //childprintf("I am child : %d!, ret: %d\n", getpid(), ret);}else{ //fatherprintf("I am father : %d!, ret: %d\n", getpid(), ret);}sleep(1);return 0;
}

示例:

id在父进程里面,是子进程的pid

id在子进程里面,是0(这两个进程同时进行)


--为什么子进程返回0,父进程返回子进程的id?

父:子 = 1:n

--为什么fork会有两个返回值?(创建进程的时候,os要做什么?)

本质:就是系统多了一个进程,会新建一个task_struct

两个进程里面都有return语句。其会执行2次,就会有2个返回值

4.进程的状态

4.1状态

1.状态:

  • --新建:字面意思
  • --运行:task_struct 结构体在运行队列中排队,就叫做运行态
  • --阻塞:等待非cpu资源就绪,就叫阻塞状态
  • --挂起:当内存不住的时候,OS通过适当的置换进程的代码和数据到磁盘,进程的状态就叫做挂起

2.Linux下的状态:

进程:前台进程 和 后台进程(&)(不会影响命令行交互)

  • R:对应运行态
  • S:对应阻塞态 (可中断睡眠)
  • D:睡眠状态(磁盘睡眠/深度睡眠 不可被被动唤醒)                                                      
  • T:暂停状态 调试状态
  • X: 终止 (死亡) 瞬时性非常强(当前资源可以被回收)
  • Z:僵尸状态(一个进程已经退出,但还是不允许OS释放,处于一个被检测的状态)

--S与D的区别:

4.2 僵尸进程

1.是什么?一个进程已经退出,但还是不允许OS释放,处于一个被检测的状态

2.为什么?为了让父进程与OS来回收

        僵死状态(Zombies)是一个比较特殊的状态。当进程退出并且父进程没有读取到子进程退出的返回代码时就会产生僵死(尸)进程
        僵死进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。
        所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态

3危害:内存泄漏(若父进程创建了多个子进程,但不回收)

4.演示:

  1 #include<stdio.h>2 #include<unistd.h>3 #include<stdlib.h>4 5 int main()6 {7   pid_t id = fork();8 9   if(id<0)10   {11     printf("fail\n");12   }13   else if (id == 0)//子进程14   {15     printf("i a child\n");                                                    16     sleep(5);17     exit(-1);18   }19   else//父进程20   {21     printf("i am father\n");22     sleep(30);23   }24   return 0;25 }

4.2 孤儿进程

1.是什么?父进程先退出,子进程就称之为“孤儿进程”

父进程如果提前退出,那么子进程后退出,进入Z之后,那该如何处理呢?
孤儿进程被1号init进程领养,由init进程回收。

2.演示:

1 #include<stdio.h>2 #include<unistd.h>3 #include<stdlib.h>4 5 int main()6 {7   pid_t id = fork();8 9   if(id<0)10   {11     printf("fail\n");12   }13   else if (id == 0)14   {15     while(1)16     {17        printf("i am child %d\n",getpid());18        sleep(1);19     }20   }21   else22   {23     int cnt = 5;24     while(cnt)25     {26        printf("i am father %d\n",getpid());27        cnt--;28        sleep(1);29     }                                                                         30   }31   return 0;32 }33 

5.进程的调度

5.1相关概念

优先级 = 老的优先级 + nice值(80,每次设置优先级,都要从进程最开始的优先级开始设置

  • cpu资源分配的先后顺序,就是指进程的优先权(priority)。
  • 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。
  • 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

5.2进程的相关信息

1.相关信息

  • UID : 代表执行者的身份
  • PID : 代表这个进程的代号
  • PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
  • PRI :代表这个进程可被执行的优先级,其值越小越早被执行
  • NI :代表这个进程的nice值

如何查看?

用ps –l命令则会类似输出以下几个内容:

PRI 与 NI

  • PRI也还是比较好理解的,即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小,进程的优先级别越高
  • 那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值
  • PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice
  • 这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行
  • 所以,调整进程优先级,在Linux下,就是调整进程nice值
  • nice其取值范围是-20至19,一共40个级别
  • 需要强调一点的是,进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进程的优先级变化
  • 可以理解nice值是进程优先级的修正修正数据

2.使用top修改进程中的nice值

top
进入top后按“r”–>输入进程PID–>输入nice值

其它概念

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰
  • 并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行
  • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发

6.环境变量

6.1概念

1.环境变量:一般是指在操作系统中用来指定操作系统运行环境的一些参数

        --如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
        --环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性

2.常见的环境变量

  • PATH : 指定命令的搜索路径
  • HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
  • SHELL : 当前Shell,它的值通常是/bin/bash

3.查看环境变量

echo $NAME //NAME:你的环境变量名称

4.测试:

5.环境变量相关指令

  • 1. echo: 显示某个环境变量值
  • 2. export: 设置一个新的环境变量
  • 3. env: 显示所有环境变量
  • 4. unset: 清除环境变量
  • 5. set: 显示本地定义的shell变量和环境变量

6.2main函数中的三个参数

int main(int argc, char *argv[], char *env[]){}参数个数                 环境变量

1.环境变量的组织形式

每个程序都会收到一张环境表,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串

2.获取环境变量

--2.1通过代码如何获取环境变量

--命令行参数

#include <stdio.h>
int main(int argc, char *argv[], char *env[])
{int i = 0;for(; env[i]; i++){printf("%s\n", env[i]);}return 0;
}

--通过第三方变量environ获取

#include <stdio.h>
int main(int argc, char *argv[])
{extern char **environ;int i = 0;for(; environ[i]; i++){printf("%s\n", environ[i]);}return 0;
}

libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。

--2.2通过系统调用获取或设置环境变量

//putenv 
//getenv#include <stdio.h>
#include <stdlib.h>
int main()
{printf("%s\n", getenv("PATH"));return 0;
}

6.2环境变量通常是具有全局属性的

--环境变量通常具有全局属性,可以被子进程继承下去

测试:

1.暂时还为设置环境变量:

2.设置后:

说明:环境变量是可以被子进程继承下去的

相关文章:

Linux:进程(概念)

学习目标 1.认识冯诺依曼系统 2.认识操作系统概念与定位 (系统调用接口) 3.理解进程的概念&#xff08;PCB&#xff09; 4.理解进程的状态&#xff08;fork创建进程&#xff0c;僵尸进程及孤儿进程&#xff09; 5.了解进程的调度&#xff08;优先级&#xff0c;竞争性&#xff…...

智能机器人:打造自动化未来的关键技术

文章目录 1. 智能机器人的基本概念2. 智能机器人的关键技术2.1 机器视觉2.2 机器学习与深度学习2.3 传感器技术 3. 智能机器人的应用领域3.1 制造业3.2 医疗保健3.3 农业3.4 服务业 4. 智能机器人的未来趋势4.1 自主决策能力的提升4.2 协作与互操作性4.3 个性化定制4.4 环境感知…...

大数据(七):Pandas的基础应用详解(四)

专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对…...

【1day】​万户协同办公平台 ezoffice未授权访问漏洞学习

注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录...

适配器模式:如何让不兼容的接口变得兼容

在软件开发中&#xff0c;我们经常会遇到这样的情况&#xff1a;我们需要使用一个现有的类或者接口&#xff0c;但它与我们系统的目标接口不兼容&#xff0c;而我们又不能修改它。这时候&#xff0c;我们该怎么办呢&#xff1f;大多数情况下我们都可以使用适配器模式来解决这个…...

sentinel熔断报java.lang.reflect.UndeclaredThrowableException

背景&#xff1a;内部要进行应用jdk&springboot升级&#xff0c;因此也需要将Spring Cloud Hystrix 替换成alibaba sentinel。 依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</a…...

工业4G路由器的户外组网与无人值守场景应用

工业4G路由器是专为不便电缆布线的工业或日晒雨淋网络不畅的户外环境所设计的网络设备。它能够在没有光纤宽带的情况下使用插卡的方式提供4G或无线WiFi的网络支持。具备工业级防水功能&#xff0c;能够在户外环境下进行网络部署&#xff0c;并实现无人值守运行。工业4G路由器还…...

中移粤港澳大湾区创新研究院、南湖研究院类脑实验室面试(部分)

中移粤港澳大湾区创新研究院 reids热key的高并发量&#xff0c;导致此redis节点的cpu使用率爆满&#xff0c;有什么优化方案&#xff1f;高并发情况下为了保证平台正常运行&#xff0c;怎么设置平台的监控和告警 南湖研究院类脑实验室 笔试通过后&#xff0c;面试无后续...

API 自动化测试难点总结与分享

API自动化测试的难点包括&#xff1a; 接口的参数组合较多&#xff0c;需要覆盖各种可能的情况。接口的状态和数据关联较多&#xff0c;需要验证返回结果是否符合预期。接口的并发访问和性能测试较为复杂&#xff0c;需要合理规划和调度测试策略。接口的安全性和权限控制较为重…...

【每日一题】补档 ABC309F - Box in Box | 三维偏序 | 树状数组 | 中等

题目内容 原题链接 给定 n n n 个箱子&#xff0c;问是否存在一个箱子 x x x 是否可以放到另一个箱子 y y y 里。 需要满足 h x < h y , w x < w y , d x < d y h_x<h_y,w_x<w_y,d_x<d_y hx​<hy​,wx​<wy​,dx​<dy​。 箱子可以随意翻转。 …...

异步编程 - 13 高性能线程间消息传递库 Disruptor

文章目录 Disruptor概述Disruptor中的核心术语Disruptor 流程图 Disruptor的特性详解基于Disruptor实现异步编程 Disruptor概述 Disruptor是一个高性能的线程间消息传递库&#xff0c;它源于LMAX对并发性、性能和非阻塞算法的研究&#xff0c;如今构成了其Exchange基础架构的核…...

(DXE_DRIVER)PciHostBridge

UEFI-PciHostBridge 1、PciHostBridge简介 PciHostBridge: 提供PCI配置空间,IO,MEM空间访问接口以及统一维护平台相关的PCI资源,提供gEfiPciHostBridgeResourceAllocationProtocolGuid,创建RootBridge等为PciBusDxe提供服务; 2、PciHostBridge 配置空间 PCI桥可管理其下PCI子…...

SpringMVC的增删改查的案例

目录 前言&#xff1a; 1.总体思路&#xff1a; 2.前期准备 3.前台页面 前言&#xff1a; 我们今天来学习研究SpringMVC的增删改查&#xff0c;希望这篇博客能够帮助正在学习&#xff0c;工作的你们&#xff01;&#xff01;&#xff01; 1.总体思路&#xff1a; 首先我们得…...

golang入门笔记——nginx

文章目录 Nginx介绍Nginx的安装Nginx文件Nginx反向代理负载均衡nginx动静分离URLRewrite防盗链nginx高可用配置安全性Nginx限流Nginx缓存集成Lua脚本OpenRestry Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占用内存少&#xff0c;并发能力强&#x…...

最新报告!TikTok 市场小家电大商机,GMV破亿的爆款如何复制?

近期&#xff0c;新锐小家电品牌Gaabor空气炸锅在东南亚卖爆了&#xff0c;单款商品GMV短时间内突破两亿&#xff0c;在印尼、泰国、马来西亚、菲律宾、越南均开设本土TikTok 小店&#xff0c;增长势头还在持续。 但Gaabor并不是个例。 整个东南亚家电市场规模增长迅速&#…...

功能定义-紧急制动系统

功能简介 紧急制动系统的触发过程如上图所示&#xff1a; 安全距离报警&#xff1a;当两车距离较近时&#xff0c;会给予驾驶员相应提示 预报警&#xff1a;当两车存在碰撞风险但风险较低【Danger Level1】时&#xff0c;会给予驾驶员提示【提示相比之前更为明显】 制动预填充&…...

Map与Set的区别

map与set是一种进行搜索的数据结构。 一 Map map存储的是key-value的键值对。 1 map中的常见方法 方法作用put(key,value)向map中存放key-value键值对get(key)根据key值得到value值getOrDefault(key,value)获取值为key的value&#xff0c;若不存在&#xff0c;则将key值对应…...

基于uwb和IMU融合的三维空间定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................................................kkk 0; for E…...

Visual Studio 2019下使用C++与Python进行混合编程——环境配置与C++调用Python API接口

前言 在vs2019下使用C与Python进行混合编程,在根源上讲&#xff0c;Python 本身就是一个C库&#xff0c;那么这里使用其中最简单的一种方法是把Python的C API来嵌入C项目中&#xff0c;来实现混合编程。当前的环境是&#xff0c;win10,IDE是vs2019,python版本是3.9&#xff0c…...

STM32F4X RTC

STM32F4X RTC 什么是RTCSTM32F4X RTCSTM32F4X RTC框图STM32F4X RTC计数频率STM32F4X RTC日历STM32F4X RTC闹钟 STM32F4X RTC例程 什么是RTC RTC全程叫Real-Time Clock实时时钟&#xff0c;是MCU中一个用来计时的模块。RTC的一个主要作用是用来显示实时时间&#xff0c;就像日常…...

[git] 如何克隆仓库,进行项目撰写,并绑定自己的远程仓库

摘要&#xff1a;删除.git文件&#xff0c;才可重新绑定远程仓库。 具体步骤&#xff1a; 文件夹右键&#xff0c;进入”Git Bash Here“执行命令 1. 执行 ”git clone 仓库地址“&#xff0c;克隆仓库 2. 在生成的仓库中&#xff0c;删除 .git 文件 3. git init 初始化仓库…...

【C++】模拟实现二叉搜索树的增删查改功能

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;C仓库 个人专栏&#xff1a;C专栏 文章目录 一、二叉搜索树的Insert操作&#xff08;非递归&#xff09;分析过程代码求解 二、二叉搜索树的Erase操作&#xff08;非递归&#xff09;分析过程代码求解…...

Yolov8-pose关键点检测:模型轻量化创新 | ScConv结合c2f | CVPR2023

💡💡💡本文解决什么问题:ScConv(空间和通道重建卷积),一个即插即用的架构单元,可以可以直接用来替代各种卷积神经网络中的标准卷积。 ScConv | GFLOPs从9.6降低至9,参数量从6482kb降低至6479kb Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.net/m0_637742…...

【洛谷 P1060】[NOIP2006 普及组] 开心的金明 题解(动态规划+01背包)

[NOIP2006 普及组] 开心的金明 题目描述 金明今天很开心&#xff0c;家里购置的新房就要领钥匙了&#xff0c;新房里有一间他自己专用的很宽敞的房间。更让他高兴的是&#xff0c;妈妈昨天对他说&#xff1a;“你的房间需要购买哪些物品&#xff0c;怎么布置&#xff0c;你说…...

什么是CI/CD:持续集成与持续交付?(InsCode AI 创作助手)

在现代软件开发领域&#xff0c;CICD&#xff08;Continuous Integration and Continuous Delivery&#xff09;是一种关键性的开发实践&#xff0c;它有助于提高软件交付的质量和效率。本文将深入探讨CICD的定义、原理和重要性&#xff0c;以及如何在项目中实施CICD流程。 什…...

redis 高可用

Redis 高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证提供…...

什么样的词条可以创建维基百科?

维基百科在国内用得比较少&#xff0c;有一些特殊原因&#xff0c;维基百科的控制权海外&#xff0c;目前维基百科和谷歌是一样的&#xff0c;在国内是无法正常访问的。但做海外推广的朋友都是知道维基百科的&#xff0c;小马识途营销顾问认为它在世界互联网领域的地位&#xf…...

poll epoll初学习

正是select这些缺点&#xff0c;才有了poll 1.I/O多路转接之poll 2.I/O多路转接之epoll 其中的struct epoll_event:...

BMS电池管理系统——电芯需求数据(三)

BMS电池管理系统 文章目录 BMS电池管理系统前言一、有什么基础数据二、基础数据分析1.充放电的截至电压2.SOC-OCV关系表3.充放电电流限制表4.充放电容量特性5.自放电率 总结 前言 在新能源产业中电芯的开发也占有很大部分&#xff0c;下面我们就来看一下电芯的需求数据有哪些 …...

【uniapp】关于小程序输入框聚焦、失焦(输入法占位)的问题

聊天小程序&#xff0c;界面带有输入框&#xff0c;当输入框中聚焦后&#xff0c;底部自动谈起输入法。此时输入框也要随之出现在输入法上方。默认情况下&#xff0c;输入框此时会被输入法覆盖掉。 以下是亲自实践&#xff0c;解决这个问题的方法&#xff1a; 一、小程序大概…...