如何使运行于用户空间的CPU转入系统空间
2014-11-06 15:05
211 查看
【1】、中断(Interrupt)。在开启了终中断机制的情况下,只要外部设备的请求的到来,CPU就自动转入系统空间,并从系统空间的某个预定的地址开始执行指令,从而可以在系统空间对外部设备的中断请求做出反应,或者说提供服务。中U盾那发生在两条指令之间,而不会使正在执行的指令半途而废。
【2】、异常(Exception)。 不管是在用户空间还是系统空间,指令执行失败都会引发一次异常,CPU也会因此转入系统空间,并从某个预定的地址开始执行指令。异常在形式上与终端非常相似,只是异常发生在执行一条指令的过程中,而不是两条指令之间。所以当前的指令执行已经半途而废。
【3】、自陷(Trap)。为了让CPU能够主动的进入系统空间,绝大多数CPU都设有专门的自陷指令,系统调用通常就是靠自陷实现的,一执行这样的指令,CPU就转入系统空间,从一个制定的地址执行开始执行指令。自陷指令在形式上也与终端相似,就像是CPU主动发出的中断请求。
【2】、异常(Exception)。 不管是在用户空间还是系统空间,指令执行失败都会引发一次异常,CPU也会因此转入系统空间,并从某个预定的地址开始执行指令。异常在形式上与终端非常相似,只是异常发生在执行一条指令的过程中,而不是两条指令之间。所以当前的指令执行已经半途而废。
【3】、自陷(Trap)。为了让CPU能够主动的进入系统空间,绝大多数CPU都设有专门的自陷指令,系统调用通常就是靠自陷实现的,一执行这样的指令,CPU就转入系统空间,从一个制定的地址执行开始执行指令。自陷指令在形式上也与终端相似,就像是CPU主动发出的中断请求。
相关文章推荐
- Linux系统下,如何将运行程序的用户从root转到一般用户?
- 如何把公司要求的一些文件预到android 用户空间系统空间
- 对于内核输入系统驱动(例如keypad, sensor, touch panel),内核如何发送事件给用户空间
- 如何在适合OpenCart系统运行的美国服务器空间建立SMTP服务
- Win如何开启多核处理器多核CPU启动系统让电脑运行速度更快
- 如何在linux系统的服务器上创建用户,并运行python图形化界面
- 如何在适合OpenCart系统运行的美国服务器空间建立SMTP服务
- 当 Activity 以全屏模式运行时,如何允许 Android 系统状态栏在顶层出现,而不迫使 Activity 重新布局让出空间
- 1)实际时间(real time): 从command命令行开始执行到运行终止的消逝时间; 2)用户CPU时间(user CPU time): 命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和; 3)系统CPU时间(system CPU time): 命令执行完成花费的系统CPU时
- 如何使用proc文件系统让用户空间和内核空间进行交互
- 当 Activity 以全屏模式运行时,如何允许 Android 系统状态栏在顶层出现,而不迫使 Activity 重新布局让出空间?
- ARMSYS2410-MULTIUAR 如何让系统启动时自动运行用户程序
- 如何在适合OpenCart系统运行的美国服务器空间建立SMTP服务
- Linux的内核空间和用户空间是如何划分的(以32位系统为例)?
- mysql用户下的perl命令占用cpu高,导致系统运行缓慢
- 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink
- 如何确定用户运行的是哪个Wi n d o w s 版本?即GetVersion()与GetVersionEx()的区别.
- 借宝地宣传一下:海洋工作室sps2007版用户系统正式运行!
- 如何获取多核、多cpu系统中指定cpu的序列号
- Linux 系统内核空间与用户空间通信的实现与分析