首页 > 试题广场 >

执行系统调用的过程包括如下主要操作: ①返回用户

[单选题]
执行系统调用的过程包括如下主要操作:

返回用户态执行陷入(trap)指令

传递系统调用参数执行相应的服务程序

正确的执行顺序是

  • ②->③->①->④
  • ②->④->③->①
  • ③->②->④>①
  • ③->④->②->①
推荐

解析:

执行系统调用的过程是这样的:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。所以C正确。

发表于 2018-06-16 11:01:20 回复(0)
执行系统调用的过程是这样的:正在运行的进程先传递系统调用参数,然后由陷入(trap)指令负责将用户态转化为内核态,并将返回地址压入堆栈以备后用,接下来CPU执行相应的内核态服务程序,最后返回用户态。
发表于 2022-07-22 15:51:33 回复(0)
trap指令将用户态转为内核态
发表于 2022-10-24 22:44:05 回复(0)
  1. 传递系统调用参数:

    • 进程首先将系统调用所需的参数传递给相应的寄存器或内存位置,以供内核访问。
  2. 陷入指令:

    • 进程通过执行一个特殊的陷入指令(通常是软中断指令,如x86架构中的int或syscall指令)来请求进入内核态。这个指令会触发CPU将控制权切换到内核模式,同时将用户态的当前指令位置和标志寄存器状态保存起来。
  3. 切换到内核态:

    • 进程由用户态切换到内核态,这意味着它获得了更高的权限,可以执行特权指令,访问内核数据结构和硬件资源。
  4. 保存返回地址:

    • 在进入内核态之前,陷入指令通常会将用户态的返回地址(即下一条要执行的用户态指令的地址)压入堆栈,以便在系统调用完成后能够返回到正确的位置。
  5. 执行内核态服务程序:

    • 在内核态,CPU执行相应的内核态服务程序,这是特定系统调用的实际实现代码。服务程序会使用传递的参数来执行请求的操作。
  6. 返回用户态:

    • 当系统调用处理完毕后,内核会从堆栈中取出之前保存的用户态返回地址,将控制权切换回用户态,从原先的用户态程序位置继续执行
发表于 2023-10-20 21:35:22 回复(0)
操作系统调用的过程:正在运行的进程先传递系统调用参数,然后由trap 指令负责将用户态转化为内核态,并返回地址压入堆栈已备后用,接下来cpu 执行相应的内核态服务程序,最后返回用户态
发表于 2022-06-25 22:46:31 回复(0)