计算机基础

一、计算机基础之编程

什么是编程语言

  1. 编程语言是一种语言,和中文、英语一样,是用来沟通交流的
  2. 编程语言是一种与计算机交流的介质

什么是编程

编程就是通过一些编程语言写一些东西,表达自己的想法

为什么要编程

编程的目的是想要奴役计算机,把计算机当成人类的奴隶,让计算机帮人类工作,因而取代人力。

二、计算机基本组成

计算机的组成

计算机由五大部分组成:控制器,运算器,存储器,输入设备,输出设备

CPU(相当于人的大脑)

包括控制器和运算器

控制器(控制)

计算机的控制系统,控制硬件

运算器(运算)

包括:

  • 算术运算(1+1=2)
  • 逻辑运算(今天下雨要带伞)

存储器(记忆)

主存(脑子)

  • 优点:速度快
  • 缺点:容量小,断电即消失

外存(笔记本)

  • 优点:容量大,可以永久保存
  • 缺点:速度慢

I/O设备(输入/输出设备)

输入设备

输入信息,如:键盘,鼠标,U盘等

输出设备

输出信息,如:显示屏,打印机,U盘等

三、计算机组成补充

多核CPU

一个CPU相当于一个大脑,多核CPU,计算机拥有多个CPU,同一时刻可以处理多件事情。

32位和64位

32位表示CPU每次取32位二进制数,64位表示CPU每次取64位二进制数

CPU具有向下兼容性,64位电脑能下载32位的软件,而32位的软件下载64位的软件会丢失数据

机械硬盘原理

机械手臂

  • 读取数据

磁道

  • 存储数据

扇面

  • 划分磁道,多个扇面就是计算机一个盘(区)

  • 一个扇面512kb,计算机一次性从机械硬盘读取512kb数据

平均寻磁道时间

  • 由于工业水平限制----> 5ms

平均延迟时间

  • 转速为7200r/min 的机械硬盘

\[\begin{align} 7200/60=120r/s\\ 1/120=0.0083s=8.3ms\\ (8.3+0)/2=4.15ms \end{align} \]

平均寻找数据时间

\[5+4.15=9.15ms \]

固态硬盘

优点:不需要机械手臂,数据访问时间及延迟远低于机械硬盘

固态硬盘是基于固态电子(SSD,断电数据也会保留)和算法实现数据存储的。

四、操作系统

什么是文件

要读取数据,我们需要自己滑动机械手臂。

而文件是一种存储信息的介质,这是操作系统提供的一个虚拟的概念,文件可以存储信息,相当于帮你滑动机械手臂。

文件接口:操作系统提供的一个接口,可以使得对硬件的操作简单化。

操作系统

操作系统位于应用程序和硬件之间,负责协调管理计算机资源和软件资源。操作系统把对硬件的复杂性,封装成一个个简单易用的接口。

计算机三大组成

  1. 硬件:硬件直接交互
  2. 操作系统(软件):与硬件交互
  3. 应用程序(软件):与操作系统交互

应用程序的启动

  1. 双击应用程序图标
  2. 双击图标就是给操作系统指令,告诉操作系统应用程序在硬盘的位置,让操作系统启动这个路径
  3. 操作系统接到指令操控CPU,给内存发指令
  4. 内存接受CPU指令,给硬盘发出指令,硬盘读取应用程序代码至内存,应用程序启动

操作系统启动

启动软件,要通过操作系统寻找软件在硬盘的位置;操作系统本质上也是一个软件,要启动操作系统也要通过操作系统寻找操作系统硬盘的位置。

临时操作系统(ROM存储器)

去CMOS存储器上寻找操作系统的路径

临时内存(CMOS存储器)

电池供电,存储了操作系统的路径

过程:

  1. 开机,启动临时操作系统
  2. 临时操作系统去CMOS存储器上调用操作系统在硬盘的位置
  3. 操作系统启动,临时操作系统关闭

五、编程语言的分类

机器语言

计算机内部只接受二进制代码,用0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。

优点:执行速度非常快,直接和硬件交互

缺点:开发速度非常慢

汇编语言

类似于机器语言,但是汇编语言用英文标签来映射0和1,进行编程。

优点(相较于机器语言而言):开发速度快

缺点(相较于机器语言而言):执行速度慢

高级语言

高级语言直接用人能理解的语言和语法风格编写程序

  • 优点(较于汇编语言):开发效率高
  • 缺点(较于汇编语言):执行效率低(调试bug非常复杂)

编译型语言

类似于谷歌翻译,一次性翻译所有机器代码

  • 优点(较于解释型语言):执行效率高
  • 缺点(较于解释型语言):开发效率低

解释型语言

类似于同声传译,说一句翻译一句,解释性语言的翻译器是通过编译型语言写出来的

  • 优点(较于编译型语言):开发效率高
  • 缺点(较于编译型语言):执行效率低

六、网络的瓶颈效应

假设网络通信的时间为10ms,程序执行的时间为0.1ms,这是就不必考虑程序的执行效率了,因为这是你发送的第二条消息要等到网络延时结束才能发出,可以考虑使用如python这样的解释型语言开发程序。

posted @ 2019-08-22 16:54  SetCreed  阅读(202)  评论(0编辑  收藏  举报