冯·诺依曼设计思想
冯·诺依曼设计思想可以简要地概括为以下三点:
(1)计算机应包括运算器、存储器、控制器、输入和输出设备五大基本部件。
(2)计算机内部应采用二进制来表示指令和数据。每条指令一般具有一个操作码和一个地址码。其中操作码表示运算性质,地址码指出操作数在存储器中的地址。
(3)将编好的程序送入内存储器中,然后启动计算机工作,计算机无需操作人员干预,能自动逐条取出指令和执行指令。
操作系统和运行该操作系统的硬件的联系日益密切,操作系统扩展的计算机指令集,并管理计算机的资源,为了能够工作,操作系统必须了解大量的硬件,至少需要了解硬件如何面对程序员。
一台简单的计算机中: CPU 、内存、 以及I/O设备都是由一条数据总线连接起来,并通过数据总线来进行设备通信。现代个人计算机结构更加复杂,包含多重总线等等。
认识处理器
计算机的大脑是CPU,它会从内存中读取指令并执行,在每个CPU基本运行周期中,首先会从该内存中读取指令,解码以确定其类型和操作数,接着执行,然后再取指令,解码,执行下一条,然后往复,完成程序执行。
多数计算机中对程序员可见的专用寄存器
程序计数器:将要取出下一条指令的内存地址
堆栈指针: 指向内存中当前栈的顶端。该栈包含了每个执行过程的栈帧,一个过程的栈帧中保存了有关的输入参数、局部变量和那些没有保存在寄存器中的临时变量。
程序状态字:寄存器,简称:PSW, 这个寄存器包含了条件码位,CPU的优先级,模式(用户态、系统态),以及各种其他的控制位
等
操作系统必须知晓所有的寄存器,因为在时间多路复用的CPU中操作系统通常会中止正在运行的某个程序并开启另外一个新的程序,每次停止一个运行的程序时,操作系统必须保存所有的寄存器的值,这样在稍后把刚刚停止的程序再次启动恢复的时候,可以把这些寄存器的值重新载入。
多数CPU都有的两种模式 [ 内核态和用户态 ]
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取
为什么要分这两种状态?
由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级
用户态和内核态的切换成为系统调用:在CPU中的实现称之为陷阱指令
工作流程如下:
1、用户态程序将一些数据值放在寄存器中, 或者使用参数创建一个堆栈(stack frame), 以此表明需要操作系统提供的服务.
2、用户态程序执行陷阱指令
3、CPU切换到内核态, 并跳到位于内存指定位置的指令, 这些指令是操作系统的一部分, 他们具有内存保护, 不可被用户态程序访问
4、这些指令称之为陷阱(trap)或者系统调用处理器(system call handler). 他们会读取程序放入内存的数据参数, 并执行程序请求的服务
5、系统调用完成后, 操作系统会重置CPU为用户态并返回系统调用的结果
存储器
典型的存储结构: 【 寄存器 >> 高速缓存 >> 主存 >> 磁盘 】
高速缓存:
L1缓存: 用来将已解码的指令调入CPU的执行引擎
L2缓存: 用来存放那些频繁使用的数据
二者差别在于时序,对L1的访问不存在延迟,对L2的访问,会延时1到2
个时钟周期
主存:
存储器系统的主力,主存通常称为随机访问存储器: RAM
只读存储器: ROM : 便宜,速度快 启动计算机的引导加载模块就
放在ROM中,一些I/O卡也采用ROM处理底层闪存 [非易失性]
闪存是可以擦除的,但相对RAM写入会有更高数量级的时间,另>外闪存擦除如果次数过多,会被磨损
磁盘
磁盘是一种机械装置,分为扇面、磁盘臂、读/写头、磁道等等
SSD固态硬盘和普通的机械硬盘的区别:
1.普通硬盘受自身机械性限制,数据读出和写入的速度较慢。固态硬盘启动快,没有电机加速旋转的过程,数据读出和写入速度快。
2.读写原理不一样:固态硬盘是主控读写nandflash,机械硬盘是磁头读取转动的磁碟。固态硬盘是按位读写,机械硬盘是顺序读写。
3.数据安全差异:普通机械硬盘可能造成数据受损,固态硬盘则不存在这种可能。
4.写入次数的差异:固态硬盘有写入次数限制,基本在1万次到10万次左右,基本能用5年。普通机械硬盘没有写入次数限制。
5.数据恢复差异:固态硬盘数据删除后无法再恢复,普通机械硬盘数据删除后可以通过一些软件进行数据恢复。
6.功耗差异:固态硬盘功耗相对较低,而普通机械硬盘功耗约为固态硬盘的2-3倍。
7.噪音差异:固态硬盘没有马达和风扇,工作时没有任何噪音。普通机械硬盘有马达,噪音和震动较大。
8.抗震能力差异:普通机械硬盘由于有磁头,抗震能力较差,固态硬盘则没有这种问题
等等
[固态硬盘]的结构由控制单元(主控芯片)和存储单元([闪存芯片])
两部分组成。而影响写入寿命问题,就出在闪存器件上。闪存存储单元的物理结构中
,用氧化物创建一个电场,电子穿过氧化物并储存电荷,记录一个电位值,即写入1位
数据,擦除数据会向相反方向发生同样事件。问题是电子穿过氧化物的次数越多,氧
化膜就会变的越弱,最终电场也不能阻止电子的自由活动了,这个单元就损坏了;因
此,写和擦都是会减少氧化膜的寿命的,制造工艺又限制了该膜的厚度,其存储单元
的寿命由此而来。
虚拟内存机制
将程序放在磁盘上,将主存作为一种缓存,用来保存最频繁使用的部分程序,这种机制需要快速的映像内存地址,以便把程序生成的地址转换为有关字节所在的RAM中物理地址,这种映像由CPU中的一个称为存储器管理单元的部件(简称MMU)来完成
在多道程序中,从一个程序跳转到另外一个程序,优势称为上下文切换,有必要对来自缓存的所有修改过的块儿进行写会磁盘操作,并修改MMU中的映像寄存器。
I/O设备
I/O设备分为两部分:设备控制器和设备本身
每类的设备控制器都是不同的,因此,需要不同的软件进行控制,专门和控制器对话,发出指令并接收响应的软件,这类软件成为设备驱动程序
在用户态运行的程序必须能够以某种受控的方式访问设备
所有的设备寄存器的集合构成了I/O端口空间
设备驱动装入操作系统有三个途径
1.内核和驱动程序重新连接,然后重启系统
2.在操作系统文件中设置一个入口,并通知该文件需要一个设备驱动程序,然后重启系统
3.热加载,无需重启,目前正在慢慢普及(动态可装载设备驱动程序)
网友评论