1.
2. 为了提高计算机的效率,人们想出了流水线结构,将计算机的指令分拆为多个步骤,流水线上每个梯级都可以容纳一条指令并同时执行。为了进一步提高计算机的效率,人们又设计了多流水线,超标量计算,超长指令字等多指令发射机制。
3. 存储器访问时间和容量
4. 我们将计算机所有的硬件视为一种资源,将计算机上运行的所有程序视为一个使用资源的人,那么就存在了资源的共享,竞争,与保护。为了区分不同的程序可以使用的资源的权限,我们发明了内核态(特权态)和用户态的概念。可以占用的资源越多的人,那么社会对它的要求也就越高,社会责任越大,同样,内核态此时的安全性,实时性和可靠性显得十分重要。一个程序到底应该运行在内核态,还是用户态?很明显也是取决于它对资源和效率的要求。
5. 通常什么样的功能应当在内核态下实现?
从保障计算机安全的角度来说,CPU和内存的管理是必须在内核态下实现的。诊断和测试程序需要访问计算机的所有资源,否则很难准确判断计算机是否正常,所以也需要在内核态下实现。I/O管理,要访问各种设备和底层的数据结构,也是放在内核态实现。而文件管理可以一部分在内核态,一部分在用户态。
6. 所谓的用户态,内核态,实际上是处理器的一种状态,而不是程序的状态。
7. 处理器是如何限制程序去使用各样资源?
要限制一个程序对资源的访问,就需要对程序执行的每一条指令进行检查才能完成,而这种检查是地址翻译,程序发出的每一条指令都需要经过这个地址翻译器,而通过对地址翻译器的控制,就可以限制程序对资源的访问。最简单的,当程序处于内核态时,可以绕过内存地址翻译器而直接执行相关指令。
8. 进程的概念?
进程就是进展中的程序,操作系统对进程的管理通过进程表来实现,进程表中存放了关于进程的一切信息。进程与进程之间可以实现通信,竞争,同步等。内存是进程进展的场所,内存管理的目的就是实现数据读写具有高效率,高安全,位置透明性。文件是操作系统提供的外部存储设备的抽象,是程序和数据的最终存放地点。
9.