我的第二篇博客(计算机组成和操作系统以及编程语言)
一、冯诺依曼机的五大结构:存储器,控制器,运算器,输入设备,输出设备。
1.存储器:内存,外存。
内存:运算速度快,内存越大,能运行的程序就越多。
但容量小,断电内容即消失。
外存:
固态硬盘:基于电容存储,运算速度较快。但工艺较复杂,成本高。
机械硬盘:(机械手臂、磁道、扇面3部分)靠机械手臂在磁道上存储数据,查询数据。机械硬盘上有扇面,其划分了磁道,多个扇面组成电脑中的一个盘(区),如C盘,D盘。 一个扇面是512kb,计算机一次性从机械硬盘上读取512kb数据)其实就是一个盘(区
平均寻道时间:由于工业水平限制,为5ms。(机械手臂抬起或放下的时间)
平均延迟时间:如一个7200r/min的机械硬盘。(机械手臂在磁道上划半圈的时间)
平均寻找数据时间:
二、操作系统
如果只有5大组成结构,要读取数据,只能自己滑动机械手臂。但实际我们不需要自己滑动,当我们装一个内存。已经有一小部分被使用,这就是操作系统占用的。
操作系统提供给我们一个一个接口,让复杂的操作简单化。
分为32位操作系统和64位操作系统。
32位即能一次接收32个0和1的组合数据,64位即能一次接收64个0和1的组合数据。它们向下兼容。
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.编译型语言(通过设备翻译形式)如:C/C++/Java/Go
类似于Google翻译,一次性翻译所有代码为机械代码,然后直接运行。
优点(相较于解释型语言):执行效率高
缺点(相较于解释型语言):开发效率低(找bug非常复杂)
5.解释型语言(通过设备的翻译形式)如:Python/JavaSript/PHP/R
类似同声传译,说一句翻译一句,解释型语言的翻译器是通过编译型语言写出来的,相当于一句一句运行。
优点(相较于编译型而言):开发效率高
缺点(相较于编译型语言):执行效率低
6、TIOBE编程语言排行
阿尔法围棋(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能机器人,由谷歌(Google)旗下DeepMind公司戴密斯·哈萨比斯领衔的团队开发。其主要工作原理是“深度学习”。
人工智能
四、网络瓶颈效应
由于程序联网的趋势,在未来,几乎全部应用程序都要通过网络通信。
1.木桶效应
木桶能装的水的量由木桶最短的一根木头决定。
2.网络的瓶颈
网络通信的时间几乎远远大于程序的执行时间。
因此程序的执行效率可以说完全没必要考虑了,