计算机五大基础部件:存储器、控制器、运算器、输入设备、输出设备。
存储器分为内存和磁盘。
一、CPU
1.计算机核心组件,在单个计算机芯片上放置数十亿个微型晶体管来构建成CPU。
2.CPU的核心是从程序或应用程序获取指令并执行计算。提取,解码,执行。从系统的RAM(随机存取存储器,也叫主存)中提取指令然后解码该指令的实际内容,然后再由CPU相关部分执行。
3.主要由两部分组成:控制单元和算术逻辑单元(ALU)。
控制单元:从内存中提取指令并解码执行。
算术逻辑单元:处理算术和逻辑运算。
从功能看,由四部分:寄存器n个和控制器、运算器、时钟。由电信号连通。
CPU是一系列寄存器的集合体。
累加寄存器、标志寄存器、程序计数器、基址寄存器、变址寄存器、通用寄存器、指令寄存器、栈寄存器。(基址变址通用有多个,其余都是只有一个)
(1)程序计数器:用来存储下一条指令所在单元的地址。程序计数器控制着程序的流程。
(2)标志寄存器:保存累加寄存器的运算结果,也负责溢出(指运算的指令超过了寄存器的长度范围)和奇偶校验。标志寄存器的第一个字节为1则为正,第二个字节为1则为0,第三个字节为1则为负数。
(CPU执行机制有个比较运算,实际上是减法运算,其结果记录在标志寄存器上)
函数调用机制:call指令调用和return指令返回,中间是栈
(3)基址寄存器和变址寄存器:用过这两个寄存器可以实现对主存上的特定区域进行划分,来实现类似数组的操作。
实际地址=基址寄存器的值+变址寄存器的值
寄存器名 | 名称 | 主要功能 |
---|---|---|
eax | 累加寄存器 | 运算 |
ebc | 基址存储器 | 存储内存地址 |
ecx | 计数存储器 | 计算循环次数 |
edx | 数据寄存器 | 存储数据 |
esi | 源基址寄存器 | 存储数据发送源的内存地址 |
edi | 目的基址寄存器 | 存储数据发送目标的内存地址 |
ebp | 扩展基址寄存器 | 存储数据存储领域基点的内存地址 |
esp | 扩展栈指针寄存器 | 存储栈中最高位数据的内存地址 |
数据的销毁:栈中存在两个参数,可通过两次pop指令可以将栈内的数据销毁;也可采用esp寄存器+8的方式更有效率(只需处理一次):数值的单位是4字节,esp寄存器+8相当于pop2次,虽然内存中的数据实际上还残留着,但只要把esp寄存器的值更新为数据存储地址前面的数据位置,该数据就相当于销毁了。
函数的参数是通过栈来传递,返回值是通过寄存器返回的。
∷CPU指令执行过程:取指令,指令译码,执行指令,访存取数,结果写回。
二、内存(内部存储设备)
也叫主存。是与CPU进行沟通的桥梁。通过控制芯片相连,由可读写的元素构成,每个字节(1byte=8bits)都有一个地址编号。CPU通过地址从内存中读取数据和指令,也可以根据地址写入数据。计算机所有程序的运行都是在主存中运行的。当计算机关闭时,内存中的指令和数据就会被清除。
作用:存放CPU中的运算数据,与硬盘等外部存储设备交换的数据。其运行决定了计算机的稳定运行。
内存的内部由各种IC电路组成,可分为三种:
(1)随机存储器(RAM):最重要的一种,可读可写,机器关闭时,信息会丢失。
(2)只读存储器(ROM):只可读,机器关闭时,信息不会丢失。
程序的运行环境,存在着名为BIOS(Basic Input/Output System)的系统。BIOS存储在ROM中,是预先内置在计算机主机内部的程序,记录了用来控制外围设备的程序和数据。BIOS除了键盘、磁盘、显卡等基本控制外,还有引导程序的功能。引导程序是存储在启动驱动器启示区域的小程序。操作系统的启动驱动器一般是硬盘,也有CD-ROM和软盘。
(3)高速缓存(Cache):分为一级缓存(L1 Cache)、二级缓存、三级缓存。位于内存和CPU之间,是一个读写速度比内存更快的存储器。
内存IC:一个完整的结构,内部有电源,地址信号,控制信号和用于寻址的IC引脚(Pin)来进行数据的读写。IC就是集成电器(integrated circuit)
存储方式有两种:低字节序列(将数据低位存储在内存低位地址)和高字节序列(将数据的高位存储在内存的低位)。
数组是内存的实现。
- 虚拟内存是内存和磁盘交互的第二个媒介,是把磁盘的一部分作为假想内存来使用。虚拟内存在硬盘上的存在形式就是PAGEFILE.SYS这个页面文件。
当内存不足时可借助虚拟内存运行程序,通过置换(swap)。分为分页式和分段式。
Windows操作系统:
1.Windows是以图形界面为基础的操作系统,前身是MS-DOC(16位操作系统)。
2.有两个版本32和64位。(指的是处理效率最高的数据大小)
3.通过API(Application Programming Interface,应用程序接口)函数集成来提供系统调用。API通过多个DLL文件来提供。
4.通过WYSIWYG(what you see is what you get)实现打印输出。
5.提供多任务功能:通过时钟分割技术来实现,底层是cpu时间切片,这也是多线程多任务的核心。
6.提供网络功能和数据库功能。它们和操作系统很接近,所以被称为中间件而不是应用。操作系统+中间件=系统软件。
7.即插即用实现设备驱动的自动设定。
节约内存有两种方式:增加内存的容量,加内存条;优化应用程序,使其尽可能变小。
怎样优化应用程序呢?
1.可以通过DLL文件实现函数共有。
DLL(Dynamic Link Library)文件是一种动态链接库文件,是在程序运行时可以动态加载Library(函数和数据的集合)的文件。多个应用可以共有一个DLL文件从而达到节约内存的效果。
2.通过调用_stdcall来减少程序文件的大小。
_stdcall
是standard call(标准调用)。Windows提供的DLL函数都是通过_stdcall
调用。
三、磁盘(外部存储设备)
内存通过电流实现存储,磁盘通过磁记录技术来实现存储。
早期磁盘:软盘。如今用的是硬磁盘。磁盘中存储的程序必须加载到内存中才能运行。
磁盘的缓存叫做磁盘缓存,指的是把从磁盘中读出的数据存储到内存的方式,磁盘缓存大大改善了磁盘访问的速度。磁盘缓存是内存的一部分。
磁盘的物理结构指的是磁盘存储数据的形式。通过其物理表面划分成多个空间来使用,划分方式:可变长方式和扇区方式(一般是这种)。
扇区是对磁盘进行物理读写的最小单位。
四、操作系统环境
程序要运行需要运行环境。运行环境=操作系统+硬件。
操作系统又可以被称为软件,是由一系列的指令组成的。分为:Windows、Linux、Unix、FreeBSD(Unix系统的一种)。监控程序(加载程序、运行程序)可以说是操作系统的原型。后来又加上了基本的输入输出程序,再后来加上了硬件控制程序、编程语言处理器(汇编、编译、解析)、各种应用程序。操作系统其实就是多个程序的集合体。
Windows操作的是硬件而不是软件,软件通过操作windows系统可以达到控制硬件的目的。程序员没法直接控制硬件,且windows屏蔽了控制硬件的细节,但是windows却开放了系统调用功能来实现对硬件的控制,系统调用称为API,API就是应用调用的函数,这些函数的实体被存放在DLL文件中。
CPU的类型不同,所对应的机器的语言也不同。操作系统的类型不同,应用程序向操作系统传递指令的途径(称为API,Application Programming Interface)也不同。
五、显卡
承担图形的输出任务。又被称为图形处理器(Graphic Processing Unit,GPU)。
显示器中显示的信息一直存储在某内存中,该内存称为VRAM(Video RAM),在程序中,只要往VRAM中写入数据,该数据就会在显示器中显示出来。实现该功能的程序,是由操作系统或者BIOS提供,并借助中断来处理。
集成显卡:集成显卡是一种特殊的显卡,它一般不带有显存,而是使用系统的一部分主内存作为显存,具体的数量是系统根据需要自动动态调整的。
独立显卡:独立显卡简称独显,是指成独立的板卡,需要插在主板的相应接口上的显卡。独立显卡又分为内置独立显卡和外置显卡。独立显卡具备单独的显存,不占用系统内存,而且技术上领先于集成显卡,能够提供更好的显示效果和运行性能。
六、外围设备
1.IO端口
计算机主机中,附带了用来连接显示器以及键盘等外围设备的连接器,连接器内部都连接有用来交换计算机主机内外围设备之间电流特性的IC,这些IC统称为IO控制器。IO控制器中有用于临时保存输入输出数据的内存,被称为寄存器(与CPU的寄存器不同),这些内存就是端口。一个io控制器可以控制多个设备,各端口之间通过端口号来区分。端口号也被称为IO地址。
2.IRQ实现中断
外围设备的中断请求:IRQ(Interrupt Request)代表的就是中断请求。IRQ用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制,该机制被称为处理中断。实施中断请求的是连接外围设备的io控制器,负责实施中断处理的是CPU,外围设备的中断请求会使用不同于IO端口的其他编号,这个编号叫中断编号。操作系统以及BIOS则会提供响应中断编号的中断处理程序。
假如有多个外围设备请求中断的话,可以在IO控制器和CPU之间加入名为中断控制器的IC进行缓冲。
3.DMA实现短时间内大量数据传输
DMA(Direct Memory Access):指在不通过CPU的情况下,外围设备直接和主存进行数据传输。磁盘等外围设备都用到了DMA机制
假如多个设备设定成相同的端口号、IRQ和DMA通道的话,计算机就无法正常工作,会提示设备冲突。
网址后缀名:
.org 非盈利性组织
.com 商业机构
.cn 政府
.edu 教育