如何使运行于用户空间的CPU转入系统空间

来源:互联网 发布:聪明的程序员用delphi 编辑:程序博客网 时间:2024/06/01 10:05
【1】、中断(Interrupt)。在开启了终中断机制的情况下,只要外部设备的请求的到来,CPU就自动转入系统空间,并从系统空间的某个预定的地址开始执行指令,从而可以在系统空间对外部设备的中断请求做出反应,或者说提供服务。中U盾那发生在两条指令之间,而不会使正在执行的指令半途而废。
【2】、异常(Exception)。 不管是在用户空间还是系统空间,指令执行失败都会引发一次异常,CPU也会因此转入系统空间,并从某个预定的地址开始执行指令。异常在形式上与终端非常相似,只是异常发生在执行一条指令的过程中,而不是两条指令之间。所以当前的指令执行已经半途而废。
【3】、自陷(Trap)。为了让CPU能够主动的进入系统空间,绝大多数CPU都设有专门的自陷指令,系统调用通常就是靠自陷实现的,一执行这样的指令,CPU就转入系统空间,从一个制定的地址执行开始执行指令。自陷指令在形式上也与终端相似,就像是CPU主动发出的中断请求。
0 0
原创粉丝点击