issues
search
BruceChen7
/
gitblog
My blog
6
stars
1
forks
source link
常见的系统概念
#51
Open
BruceChen7
opened
1 year ago
BruceChen7
commented
1 year ago
参考资料
可重入和线程安全
little's law
linux 中系统调用
什么是 utilization 和 Saturation
Indices point between elements - Made of Bugs --- 元素之间的索引点 - 由错误组成
linux
可重入和线程安全
可重入就是一个
执行绪没有离开这个函数的时候
允许
另一个执行流进入该函数
。
线程安全强调的是
该函数的实现操作
,
而可重入性则更多的
强调该函数的调用规则
。
函数的可重入性约束要高于线程安全
,
可重入函数
一定是线程安全的
,
可重入函数除了不能随意无锁操作全局或静态变量外还不能返回它们,因为可重入性是调用相关的,
一个函数的调用有几个方面:调用,实现,参数,返回值。
little's law
在一个稳定的系统中,设长时间观察到的平均顾客数量为 L,长时间观察到的有效到达速率为λ,平均每个顾客在系统中花费的时间是 W,
L = λW
理解
假设有一水管,横截面积为 2 平方米,水速为 5 米/秒,即水的流量速度是 10 立方米/秒,很显然:
在长度 100 米的水管内,水量为 200 立方米,每滴水从流入到流出,耗时 20 秒,而水的流量速度是 10 立方米/秒,
也就是说,在这段水管中:水量= 耗时 * 流量速度
应用
大一新生的招收速度是 5000 人/年,每个学生在大学停留 4 年,因此,整个大学的人数就是 20000.
QPS、耗时、并发数
QPS: 请求进入的速度
耗时:请求停留的时间
并发数:系统中同时存在的请求数
根据 Little's Law,能得到如下的关系式:
并发数 = QPS * 耗时
假设在理想情况下,某系统的请求进入速度是 1 亿次/秒,系统处理的时间趋近为 0,那么这个系统的并发量是多少呢?
虽然每秒有 1 亿次请求,但在某一随机时刻观察系统,会发现系统中不存在请求堆积的问题,系统的并发数趋近 0。
这是一个高 QPS、低延时系统,是一个很好的系统,轻轻松松地快速处理各种请求,来一个灭一个。
值得一提的是,
此时并发数很低,但这不表明系统实际能够承受的并发数很低
,它
实际上可能承受很高的并发数
。
怎么理解数组中的索引
一般这么理解:
实际上,也可以理解索引值是指对元素间间隔的编号,需要记住
A[i]
现在被定义为索引
i
之后的元素。
这样理解后,可以带来如下好处
对 (start, end) 标识的 range
对开始 start = 1, length = 3
用传统的理解方式,你可能需要考虑是索引范围(1, 3)还是 (1, 4)
用对空格进行编号的形式,你可以这样想想要的编号在(1,4)之间
判断范围相邻
如果
left.end == right.start
两个范围相邻
判断范围子集
范围包含 end-start 元素
需要记住
A[i]
现在被定义为索引
i
之后的元素。
什么是标准输入和命令行参数
用于传递数据和信息给命令或程序。
标准输入(stdin):标准输入是一个用于接收输入数据的概念,它通常与键盘输入或
通过管道(pipe)传递数据相关联
。
当在终端输入数据时,这些数据被发送到当前正在运行的命令或程序的标准输入流。
也可以使用重定向来从文件中读取数据,例如 command < input.txt 将文件内容作为标准输入提供给命令。
命令行参数(command-line arguments)
命令行参数是在【运行命令或程序时附加到命令后面的额外参数】。
它们用于向命令或程序传递配置、选项或操作指令。例如,在 ls -l /path/to/directory 命令中,-l 就是一个命令行参数,用于指定输出格式。
xargs 它的主要作用是从标准输入或文件中读取数据,并将其作为参数传递给其他命令。
它可以帮助你处理一组输入,并将其分批传递给其他命令以进行处理。
type/system #type/linux #public
参考资料
可重入和线程安全
little's law
理解
应用
QPS、耗时、并发数
怎么理解数组中的索引
A[i]
现在被定义为索引i
之后的元素。对 (start, end) 标识的 range
判断范围相邻
left.end == right.start
两个范围相邻判断范围子集
范围包含 end-start 元素
A[i]
现在被定义为索引i
之后的元素。什么是标准输入和命令行参数
type/system #type/linux #public