Sig-Main例会会议记录
Sig-Main例会会议记录第一次会议 0801blocklayerspeaker:谢润霖开发目的:
支持多类型磁盘设备共存
为 I/O 调度提供统一的接口核心数据结构:
对单个块 I/O 设备的抽象-bio
请求优化后,即将发往设备的请求-request
全局请求队列-request_queue
主要流程
进程通过系统调用发起I/0操作并阻塞
文件系统将进程谐求转换为bio,将其发送到全局请求队列中
向全局请求队列添加bio将会触发调度,调度程序将新增的bio转换为request,或者将其与队列中的reqeust合并
全局请求队列被定时器timeout触发,向硬件队列发送队列中的请求,然后将已发送的请求缓存在辅助队列中5. 硬件队列中的请求将被驱动程序拉取处理,并通过请求中的状态位储存处理的结果
值守线程定期轮询辅助队列,唤醒已完成请求对应的线程预期施工地点:kernel/src/driver/blockkernel/src/disk/ahci
kprobe 设计与实现 讨论speaker:陈林峰
内核追踪机制Linux存在众多 tracing tools,比如 ftrace ...
八股文
线程池线程池的工作机制线程池的工作机制通常包括以下几个步骤:
提交任务:当有新任务提交到线程池时,线程池会首先检查核心线程是否有空闲,如果有空闲核心线程,则直接交给核心线程执行。
等待队列:如果核心线程都在忙碌,线程池会将新任务放入等待队列中。
创建新线程:如果等待队列已满,且线程池中的线程数还没有达到最大线程数,线程池会创建新的线程来处理任务。
拒绝策略:如果线程池中的线程数已经达到最大线程数,并且等待队列也已满,线程池会根据预设的拒绝策略来处理新任务,例如抛出异常、丢弃任务或调用自定义的处理逻辑。常见问题
Q:线程池的核心线程数用完了之后为什么不是直接打到最大线程,而是先进入等待队列?
A:
资源管理:
创建和销毁线程是有开销的,频繁地创建和销毁线程会消耗系统资源。通过使用等待队列,可以减少线程的频繁创建和销毁,节省资源。
提高效率:
核心线程数是线程池在正常情况下保持的线程数量,这些线程通常是长期存活的。通过先将任务放入等待队列,可以充分利用现有的核心线程,提高线程的利用率。
避免过载:
如果任务直接创建新的线程,可能会导致系统在短时间内创建大量线程,增加系统负担 ...
LLM+ 应用开发学习经验记录
LLM+ 申论微调大模型数据准备
申论数据集,包括申论题目和申论答案申论题型申论大纲训练集准备格式:prompt + completion测试集准备mi-gpt
Eureka Labs 学习笔记
https://karpathy.ai/https://github.com/EurekaLabsAIhttps://www.youtube.com/@AndrejKarpathy
开源项目管理经验
code review
在 GitHub 上玩转开源项目的 Code Review
GitHub官网文档: reviewing-proposed-changes-in-a-pull-request
google.github.io
Linux使用过程中的疑难杂症
磁盘相关
执行某个操作例如某脚本./local_test.sh init 的时候,遇到报错
解决方法:
查阅资料stackoverflow: At least one invalid signature was encountered
后进行尝试和排查,发现应该是磁盘空间不足了,进行虚拟机磁盘扩容
【实操】手把手教你完成Linux CentOS7磁盘扩容
Insufficient free space: XXX extents needed, but only 0 available
insufficient-free-space-x-extents-needed-but-only-y-available网络相关
ssh连接不上,有很多原因
扩容后虚拟机启动不起来了:原因是因为虚拟机的磁盘扩容后,虚拟机的分区表没有更新,所以虚拟机无法识别新的磁盘空间。
解决方法:VMWare中给Ubuntu 虚拟机硬盘扩容后无法正常开机的相关问题
启动之后网络不通,ens33网卡状态异常。连不到dockerhub,vscode也ssh不到
解决方法:Ubuntu上不了网:ifconf ...
Rust基本功修炼
Rust基本功修炼所有权所有权规则、内存与分配stack and heap
Drop
移动
Clone针对堆上的数据,使用clone方法,会在堆上重新分配内存,将数据复制到新的内存中,返回新的指针。
Copy针对栈上的数据,使用copy方法,会直接复制数据,不需要重新分配内存。对于只存在于栈上的数据,实现了copy trait的类型,可以直接复制数据,不需要重新分配内存。对他们来说,深度拷贝和浅度拷贝没有区别。Copy trait:Drop trait:实现了copy trait的类型,不允许实现drop trait。因为drop trait会在变量离开作用域时,释放内存,而copy trait的类型不需要释放内存。
所有权与函数在语义上,将值传递给函数和把值赋给变量是类似的:会发生移动或者复制。函数的参数也是变量的一种。
返回值与作用域
函数在返回值的过程中也会发生所有权的转移。
一个变量的所有权总是遵循同样的模式
把一个值赋给另一个变量时,发生移动。
当一个包含堆上数据的变量离开作用域时,它的值会被drop。除非数据的所有权被移动到另一个变量中。reference
引用允许你使 ...
电工实验理论考试考前突击
真题出发实验六 RLC串联谐振电路的研究
当L、C不变,R变化时,谐振频率不变,品质因数Q变化
$Q=\frac{1}{R}\sqrt{\frac{L}{C}}$
$f_0=\frac{1}{2\pi\sqrt{LC}}$实验五 一阶RC串联电路暂态过程的研究
在一阶RC电路中,当电路状态改变时,不能产生跃变的是
a. 电容电压
b. 电容电流
c. 电阻电流实验八 RL串联电路及其功率因素的提高
灯管电压 $UD$, 镇流器电压 $U{rl}$, 输入电压 $U$ 的关系是矢量关系:
$U=UD+U{rl}$
在RL串联电路中,当功率因数 $cos \theta<1$ 时,电路有功功率 P 和输入电压 U 的关系为:
$P=UIcos\theta$,$P<UI$实验一 电路元件伏安特性测试
为了减小测量误差,测量稳压管伏安特s性应采用: C未知
频率变化时不影响其阻抗值的理想元件是 电阻
下列TTL电路中,输出端能直接连接的是(与非门、或门、OC门)? OC门实验十三 单管共射放大电路
在单管放大器实验中,测量输入正弦波信号须选用 A
...
操作系统复习笔记
操作系统复习笔记IntroductionWhat is an OSOS is a collection of one or more software modules that manages and controls the resources of a computer or other computing or electronic device, and gives users and programs an interface to utilize those resources.
操作系统是一个或多个软件模块的集合,它管理和控制计算机或其他计算或电子设备的资源,并为用户和程序提供利用这些资源的界面。
an extended machine
top-down view
provide standard library
implements a VM on top of machine
a resource manager
bottom-up view
manage and protect different computers resources: CPU, mem ...
软件需求分析与建模(uml)
感谢很多同学!
考点思维导图:https://mindline.cn/webapp?file=6CUH8M
部分名词表
英文
中文
artifacts
工件,制品
Low Coupling
低耦合
High Cohesion
高内聚
monopoly game
大富翁游戏
SalesLineItem
销售订单项目
aglie
敏捷
aggregation
聚合
知识点复习名词解释todo
什么是UML(Unified Modeling Language) UML是描述(specifying),构造(constructing),和文档化(documenting)系统制品与工件的可视化语言
它是一种符号语言,利用OO思想来进行建模
它不是一种方法论
它不是面向过程的
什么是OOD和OOP?
什么是软件设计模式?
What are the basic principles of OO technology ?抽象,封装,模块化,层次。uml的扩展机制
tagged value
constraint
stereotypeRUP(统一软件 ...