IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 并发的核心是查找 -> 正文阅读

[系统运维]并发的核心是查找

并发的核心是查找,之前解释过,今夜豪雨,再说两句。

并发问题实质是可扩展问题,好的并发系统开销不应随并发entity数量的增加而线性增加,时间复杂度应在O(n)以下。

并发和并行不同,并行是同时执行,但entity数量并不永远和硬件数量匹配,当entity数量大于硬件数量,总会有多个entity共享一套硬件,一套硬件处理多个entity,就是并发。

并发entity最终还是要串行,并发的本质是分时串行,并发处理的核心是“随时查找一个最适合使用时间片的entity。”

并发技术是一种调度技术,调度多个entity分时串行的技术。所谓调度,就是查找。
在这里插入图片描述

后记1

操作系统是一个进程并发系统,随时要在所有进程中查找出一个最适合执行的进程。Linux最初的O(n)调度不好的原因就是查找开销是线性增加的,而O(1)则是常数,换成log级别的CFS是因为它的响应度和公平性更好,开销又不至于到O(n)。

服务器是一个连接并发系统,随时要为一个数据包查找最适合处理它的连接。若每连接一个进程,当找到那个连接后,还要调度与之绑定的进程,调度也是一种查找,而进程数量与连接数量相当,两次查找开销叠加,若进程数量固定,则调度开销固定。

路由器交换机是数据包调度并发系统,随时要找到一个最适合的数据包发送到链路。无论数据包分类,路由,还是出队调度,本质都是查找。虽然同一时刻多个数据包可以从不同端口进入,但同一个时刻只有一个数据包可以被放到出口链路。系统要做的就是找到那一个。

队列为查找提供约束,数据包只需保序,无需再排序,因此转发才高效。数据包在线缆上时,它以光速级的波特率传播,当它进入交换机后,额外操作指令让这个波特率迅速下降。所谓的包分类,连接跟踪,防火墙规则匹配,路由,都不过是为数据包查找一个归宿,最后从多个这样的归宿中查找到一个最合适的数据包从出口放出,这些操作何止几条指令。优化的目标就是让这些操作要么快,要么去掉,指标就是pps,线速等。

后记2

硬件是固定的,可需要硬件处理的事务不固定,如何安排事务的处理顺序是并发的核心,具体就是查找和排序。

事务组织成序,系统执行调度,这就是并发要做的事,排序和查找的效率影响了并发性能。

为什么我没把排序算进去,只提查找?

排序只是为优化查找效率而做的预处理,理论上最公平最高效的一种调度方式是随机挑一个,这显然算一种查找,但无需排序。

理论上最公平最高效的另一种方式是无限内存的完美哈希索引,空间换时间,显然也无需排序。

排序和查找似乎是计算机领域“唯一”的“两件事”,从大学第一节课到经历几十次的面试,似乎都是围绕排序和查找展开。实际上,在有限的资源上执行数量不固定的事务,排序和查找是基本的。这就是计算机工作的核心原理,而计算机是一个并发系统,并发的核心就是“事务组织成序,系统执行调度”,分时使用资源要做的就是找到最适合的那一个。豪雨夜,写篇短文。

浙江温州皮鞋湿,下雨进水不会胖。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:41:37  更:2022-04-27 11:41:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:29:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码