• 计算机基础


    一、计算机基础之编程

    什么是编程语言

    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 的机械硬盘

    [egin{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这样的解释型语言开发程序。

  • 相关阅读:
    dada的GCD
    涛神的城堡
    手机信号
    涛涛的Party
    壮壮的数组
    不安全字符串
    gdb core 调试多线程
    makefile $@, $^, $<, $? 表示的意义
    KMP算法的next[]数组通俗解释
    【原创】支持同时生成多个main函数 makefile 模板
  • 原文地址:https://www.cnblogs.com/setcreed/p/11395328.html
Copyright © 2020-2023  润新知