首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    计算机硬件知识总结

    计算机硬件对于软件工程师来说很多时候只是停留在一个概念上,例如CPU和内存,硬盘等等,这些都属于计算机组成原理里面必然会介绍到的,博主大学前期接触过大量的计算机硬件知识,曾几何时我甚至考虑过全身心投入到半导体行业,但是考虑到环境限制因素和个人职业的发展,折中选择了软件方向,但是最近阅读了一些机器学习相关的文章,也尝试过自己去训练模型,发现模型训练对硬件的要求比较特殊,这也让我有机会来从新总结一下硬件方面的知识,从软件工程师的角度介绍一下我理解的硬件知识。 首先我主要介绍的是单机系统的硬件组成,不太涉及路由器和交换机等等网络设备,毕竟即使是分布式系统也是由一台台机器组成的,分布式系统技术会涉及很多网络和数据一致性方面的问题,这在单机系统里这些问题都几乎被解决了,因为它是由系统总线与各种高速并且可靠协议的传输保证。 只要是计算机体系结构就离不开三个部分,处理运算模块,存储模块,通信模块。在单机系统里对应就是CPU,内存与硬盘,系统总线。 无论是服务器还是PC,体系都差不多,只是在各个具体的部件对于性能和稳定性有一些特殊的要求,例如服务器更要求稳定性,因为服务器要保证7×24服务,而个人电脑更多强调的是比较强劲的性能,偶尔宕机只需要重新启动即可,这样用户是可以接受的。典型的电脑配置包含几个部分:CPU,内存,硬盘,显卡,主板,电源早期还有北桥(内置内存控制器等模块),南桥,还有散热系统。

    01

    Hutool-5.8.0.M1 发布,尝试里程碑发布

    • 【db 】 【不向下兼容 】增加MongoDB4.x支持返回MongoClient变更(pr#568@Gitee) • 【json 】 【可能兼容问题】修改JSONObject结构,继承自MapWrapper • 【core 】 【可能兼容问题】BeanCopier重构,新建XXXCopier,删除XXXValueProvider • 【core 】 【可能兼容问题】URLEncoder废弃,URLEncoderUtil使用RFC3986 • 【core 】 【可能兼容问题】Base32分离编码和解码,以便减少数据加载,支持Hex模式 • 【core 】 【可能兼容问题】Base58分离编码和解码 • 【core 】 【可能兼容问题】Base62分离编码和解码,增加inverted模式支持 • 【core 】 【兼容问题 】PunyCode参数由String改为Charsequence • 【cron 】 【可能兼容问题】SimpleValueParser改名为AbsValueParser,改为abstract • 【poi 】 【可能兼容问题】ExcelUtil.getBigWriter返回值改为BigExcelWriter • 【core 】 【可能兼容问题】Opt.ofEmptyAble参数由List改为Collection子类(pr#580@Gitee) • 【json 】 【可能兼容问题】JSON转Bean时,使用JSON本身的相关设置,而非默认(issue#2212@Github) • 【json 】 【可能兼容问题】JSONConfig中isOrder废弃,默认全部有序

    03

    惊群效应

    传统的服务器使用“listen-accept-创建通信socket”完成客户端的一次请求服务。在高并发服务模型中,服务器创建很多进程-单线程(比如apache mpm)或者n进程:m线程比例创建服务线程(比如nginx event)。机器上运行着不等数量的服务进程或线程。这些进程监听着同一个socket。这个socket是和客户端通信的唯一地址。服务器父子进程或者多线程模型都accept该socket,有几率同时调用accept。当一个请求进来,accept同时唤醒等待socket的多个进程,但是只有一个进程能accept到新的socket,其他进程accept不到任何东西,只好继续回到accept流程。这就是惊群效应。如果使用的是select/epoll+accept,则把惊群提前到了select/epoll这一步,多个进程只有一个进程能acxept到连接,因为是非阻塞socket,其他进程返回EAGAIN。

    041
    领券