编程必备基础: 计算机组成原理、操作系统、计算机网络

Photo by Bram Naus on Unsplash

编程必备基础: 计算机组成原理、操作系统、计算机网络

计算机发展历史

计算机发展简史

  1. 1946年: 电子管计算机

  2. 1957年: 晶体管计算机

  3. 1964年:集成电路计算机

  4. 1980年: 超大规模集成电路计算机

第一阶段计算机

第二次世界大战是电子管计算机产生的催化剂(解密德国海军的密文)

  • 集成度小,空间占用大

  • 功耗幔,运行速度慢

  • 操作复杂,切换程序需要接线

第二个阶段: 晶体管计算机

  • 集成度相对较高,空间占用相对小

  • 功耗相对较低,运行速度较快

  • 操作相对简单,交互更加方便

第三个阶段: 集成电路计算机

  • 计算机变得更小

  • 功耗变得更低

  • 计算速度变得更快

第四个阶段: 超大规模集成电路计算机

  • 一个芯片集成了上百万的晶体管

  • 速度更快,体积更小,价格更低,更能被大众接受

  • 用途丰富: 文本处理、表格处理、高交互的游戏与应用

第五个阶段: 未来计算机

  • 生物计算机

  • 量子计算机

微型计算机的发展历史

单核CPU

  • 1971: 500KHz频率的微型计算机(字长8位)

  • 1973: 高于 1MHz频率的微型计算机(字长8位)

  • 1978: 500MNHz 频率的微信计算机(字长16位)

  • 1985: 高于 1GHz 频率的微型计算机(字长32位)

  • 2000: 高于 2GHz 频率的微型计算机(字长32位)

多核 CPU

  • 2005: Intel 奔腾系列双核 CPU、AMD速龙系列

  • 2006: Intel 酷睿四核 CPU

  • Intel 酷睿系列十六核CPU

  • Intel 至强系列五十六核CPU

计算机的分类

超级计算机

  • 功能最强、运算速度最快、存储容量最大的计算机

  • 用于国家高科技领域和顶尖技术研究

  • 标记他们运算速度的单位是 TFlop/s

世界排名

中国排名

大型计算机

  • 又称大型机、大型主机、主机等

  • 具有高性能,可处理大量数据和复杂的运算

  • 在大型机市场领域,IBM 占据着很大的份额

迷你计算机(服务器)

  • 也称小型机,普通服务器

  • 不需要特殊的空调场所

  • 具备不错的算力,可以完成较复杂的运算

工作站

  • 高端的通用计算机,提供比个人计算机更强大的性能

  • 类似于普通台式电脑,体积较大,但性能强劲

微型计算机

  • 又称个人计算机时普通的一类计算机

计算机的体系与结构

冯诺依曼体系

将程序指令和数据一起存贮的计算机设计概念结构

  • 能够吧需要的程序和数据送至计算机中

  • 能够长期记忆程序、数据、中间结果以及最终运算的结果的能力

  • 能够具备算数、逻辑运算和数据传输等数据加工处理的能力

  • 能够按照要求将处理结果输出给用户

冯诺依曼瓶颈: CPU和存储速率之间的问题无法调和

现代计算机的结构

  • 现代计算机在冯诺依曼体积结构的基础上进行修改

  • 解决CPU与存储设备之间的性能差异问题

计算机的层次与编程语言

程序翻译与程序解释

程序翻译

程序解释

  • 计算机执行的指令都是L0

  • 翻译过程生成新的L0程序,解释过程不生成L0程序

  • 解释过程由L0编写的解释器去解释L1程序

程序翻译

  • C/C++

  • Object-C

  • Golang

程序解释

  • Python

  • php

  • javascript

翻译+解析

  • Java

  • C#

计算机的层次和编程语言

硬件逻辑层

  • 门、触发器等逻辑电路组成

  • 数据电子工程的领域

微程序机器层

  • 编程语言是微指令集

  • 微指令所组成的微程序直接交由硬件执行

传统机器层

  • 编程语言是CPU指令集(机器指令)

  • 编程语言和硬件是直接相关的

  • 不同架构的CPU使用不同的CPU指令集

操作系统层

  • 向上提供了建议的操作界面

  • 乡下对接了指令系统,管理硬件资源

  • 操作系统层是在软件和硬件之间的适配层

汇编语言层

  • 编程语言是汇编语言

  • 汇编语言可以翻译成科直接执行的机器语言

  • 完成翻译的过程的程序就是汇编器

高级语言层

  • 编程语言为广大程序员所接受的高级语言

  • 高级语言的类别非常多,有几百种

  • 常见的高级语言有:Python,Java,C/C++,Golang等

应用层

  • 满足计算机针对某种用途而专门设计

计算机的速度单位

容量单位

  • 在物理层面,高低电平记录信息

  • 理论上只认识0/1两种状态

  • 0/1能够表示的内容太少了,需要更大的容量表示方法

速度单位

网络速度

  1. 为什么电信的100M宽带,测试峰值速度只有12M每秒?

    网络常用单位是 Mbps, 100M/s = 100Mbps = 100Mbit/s, 100Mbit/s = (100/8)MB/s = 12.5MB/s

CPU速度

  • CPU 的速度一般体现为CPU的时钟频率

  • CPU的时钟频率的单位一般是赫兹(Hz)

  • 主流CPU的时钟频率都在2GHz以上

计算机的字符与编码集

字符编码集的历史

ASCII 码

  • 使用7个bits就可以完全表示ASCII码

  • 包含95个可打印字符

  • 33个不可打印字符(包括控制字符)

Extended ASCII 码

  • 常见的数学运算符

  • 带音标的欧洲字符

  • 其他常用、表格符等

字符编码集的国际化

  • 欧洲、中亚、东亚、拉丁美洲国家的语言多样性

  • 语言体系不一样,不以有限字符组合的语言

  • 中国、韩国、日本等的语言最为复杂

中文编码集

GB2312

  • 《信息交换用汉字编码字符集——基本集》

  • 一共收录了7445个字符

  • 包裹了6763个汉字和682个其他符号

GBK

  • 《汉字内码扩展规范》

  • 向下兼容了GB2312,向上支持国际ISO标准

  • 收录了21003个汉字,支持全部的中日韩汉字

中文编码集

  • Unicode: 统一码、万国码、单一码

  • Unicode定义了世界通用的符号集,UTF-*实现了编码

  • UTF-8以字节为单位对Unicode进行编码

练习题与答案详解

习题

答案详解

计算机组成与人工智能

  • 人工智能的发展依赖于算力的发展

  • 交叉学科: 自然科学、社会科学、技术科学

  • 安全问题、伦理问题

图灵测试

专家系统

神经网络

  • 图像识别

  • 推荐系统

  • 机器人

  • 自然语言处理

  • 时序序列预测

  • 游戏AI

通用人工智能

  • 人工智能研究的终极目标

  • 弱人工只能处理特定的问题

  • 通用人工智能是具备与人类同等智慧或超越人类的人工智能

Did you find this article valuable?

Support 曹儒士子 by becoming a sponsor. Any amount is appreciated!