机制:受限直接执行

这里的受限的意思是进程的某些行为,这里的直接执行就是直接执行的意思。

这个题目可以翻译成,对于进程想要做一些对系统可能存在威胁的操作的时候,操作系统应该怎么去限制它的行为,保证它不把系统或者机器搞坏。

为什么我们需要机制,也就是受限直接执行

  • 操作系统通过时分共享(time sharing)CPU,来实现虚拟化
  • 实现中会遇到一些问题
    1. 性能问题,如何在不增加系统开销的情况下实现虚拟化
    2. 控制权:在保证进程运行的同时保持对系统的控制

也就是说,如何高效可控的实现CPU的虚拟化是机制,也就是受限的直接执行想要解决的问题。

首先是无限制的直接执行

  • 在进程列表中为要执行的进程创建一个进程条目,为其分配一些内存,并将程序代码加载到内存中,找到程序入口并开始执行,在执行的过程中,操作系统对运行的程序没有任何的限制。
  • 会产生的问题
    1. 如何”监督“这个程序,保证他不做我们不希望他做的事情
    2. 如何让这个程序停下来并切换到另一个程序。

利用用户模式和核心模式来解决我们所面临的问题

  • 在用户模式下,所有运行的代码都会受限制,这些代码无法直接使用系统的核心功能,如I/0请求。如果它这样做了,系统就有可能终止这个进程。在用户模式下只能执行非特权的操作,而不能执行特权操作
  • 在内核模式下,代码可以执行任何操作指令,操作系统就是以内核模式进行的。在核心模式下可以执行特权操作。
  • 为了方便用户执行某些不会危及系统特权操作(比如磁盘读取),操作系统提供了系统调用,允许这些操作。
  • 那么系统调用是如何被执行的呢?
    • 要想执行系统调用,程序必须执行特殊的陷阱指令。从用户模式转换为核心模式,开始执行
    • 执行完成之后,操作系统调用一个特殊的从陷阱返回的指令,回到用户模式
    • 注意在执行陷阱指时,要确保所有寄存器的内容被保存起来。
  • 陷阱如何知道在OS内运行那些代码?
    • 内核通过在启动时设置陷阱表来实现。这也是一个特权指令。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容