cpu如何维护自己控制权的
关键概念
用户模式:受限的指令。
内核模式:所有指令
有些操作需要用到特权指令,这个只有在内核模式下才可以运行。
操作系统重获控制权有3种方式:
- 进程进行系统调用
- 进程出错,如访问了非法内存等。(会trap 到 内核)
- 时钟中断。
其中时钟中断很重要,是硬件支持。如果没有时钟中断,然后进程又不进行系统调用,也不出错(譬如:啥也不干的无限循环),这样操作系统无法获得控制权。
受限直接运行
时钟中断
实践中的指导意义
记住1点: 系统调用其实是昂贵的。
为了减少系统调用,有下面2种经典的运用。
-
缓存数据。譬如I/O缓冲。 一般一次读取1024个字节,开辟一块内存,存下这1024个字节。。 用户程序读取时,先读取这个内存缓冲区。这样比直接I/O访问,1个字节一个字节调用1024个 系统调用性能高很多。
-
有的程序会封装内存管理。类似于I/O缓冲。 内存管理程序也是每次调用系统调用时尽量多申请点,自己拿个大内存空间。然后应用程序申请内存时,从这个托管的内存空间中分配出去。也就是 在 操作系统之外重新实现了1套内存分配管理。 目的其实也是为了降低系统调用的次数。
参考
[[操作系统导论]]