【操作系统笔记】第六章——受限直接执行
受限运行协议
用户模式 user mode:在用户模式下运行的代码会受到限制,如用户模式下,进程不能发出I/O,这样会引发异常,可能导致操作系统终止该进程
内核模式 kernel mode:操作系统就在内核模式下运行,在此模式下,运行的代码可以做它想做的所有事,包括特权操作,发出I/O和执行所有类型的受限制操作
受限直接运行有两个阶段:
1,系统引导时:内核初始化陷阱表,CPU记住陷阱表的位置以供使用
2,运行进程时:在执行进程前,操作系统为进程初始化了一些内容,接着转入用户模式运行程序。当进程发起系统调用时,会重新陷入操作系统,然后通过陷阱返回,并将控制权重新交给进程
通过让进程在用户模式和内核模式间切换,就完成了保护操作系统的控制权,且限制进程的运行,让它不能做不应该做的事
操作系统通过时钟中断重新获得了CPU的控制权,那么它需要决定:是继续运行当前的进程,还是切换其它进程,这个决定是由调度程序做出的,它是操作系统的一部分,这里先说明如何切换进程
如果决定切换进程,OS就会执行一些底层代码,即上下文切换:操作系统为当前正执行的进程保存它寄存器的值,并为即将执行的进程恢复寄存器的值,这样操作系统可以确保从内核模式返回时,去执行另一个进程而不是之前运行的进程