计算机基础
编程语言
语言是人类最重要的交际工具,是人与人之间沟通的主要表达方式,编程语言则是人与计算机之间的主要沟通的工具。
编程语言俗称“计算机语言”有很多种,但是总的来说可以分为机器语言、汇编语言、高级语言三大类。机器语言是机器能够直接识别的语言,对于人们来说使用难度很高,但是代码的执行效率非常高。汇编语言本质上和机器语言是一样的是一种低级语言,但是汇编不像机器语言那样难以记忆,汇编语言采用各种标识符来帮助人们相比机器语言更容易记住。高级语言就有很多种了例如:java,c,c++,C#,python等等都是高级语言,高级语言相比与低级语言更加贴近人类的自然语言,用人们更易理解的方式编写程序。
操作系统和硬件的关系
计算机包含输入设备、输出设备、存储设备、控制器、运算器五大部分。由于直接操作硬件来使用计算机难度太高,所以“操作系统”就诞生了。
操作系统是管理计算机软件和硬件的最基本程序,操作系统是用户和计算机交互,软件和硬件交互的接口。操作系统管理着硬件的所有资源,同时按照承应用程序的要求完成相应的硬件操作,支持应用程序的运行。
CPU与寄存器
CPU是一台计算机的运算核心和控制核心,主要作用是执行计算机指令以及处理软件中的数据。它从内存中取指令->解码->执行,周而复始直至整个程序完成。
寄存器
因为内存的速度远远低于CPU的执行速度,所以CPU内部有一些临时保存数据的寄存器。
寄存器分为:
1.用来传送、暂存数据、保存运算结果的通用寄存器
2.CPU同时执行多个任务,切换任务的时候产生的断点保存在程序计数器
3.包含了条码位、CPU优先级、模式(用户态或者内核态)、以及其他控制位的程序状态字寄存器
4.指向数据在内存中的位置的堆栈指针
内核态与用户态
内核态:指的是取得了CPU的所有指令集,能控制所有的底层硬件
用户态:指获取了一部分指令集,其中仅包含计算部分,不包含底层硬件控制
存储器的切换
程序在运行过程中不进行硬件相关操作时,这时CPU是处于用户态模式。当应用于程序需要对硬件进行操作时,例如从硬盘中取得某一数据,这时应用程序会先向操作系统请求需求的数据,操作系统接受到请求之后开始进行相关的数据查询操作,这时CPU就会从用户态模式变更为内核态模式。操作系统完成数据的操作后把数据交给应用程序,这时CPU会从内核态模式变更为用户态模式。
计算机在运行的过程中CPU会频繁的在内核态和用户态之间切换。
存储介质
L1缓存即寄存器使用和CPU相同材料制成,跟CPU一样快所以CPU访问它无延迟。
L2缓存:高速缓存,当程序需要读取数据时会先检查高速缓存中有无数据,有的话就称为“高速缓存命中”这时就无须访问内存,如果没有数据称为“高速缓存未命中”这时就必须花费更多时的间访问内存读取数据。L1和L2缓存的差别是CPU访问L1缓存无延迟,访问L2缓存会有一到两个时钟周期的延迟(1ns-2ns)。
RAM:就是我们所说的内存,易失性存储,断电后数据全部消失。
CMOS:易失性存储,计算机利用CMOS来保持当前的时间和日期,还可以保存bios的配置信息等。CMOS存储器耗电量极小。通常一块出场的电池能支撑CMOS两三年的时间。
ROM:非易失性存储,断电后数据仍会保存下来,但是ROM只读存储器中的内容是在出厂时就被烧录进去了,无法更改。
EEPROM和闪存:非易失性存储,与ROM相反他们是可以重复擦写的,重写的时间比RAM要多。闪存通常作为存储介质,速度在磁盘和内存之间。与磁盘不同闪存使用到一定次数会磨损。
磁盘
磁盘是一种机械装置,在磁盘中有一个或者多个金属盘片由电机驱动旋转,以5400,7200或者10800rpm转速旋转。
当磁盘旋转时,磁头若保持一个位置上,则每个磁头都会在磁盘表面划出一个圆,这个圆形轨迹就叫做磁道。
磁盘上每个磁道被分为若干个弧段,这些弧段就是磁盘的扇区,磁盘读写的最小单位是扇区,512Bytes。操作系统的最小读写单位为1block=8*512Bytes
上下一串盘片中,相同半径的磁道所组成的圆柱形环壁就成为柱面,柱面是逻辑上的概念。
磁头是通过磁性原理读写磁盘上数据的部件。
平均寻道时间和平均延迟时间
平均寻道时间:指磁盘在收到系统指令后,磁头从开始移动到移动到数据所在磁道所需的平均时间。
平均延迟时间:磁头起始位置到数据所在位置所需的时间。
虚拟内存与MMU:
当计算机运行的程序所需的内存空间大于自身的物理内存空间的时候,会暂时把不需要执行的程序放到磁盘的某处地方,这块地方就是虚拟内存。在linux中这块地方称为swap,这种机制的核心在于快速地映射内存地址,由CPU中的存储器管理单元(Memory Management Unit)负责。
磁带
在价钱相同的情况下比硬盘拥有更改的存储容量,速度比硬盘慢。但其因为大容量、发生灾情时可移动能力强等特性常用来做备份。
I/O设备
i/o设备包括两个部分:设备控制器和设备本身
控制器:
通常情况下设备的控制时非常复杂和具体的,控制器的作用就是屏蔽这些复杂而具体的工作,给操作系统提供一个清晰的简单的接口。
设备本身:
有相对简单的接口标准,需要为设备编写复杂而具体的程序,必须把驱动安装到操作系统中才能正常调用设备。
总线与南桥和北桥
总线时计算机各种功能部件之间传送信息的公共通信线路,计算机使用总线来连接计算机的所有部件。
北桥即PCI桥:连接高速设备(主要负责CPU与内存之间的数据传输)
南桥即ISA桥:连接慢速设备(负责SCSI、USB、IDE、声卡、打印机等慢速设备之间的数据传输)
操作系统的启动流程
在主板上有一个基本的输入输出程序BIOS。
BIOS就相当于一个小操作系统,它拥有底层的I/O软件,包括读键盘、写屏幕,进行磁盘I/O,该程序存在ROM中。
启动流程:
1.计算机加电。
2.BIOS开始运行,检测硬件。
3.BIOS读取CMOS存储器中的参数,选择启动设备。
4.从启动设备读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)。
5.根据分区信息读入bootloader启动装载模块,启动系统。
6.操作系统询问BIOS获取配置信息,系统检查设备驱动是否存在。没有驱动程序会要求用户安装驱动程序。有驱动的话系统会将驱动程序调入内核,然后初始有关表格。加载需要的进程,并在每个终端上启动登陆程序或者GUI。
应用程序的启动流程
1.用户打开应用程序发出指令
2.操作系统接收到指令后,开始执行用户操作,读取程序数据
3.程序数据读取完毕调入内存
4.CPU开始处理数据,把程序数据从内存调入缓存
5.CPU从缓存中读取程序数据开始进行处理
6.程序数据处理完毕后返回处理结果给操作系统
7.操作系统收到结果后通过输出设备返回给用户