写在开头:我打算把这文案做成 b 站的科普视频,篇幅和《初赛指南》差不多。
希望能够集思广益,大家能提有效的建议。
众所周知,参加信息学竞赛的同学都得在计算机上完成编写代码、实验程序,正所谓“工欲善其事,必先利其器”。于是我们 CSP 的初赛就——没法上机(大部分地区)。但是不给机器,也不能带进考场啊,这就好比监考员说“把考试无关的东西拿出去”,你把小抄留下一个道理。
CSP 初赛全国几十万人参加,这种规模的比赛试题还是具有普及性的,作为一个 干 净 且 负 责 任 的奥赛协会,你总不能让进复赛的人连 zip 都不会解压、或者是用手机硬盘 256G 嘲笑电脑内存 128G 的服务器用户吧(斜眼笑)。
所以,计算机科学这部分必有一定考核篇幅,占的分数不多,只需要作为概念去了解即可。
副标题:计算机的组成。
致敬抖音传奇女黑客一招破解核心数量,提高 1200% 性能,让 CPU 厂商都统统找她进货。
这种招数有没有用暂且另当别论,我们需要了解一些电脑的基础知识再来评价。
说到这里,就不得不追溯 计算机の仙人 冯·诺依曼 了。他提出一个奠定后世计算机架构的理论:计算机由运算器、控制器、存储器、输入设备和输出设备。
光说这些恐怕大家都不明白,我给各位烤个栗子:现代的计算机通常有几大配件:CPU,GPU,主板,内存,硬盘,键盘鼠标显示器等 I/O 设备。不能去废品站 50 块钱收一台旧电脑亲自验证,还不能刷刷图吧经验+3吗。其中的 CPU/GPU 主要担任运算器的职责,CPU 和一些主板上的芯片也分担了一部分控制器的职责,而存储器的职责就由内存和硬盘所担任——负责存储运算数据和运算程序,而键盘鼠标显示器等 I/O 设备就是人与计算机交互所必不可少的部分。
另外说一句,冯·诺伊曼还提出了存储程序思想。所以现代的计算机都可以编程,可以在不怎么改变硬件的大前提之下运行多种多样的程序,有着更高的通用性。
粗略地说完这个架构,再来详细讲讲其组成部分。这里先拿 CPU 开刀。
CPU 的基础参数有字长——这个之后再来讨论;厂商——常见 x86 的厂商有两家,Intel 和 AMD,若是牙膏买中华为的就是一次挤 5g 这类基于 ARM 的设计不在我们今天的讨论范围之内;架构刚才说了,因为信息竞赛一般都是上机用 x86 的机器,所以别惦记你那遥遥领先的科技啦!除此之外,和性能紧密相关的参数主要有主频(最直观的运行速度,超 10G 人 类 感 谢 你)、核心数量、二级缓存/三级缓存大小等等。
因为现在 CPU 的频率都到了 Ghz 级别,所以离运算单元越来越近,CPU 访问到指定数据就越来越快,但是同时成本也越来越高。这就导致即使 CPU 芯片的地盘上寸土寸金,可是还有大量空间腾去做各种一级、二级、三级缓存,而并非堆满运算单元这一现象。而 GPU 比较另类,它更偏向专门运算各种数据的图形处理单元,所以它的缓存较小而显存较大,核心堆满了运算单元,适合解决图形运算这种任务很重的并行计算问题。类似的,同样大小的内存一般比同样大小的硬盘要贵得多,也是因为内存的访问速度比硬盘快得多但是成本也比硬盘高得多。这里的内存是主存储器的简称,它断电不保存数据,便于高速访问数据,所以又有“运行内存”一说。因为安卓系的手机会把 Storage 翻译成“内部存储”,所以手机意义上的“内存”的本质是存储数据的硬盘。而硬盘则可以断电保存数据,为了和内存区分开来也可以称之为外存,访问速度就比内存要慢了。
整理一下,CPU 访问速度的高低序列就有 寄存器>一级缓存>二级缓存>三级缓存>内存>硬盘。
所以我们回到问题本身,msconfig 调到最大核心数量到底有没有用呢?显然是没有用的。系统默认给到的就是最大值,而这个设置选项只是为了核心出现一些问题的工程师使用。
内存越大越好?高 U 低显足够饱?我手机 256G 内存比你服务器 128G 内存还要大?这类问题也迎刃而解了。
副标题:Windows 以及 Linux 下的命令行使用。
Windows 下输入 cd 定位 C 盘,再用 dir 扫描目录,最后再重启电脑,多少问题都能自己修复完毕,成为黑客走上癫疯之路!
信息竞赛不是培养可以黑你王者账号的 C 语言大佬,也不是在某年省选之下通过 ssh 超能力获得省队名额的大神,而是一门正儿八经的竞赛,考验的是选手的各种综合能力,而不是输入一两行指令的小聪明。信息竞赛的程序往往需要在命令行的环境下进行(那些图形化可视化编程除外),无论是 Windows 环境还是 Linux 环境。全国决赛性质的比赛,比如 NOI 省选,冬令营 WC,NOI 等比赛只支持在 NOI Linux 环境之下比赛。作为一个选拔性质的比赛,CSP 初赛也会涉及一点点 Linux 命令的考察。
这里还没想好,不知道怎么写。
准备重写网络相关的东西,懂得东西比较少,暂时还没想好怎么写。
可以讲 TCP/IP 的四层,也可以讲内网 ip 公网 ip,和 IPv4/IPv6 的区别。