计算机组成和编程语言
计算机组成和操作系统以及编程语言
一、编程
- 什么是编程?
编程就是写一堆堆文件。(控制变量不断变化的过程) - 为什么编程?
代替劳动力,帮助人完成一些具体的事情 - 什么是编程语言?
编程语言是人与计算机交流的介质
二、冯诺依曼机的五大结构:控制器,运算器,存储器,输入设备,输出设备。
1.存储器:内存,外存。
内存:运算速度快,内存越大,能运行的程序就越多。
但容量小,断电内容即消失。
外存:容量大,永久存储,但速度慢
固态硬盘:基于电容存储,运算速度快。但工艺较复杂,成本较高。
机械硬盘:(机械手臂、磁道、扇面3部分)靠机械手臂在磁道上存储数据,查询数据。机械硬盘上有扇区,其划分了磁道,多个扇区组成电脑中的一个盘(区),如C盘,D盘。
平均寻道时间:由于工业水平限制,为5ms。
平均延迟时间:如一个7200r/min的机械硬盘。
平均寻找数据时间:
三、操作系统
如果只有5大组成结构,要读取数据,只能自己滑动机械手臂。但实际我们不需要自己滑动。当我们装一个内存,已经有一小部分被使用,这就是操作系统占用的。
操作系统提供给我们一个一个接口,把对复杂的硬件操作简单化。
1.文件
存储信息,操作系统提供给你的一个虚拟概念。
文件接口(操作系统提供的,文件只是其中一个接口):帮你把对硬件的复杂操作简单化。
双击接口(操作系统提供的):帮助你快速打开一个应用程序。
等等接口
2.应用程序的启动
-
双击QQ--》让操作系统通知CPU(企鹅图标是操作系统提供给你的)(找到qq在硬盘的位置)
-
CPU让内存去外存读取QQ的数据,QQ数据进入内存
-
启动QQ
3.计算机的组成(有了操作系统之后)
- 应用程序(软件):和操作系统交互
- 操作系统:和硬件交互
- 硬件:直接和硬件交互
4.操作系统的启动(开机)
启动软件,首先启动操作系统查询软件在硬盘上的位置,操作系统本身也是软件的一种,启动操作系统也必须先找到操作系统在硬盘上的位置(而要找到也必须通过操作系统),这样就有一个问题。
操作系统正确的启动方式为:
- 开机,启动临时操作系统(其存储在ROM存储器,且该存储器出厂时就被写死,无法改变)
- 临时操作系统去CMOS存储器上寻找本机操作系统在硬盘上的路径(CMOS存储器为临时内存,用电池供电,存储了操作系统的路径和时间,当重装系统时就会修改对应的路径)
- 启动操作系统,临时操作系统关闭
四、编程语言
编程语言就是人与计算机交互的介质,编程就是交互的过程。
计算机(硬件)只认识0和1
一切的数据都是由0和1组成
1.机械语言(就是写0和1)
例如:假如意思是a+b
000101110011 (机械语言)【普通人写不来】--》(设备)--》低低低高低
优点:执行速度非常快,直接和硬件交互
缺点:开发速度非常慢
2.汇编语言
例如:假如意思是a+b
add(a,b)(汇编语言)--》(设备)--》000101110011--》(设备)----》低低低高低高高高低低高高(高低压电频)
优点(相较于机器语言):开发效率高
缺点(相较于机器语言):执行效率低
3.高级语言
例如:假如意思是a+b
a+b(解释型语言)---》(设备)---》a+b(高级语言/编译型语言)--》(设备--翻译)--》add,a,b--》(设备)--》00010101001--》低低高高(高低压电频)
4.编译型语言(通过设备翻译形式)
类似于Google翻译,一次性翻译所有代码为机械代码,然后直接运行。
优点(相较于解释型语言):执行效率高
缺点(相较于解释型语言):开发效率低(找bug非常复杂)
5.解释型语言(通过设备的翻译形式)
类似同声传译,说一句翻译一句,解释型语言的翻译器是通过编译型语言写出来的,相当于一句一句运行。
优点(相较于编译型而言):开发效率高
缺点(相较于编译型语言):执行效率低
6、TIOBE编程语言排行
阿尔法围棋(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能机器人,由谷歌(Google)旗下DeepMind公司戴密斯·哈萨比斯领衔的团队开发。其主要工作原理是“深度学习”。
人工智能
五、网络瓶颈效应
由于程序联网的趋势,在未来,几乎全部应用程序都要通过网络通信。
1.木桶效应
木桶能装的水的量由木桶最短的一根木头决定。
2.网络的瓶颈
网络通信的时间几乎远远大于程序的执行时间。
因此程序的执行效率可以说完全没必要考虑了,
六、执行Python程序的两种方式
-
命令行式
解释一个文本,python是一个解释器。
使用方式:
在终端中输入: python 文本路径
优点:一次解释全部代码
缺点:调试非常麻烦
-
交互式
输入一行,解释一行
交互式下,不需要使用print,会自动打印
一般用来做调试
优点:调试起来非常方便
缺点:关掉终端程序就没了