计算机基础知识

1、计算机的作用、元件、工作流程

  • 计算机:
    输入指令和数据,经过处理后,产生有用的信息。

  • 计算机组成元件:
    输入单元(鼠标、键盘、触摸板等)、cpu、显卡、主板、内存、硬盘、输出设备(显示器等)、各种接口设备(声卡、网卡等)。

  • 计算机工作流程:
    数据经过输入单元输入到内存里,cpu读取内存数据,进行处理后,
    写入内存,然后传给输出单元或者存储在本地硬盘里。

  • cpu的常见分类:
    根据指令集分为2种,精简指令集(R·ISC)和复杂指令集(C·ISC)。
    【精简指令集】
    指令数较少,每条指令执行时间很短,完成的操作也很单一,要完成复杂操作需要多条指令。
    IBM的PowerPC(ps3等使用)和ARM系列(手机、路由器等使用)的cpu使用的是这种指令集。

    【复杂指令集】
    指令数很多而且都比较复杂,每条指令执行时间较长,能处理的工作比较丰富。
    AMD、Intel等X86架构的cpu使用这种指令集。

    x86架构:指Intel最早开发出来的cpu叫8086,后开又有80286、80386等,
    所以这种架构的cpu就被称为了x86架构。

2、计算机使用的计算单位

  • 计算机使用的计算单位:
    bit(比特),即单个的0或者1。

    之所以用这种单位,是因为计算机是根据有没有通电来记录信息的,通电就是1,没通电就是0。
    不断的通断电,记录一串0/1,就是在记录数据。

    由于0/1这个单位太小了,日常记录数据都是成千上万个bit,
    所以一般会使用另一个单位:字节Byte,1个字节=8个比特,即1B=8b。
    但是由于Byte也很小,所以更常用的是KB,即1024B,或者MB,即1024KB=1024*1024B。

  • 【小知识1】为什么100M的宽带,理论最高下载速度只有12.5M而不是100M?
    【答】因为宽带和传输速度用的单位不一样。
    宽带的值单位是bit,而下载速度用的单位是Byte,所以100M bit = 100M /8 = 12.5M Byte(因为1Byte = 8bit)

  • 【小知识2】平时买的硬盘,标注500GB,为什么使用时最大容量比标注的少?
    【答】因为标注和使用时的进制不一样。
    厂商标注容量时,用的是十进制,500GB = 500 * 1000 * 1000 * 1000B
    使用时,电脑用的是二进制,500GB / 1024 /1024 /1024 = 465GB,
    所以实际能存储的数据大小没变,只是转换进制变了,所以大小就变了。

3、个人计算机架构和接口设备(主要指x86架构)

  • 主板上有2个桥接器,北桥连接cpu、内存、显卡,南桥连接硬盘、USB、网卡等。

3.1、cpu

  • cpu有2个主要单元:算数逻辑单元和控制单元。
    算数逻辑单元:主要负责程序运算和逻辑控制。
    控制单元:主要用于协调各组件与各单元间的工作。

  • 决定性能的因素:指令集和频率(即每秒可以进行的工作次数)
    cpu的频率分外频和倍频,二者相乘才是cpu的频率。
    外频:cpu与外部组件进行数据传输/运算时的速度。
    倍频:即内频,cpu内部用来加速工作性能的一个倍数
    【举例】假设现在一个cpu是3GHz,外频是333MHz,则倍频为3*1000/333 = 9。

  • 【小知识】超频:通过主板的设置,将外频或者倍频提高的一种方法。
    通常提升的是外频,因为倍频通常会被厂商锁定,无法修改。
    【举例】比如刚才正常频率为3GHz的cpu,将外频从333MHz超频到400MHz后,倍频还是9,所以频率变为0.4*9 = 3.6GHz。这会提升cpu性能,但是可能会导致死机等问题。

  • cpu还分32位和64位,这是什么意思呢?
    cpu每次能处理的数据量成为字组大小,如果一次能处理32位的数据,就称该cpu是32位的,能处理64bit即64位的cpu。

  • 【小知识】为什么使用32位cpu的系统,最大只能使用4GB内存?
    这和cpu一次能处理多少数据无关,与cpu能找到的地址数目有关。
    因为32位cpu通常只有32条地址总线,能找到的内存物理地址数是2的32次幂,
    而每个内存物理地址对应的是1B的大小,所以32位系统只能支持最大2的32次幂* 1B的内存容量 ,即4GB大小的内存。

