笔记.软考.操作系统概述
硬件
CPU
与内存交互,提取指令并执行,循环如此直至程序运行结束。
指令集
X86指令集和ARM指令集之间并不能够相互执行。
寄存器
保存关键变量和临时结果。
程序计数器(program counter)
程序计数器不断指示下一条需要从内存中提取出的指令的地址。
堆栈指针(stack pointer)
堆栈指针指向当前栈顶,包含输入过程中的有关参数、局部变量以及未在寄存器中的临时变量。
程序状态寄存器(PSW program status word)
程序状态寄存器由操作系统维护,是8字节long类型的数据集合。
程序状态寄存器会跟踪当前系统的状态。主要在系统调用和I/O中起重要作用。
设计
为提升性能,CPU的设计具有能够同时读取、解码和执行指令的机制。组织形式有流水线
和超标量
流水线形式为:CPU对指令的执行、解码和读取都不会停止,流水线一样一个接着一个。
超标量形式为:多个指令一次性取出,解码放入缓存区,由执行单元不断搜索自己的任务直至指令执行完毕。超标量设计是由于多数情况应用程序是无序执行的,使用硬件来保证此设计的结果与顺序执行的结果一致。
为保证硬件安全,多数CPU会拥有两种模式——内核态和用户态,控制CPU处于何种模式取决于PSW寄存器中的一个二进制位。
内核态:CPU可执行任何指令集,可使用硬件的功能,权限开放。
用户态:CPU仅可执行部分指令集,使用部分硬件功能,权限限制。
为了进一步提升CPU性能,奔腾引入超线程技术,合理利用空闲的CPU核心,提升效率。
我的CPU为十代i5,四核八线程,资源监视器中的CPU0~7中多出的四个核心即是虚拟出的核心数,称之为线程。可在bios界面关闭超线程模式来减小CPU负载增长寿命(没必要罢了)
内存
为了不影响CPU的执行效率,内存应当比执行一条指令要快,但是如此其存储容量就不能够太大,价格也就不会便宜,足够大足够便宜的存储,其速度又不会特别快,于是计算机的存储器采用了层级结构。
寄存器
寄存器的材料与CPU相同,从而速度基本无差,寄存器由程序自行管理。
高速缓存
高速缓存由多个64字节的高速缓存行组成,高速缓存行会因其造价限制容量自身容量大小,一些机器会拥有两个或三个缓存级别(常称为二级缓存,三级缓存)每一级高速缓存比前一级速度慢、容量大,为保证效率,最频繁使用的高速缓存行保存在CPU内部或靠近CPU的高速缓存中。
在任务管理器中可以看到自己的高速缓存层级。
应用程序在内存中读取关键词时,首先使用高速缓存的硬件检查自己是否拥有对应的高速缓存行,查找到即高速缓存命中,缓存未命中时会从磁盘中调入,所以操作系统会在内存中保留频繁使用的文件,从而避免重复从磁盘中获取。
主存
通常为RAM(Random Access Memory),所有无法在高速缓存中得到满足的内存访问都会转向内存。
除RAM外还会有ROM(Read Only Memory)非易失性随机存取存储器也称只读存储器,内容存储后就不会再修改,且又快又便宜,常用于计算机的引导加载模块。
EEPROM(Electrically Erasable PROM)和闪存(flash memory)同样是非易失的,但是内容可以擦除和重写,但是耗时要比RAM长。
闪存多数用于U盘中,擦除次数过多会出现磨损。
COMS是易失性的,常用于保持计算机当前时间日期。
磁盘
磁盘的随机访问数据时间比RAM慢了三个数量级,其原因是其构造。
磁盘是一类机械装置,内部会有多个金属盘片告诉旋转,利用磁头进行读写,很像老式唱片机……
固态硬盘(SSD Solid State Disk)不属于磁盘,其数据存储于闪存之中,与U盘相似,读写速度要比磁盘快,但是因擦写次数有限寿命不比磁盘,同样容量的固态造价也比磁盘高。
更多有待更新