永发信息网

计算机在运行时,是如何确定当前处于用户态还是内核态的

答案:1  悬赏:70  手机版
解决时间 2021-03-31 08:39
计算机在运行时,是如何确定当前处于用户态还是内核态的
最佳答案
对于一个处于RUNNING状态的进程, 如果此时它没有占用CPU, 则在上次发生进程切换时, 它可能运行于用户态或内核态.
假设在发生进程切换时它运行于内核态, 那它可能是通过系统调用或者是异常(如缺页异常)的方式进入到内核态的.
又假设在发生进程切换时它运行于用户态, 那它只能是通过中断进入到内核态. 进而被切换掉.
而通过中断 系统调用或异常这三种方式进入到内核态时, 有一个不同之处就在于在压栈时, 内核栈中的出错代码那个地方.
如果是由于中断进入到内核, 那么在该进程的内核栈的EIP指针下面压入栈的值应该是 (中断号-256)
而如果是由于异常进入到内核的, 那么在该位置处, 压入栈的值应该是异常的出错代码, 并且在压栈时会将其再设置为-1; 如果是由于系统调用进入到内核的, 那么在该位置处, 其值为系统调用号.

望采纳,谢谢!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一米零五等于多少尺
马为什么要钉马掌呢?为什么要给马“穿鞋子”
我40多了,为什么性欲还那么强
笔试第一,需要报个面试班吗
花自飘零水自流一种相思两处闲愁是什么歌?
初一语文课文猫原文?
薄烟应念bao还是bo
怎么做长江白糖饼?
中国联通信号塔对附近居民多少米内辐射严重吗
佳洁士牙贴去哪买 多少钱
远日点和近日点的具体时期?
瓜棚怎么搭
590P直流调速器程序使用电脑怎么上传和下载
霸道天下神兵在手天下我有
13除以7等于多少化为3位小数
推荐资讯
求教复旦附中的自主招生该怎么准备
730÷(5x73)简便计算
1000RT的特灵冷冻机,RT什么意思
世界城市发展最快的时期是A.产业革命以前B.产
象征主义源于哪国?
俄罗斯帝国怎么变成苏联
湖北理科考了326想去本科学校读3+2请问那个学
分道扬镳的镳是什么意思?
小牛N1S目前有几款车型啊?
试求如图2-49所示电路的等效电阻Rab 电路基础
说个歌词看谁知道歌名
关于HIV检测值
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?