3.2、内存

  • cpu所有数据都来自内存

  • 内存的主要组成部分是动态随机访问内存(D·RAM),通电时才能使用,断电后数据消失。

  • 内存容量越大越好,因为所有数据都要加载到内存里才能被cpu读取。
    如果现在要加载大量数据到内存里,如果内存没有足够容量就只能释放暂时不用的内存,
    而释放内存可能会消耗一定的cpu时间,导致系统卡顿。

  • 内存频率最好和所使用的cpu的外频一样。

  • cpu里的高速缓存:
    cpu的数据是通过北桥从内存里读出来的,如果不通过北桥,
    直接在cpu内部读取就会快很多,因此有了cpu高速缓存。
    由于高速缓存在cpu内,要与cpu总体工作频率一致,
    D·RAM不支持,需要静态随机访问内存(S·RAM)。

  • BIOS软件(基础输入输出系统):
    BIOS是个程序,管理系统信息、进行开机自检等功能。
    bios程序写死在在主板的一个内存芯片里(ROM),ROM芯片没有通电也能记录数据(相当于硬盘)。

  • CMOS芯片:
    是一个主板上的可读写的RAM芯片(RAM断电数据消失,所以CMOS有单独的电池)。
    这个芯片记录了硬件的各项参数。CMOS的设置通常被写进BIOS里。

3.3、机械硬盘

  • 由盘片、机械手臂、磁头和主轴马达组成。

    盘片:通常是铝合金圆盘,上面涂了磁性材料。

    磁道:每个盘片分成了多个同心圆形的磁道,每个同心圆磁道一般可以存储几kB的。

    扇区:每个磁道又平分为多个块,这个块就叫扇区。
    扇区是机械硬盘上存储的物理单位,每个扇区可以存储512字节的数据。
    (z注意h,即使只需要某个字节,也要把扇区里的512B的数据都读出来)

    柱面:指不同盘片上的同一个位置的磁道组成的一个面,是一种逻辑上的概念。
    磁盘数据的读写是按柱面进行的,每次从柱面上的第一个磁头开始读写,
    直到柱面上所有磁头都读写完成,磁盘才移到下一柱面。

    数据存取过程:主轴马达转动盘片,机械手臂移动磁头在盘片上方(间距不到1微米)来回移动,磁头读写盘片。

4、文件编码

  • 计算机只会使用0/1记录数据,那人一般是看不懂的,
    需要把0/1转换一下,转为人能理解的字码。
    所以写入数据时,会把字码根据字码对照表(编码系统)转换为0/1,再存入文件。
    同理,读取文件时,也是读取一堆0/1数据,转换为字码后,展示到屏幕上。

  • 常用的编码表是ASCII码,每个符号(英文、数字、符号)占用1B(8bit),
    总共会有2的8次幂种组合,所以这种编码只支持256个字符。

  • 中文用的最多的编码系统是GBK,是对ASCII码的扩展
    GBK会有2的16次幂=65532种组合,理论可以表示6万多个中文。

  • 但是各国的文字都不一样,为了统一编码,

  • 出现了全球统一编码Unicode编码,日常使用UTF-8。

5、软件程序运行

  • 要使用计算机,需要工程师编程,写代码操作cpu,调用各种硬件。
    但是这样做有缺点:
    1、计算机只能识别0/1,要使用这种机器码编程,很难。
    2、机器码与cpu的指令集耦合性太强,换个机器,又要重新编写代码,成本太高。

  • 为了解决上诉问题,设计了一些人能看得懂的程序语言,
    比如c/java/python等,然后使用编译器将这些语言翻译成机器懂的机器码。

  • 现在有了易懂的编程语言,但是很多功能老是要写一些涉及底层硬件基础交互的重复代码,就很耗时间。
    所以将与底层硬件打交道的事情统一封装起来,只暴露相关功能的接口给开发者调用,就方便多了。

  • 这个封装好的程序就是操作系统,包括:
    内核:负责驱动硬件,分配cpu资源,管理内存、文件。
    一堆开发接口:方便开发者调用内核。

    操作系统可以管理计算机所有活动和驱动系统中的所有硬件。
    比如让驱动内存读取数据,驱动硬盘读写数据,驱动网卡传输数据等。
    这个内核程序开机后常驻在内存中。

  • 现在有了能管理硬件的操作系统。

  • 但是操作系统只是能管理而已,有了操作系统只是准备妥当,
    如何管理,如何使用硬件去实现各种功能要靠软件来决定。

  • 所以软件就是开发者参考操作系统提供的接口,做出来让用户操作计算机的东西。

你可能感兴趣的:(杂)