①返回用户态 ②执行陷入(trap)指令
③传递系统调用参数 ④执行相应的服务程序
正确的执行顺序是 。
②->③->①->④
②->④->③->①
③->②->④>①
③->④->②->①
解析:
执行系统调用的过程是这样的:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。所以C正确。
传递系统调用参数:
陷入指令:
切换到内核态:
保存返回地址:
执行内核态服务程序:
返回用户态:
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
解析:
执行系统调用的过程是这样的:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。所以C正确。