计算机系统包括:应用软件,操作系统,硬件。
硬件系统主要包括五大部分:输入设备,输出设备,储存器,控制器,运算器。其中运算器负责算数运输和逻辑运算。运算器和控制器共同组成了中央处理器(cpu)
应用软件 并不能直接调用计算机的硬件,需要通过操作系统系统对计算机硬件进行调用。
1.处理器:
由于通过访问内存得到相应指令或数据的时间比cpu执行指令花费的时间长的多,所以,在cpu的内部存在寄存器,用来保存关键的变量和数据。
寄存器的分类:
寄存器也是一个储存设备 缓存 指令集
通用寄存器:保存关键的数据和变量。
程序计数器: 把上一次程序运行没运行完的结果保存下来,然后去干另一件事,另一件事没干完再切回来的时候,把这个寄存器读取出来,继续接着执行。
堆栈指针:堆栈先进先除,队列先进后出。
程序状态寄存器(PSW):就2个二进制位,一个0一个1,一个代表内核态,一个代表用户态。
cpu的2种工作状态:内核态和用户态。内核态,cpu对操作系统完全放行,所以指令集都开放。用户态,针对应用程序来说,cpu会限制对硬件指令的操作。软件运行着的时候cpu处于用户态,一会需要操作硬件,需要切换到内核态,软件需要频繁进行切换,硬盘和内存的速度都太慢,这就需要和cpu同样材质的寄存器PSW。
进程:资源单元
线程:执行单元
进程之间相互独立,同一进程内的各个线程资源共享。
2.储存器:
1ns 寄存器 L1缓存(与cpu材质相同,因而cpu访问它无延时)
2ns 高速缓存 L2缓存 (如果高速缓存行在L2中,则称为高速缓存命中,如果高速缓存未命中,就必需访问内存)
10ns 内存 RAM(随机存取器)易失性储存,断电后全部消失。
10ms 磁盘
100s 磁带 数据库备份
ROM 非易失性随机访问储存 在断电后 储存的内容 并不会丢失,ROM在出厂中被编辑完毕后,就不能再进行修改,具有只读性。
EEROM和闪存flash 也是非易失性的,可以反复擦写。闪存的速度介于RAM和磁盘之间,但与磁盘不同的是,擦除的次数过多,就会被磨损。
CMOS 易失性的,用来保持当前的日期和时间,还有bios的配置,COMS存储器由一小块电池驱动。
3.磁盘:
8个bit = 1Bytes
1024Bytes = 1KB
1024KB = 1MB
1024MB = 1G
Bytes,KB,MB,GB 这些都是物理单元,一连串的二进制位成为bit位,是物理单元
每个磁头可以读取一段换新区域,称为磁道
每个磁道划成若干个扇区,扇区的典型值为512字节
8个扇区为一个block块,8x512字节 = 4096字节 = 4KB 块是硬盘储存的最小单位
数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间
平均寻道时间:
机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置
平均延迟时间:
机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
虚拟内存:
当计算机需要运行大于物理内存的程序时,就要将暂时不需要执行的程序先放入磁盘的某个地方,该区域就成为零虚拟内存,在linux中成为swap分区,这种机制核心在于快速影射内存和磁盘地址,由cpu的一个部件负责,称为储存器管理单元(MMU)
4.磁带:
价低容量大,移动性强,常被用来备份,常见于大型数据库系统中
I/O设备:
I/O设备一般包括两部分:设备控制器和设备本身。
控制器:主板上的一块芯片或一组芯片,控制器负责控制链接的设备,它从操作系统接收命令,然后对设备进行操作。
控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口
5.总线(BUS):
北桥(PCI桥):链接高速设备,cpu,L2缓存,内存等
南桥(ISA桥):链接慢速设备,链接慢速设备,usb,显示器等
6.启动计算机:
BIOS 相当于一个小的系统,他有低层的I/O软件,包括读写键盘,写平米,进行磁盘I/O 一般存放于非易失性闪存RAM中。
启动流程:
1.计算机加电
2.BIOS开始运行,检查硬件:cpu,内存,硬盘等
3.BIOS开始读取CMOS储存器中的参数,选择启动设备
4.从启动盘上读取第一个扇区的内容(MBR主引导纪录512字节,前446为引导信息,后64为分区信息,最后2个为标志位)
5.根据分区信息读入boot启动装置模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI