操作系统原理_《操作系统精髓与设计原理》读书笔记 1 :计算机部件

1b1fc7d57de281bce9e2dc0634bcbe75.png

计算机组成部件从顶层去看主要由处理器、存储器、IO设备等部件组成,每个部件内部又有多个模块组成,每个模块有不同的功能,各个部件之间由系统总线连接,系统总线保证了各个部件的通信。各个部件的具体连接细节见下图:

38d20ad2b76b31b2b5f802c34702a767.png

中央处理器(CPU)主要由存储器地址寄存器、存储器缓冲寄存器、程序计数器、指令寄存器、IO地址寄存器、IO缓冲寄存器和执行单元组成。

存储器地址寄存器和存储器缓冲寄存器的主要功能,存储器地址寄存器主要确定下一次读写的存储器地址,存储器缓冲寄存器主要存储即将写入存储器的数据或从存储器中读出的数据。同样,IO地址寄存器存储的是下一次使用的具体的IO设备,IO缓冲寄存器主要存储IO设备和处理器之间即将通信的数据。程序计数器(PC)和指令寄存器(IR)是一对相辅相成的模块,程序计数器用来存储指令的地址,指令寄存器用来存储指令的具体内容。

另外,中央处理器中一般包含两类寄存器:用户可见寄存器、控制和状态寄存器。用户可见寄存器存储速度快,但存储容量小,能减少使用机器语言和汇编语言的程序员对内存的访问次数,增强存储器的存储性能。对于高级语言(C语言、Java等),一般由优化编译器来决定哪些变量存放于用户可见寄存器中哪些变量存放在内存中。在某些高级语言(例如C语言)中,允许程序员自己指定将哪些变量存放在用户可见寄存器中。控制和状态寄存器主要用于存储控制器中的某些操作和状态,一般被具有某些特殊权限的操作系统特例去使用,用来控制程序的运行。

用户可见寄存器主要有:数据寄存器,地址寄存器组成。数据寄存器可以被程序员分配给若干个函数。地址寄存器主要存放数据和指令的地址。(有于用户可见寄存器存储容量非常少,所以大部分数据还是存放在内存中)

对于内存来说,首先要说明的是内存存储和磁盘存储的区别,内存主要存储程序和数据,当计算机处于断电状态的时候内存的数据会丢失,而磁盘存储的数据不会丢失。简而言之, 内存存储不具有持久性,而磁盘存储具有持久性。由图1.1可见,内存主要由指令和地址组成,指令按照地址顺序排列。

IO模块主要由各类IO设备(鼠标、键盘、打印机、显示屏等)组成,每个IO设备通过硬件接口连接到系统总线上,每个IO设备同时也具有确定的IO地址(通常由二进制表示),IO模块中有一个缓冲区,该缓冲区用来存放IO设备与CPU或者存储器将要进行通信的数据,这些数据在缓冲区等待调度器的调度。

下面我们来描述一个完整的指令执行过程(假设需要访问到控制器),IO设备输入指令进入缓冲区,然后指令通过系统总线到达控制器,控制器中程序计数器对该指令指定一个存储器地址,指令寄存器存储该指令的内容。此时将该指令打包成一个数据流,数据流由指令地址和指令共同组成,数据流根据指令地址沿着系统总线将指令送入存储器中的目标存储单元,然后根据指令在该存储单元进行读/写操作。执行完毕以后,新的数据流沿着系统总线回到控制器并进入到IO缓冲寄存器,然后新的数据流从IO缓冲寄存器中出发,沿着系统总线,到达由IO地址寄存器所确定地址的IO设备中。至此,完成一个完整的数据输入输出操作。

值得说明的是,有些IO操作只需要IO设备和存储器之间进行数据传输并不需要改变存储器中的数据,所以也可以不需要通过控制器直接对存储器进行访问。(详见冯 - 诺依曼结构的改进结构)

以上便是计算机基本部件的相关共能,当然在不同的部件之间也存在不同功能的总线(例如片内总线、IO总线等),但这属于计算机组成原理的相关知识,和本书的相关性不大,对于操作系统的掌握,了解系统总线在各个部件之间的数据传输功能即可。

本文是我在阅读《操作系统精髓与设计原理》时候的一些收获,肯定有很多不足之处,仅供参考,更多专业性的解读参见《操作系统精髓与设计原理》1.1—1.2节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值