Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 在创建fd时,如何在内核中对用户进行上下文切换?_Linux Kernel - Fatal编程技术网

Linux kernel 在创建fd时,如何在内核中对用户进行上下文切换?

Linux kernel 在创建fd时,如何在内核中对用户进行上下文切换?,linux-kernel,Linux Kernel,在创建fd时,如何在内核中对用户进行上下文切换?因为发生用户到内核上下文切换,它将触发一个INT-ox80信号。但是在内核到用户上下文切换中,它是如何发生的?您应该阅读一些关于操作系统的内容,比如(可免费下载)。您还可以阅读有关Linux内核实现的书籍。别忘了学习Linux的源代码并观看 内核为用户模式应用程序创建应用程序的通常方式是通过 在处理该系统调用的过程中,可以调用并生成 对于open,内核需要执行一些操作,并且该处理可能需要磁盘访问(对于尚未位于中的文件元数据),因此可能需要一些上下文

在创建fd时,如何在内核中对用户进行上下文切换?因为发生用户到内核上下文切换,它将触发一个INT-ox80信号。但是在内核到用户上下文切换中,它是如何发生的?

您应该阅读一些关于操作系统的内容,比如(可免费下载)。您还可以阅读有关Linux内核实现的书籍。别忘了学习Linux的源代码并观看

内核为用户模式应用程序创建应用程序的通常方式是通过

在处理该系统调用的过程中,可以调用并生成

对于
open
,内核需要执行一些操作,并且该处理可能需要磁盘访问(对于尚未位于中的文件元数据),因此可能需要一些上下文切换。只要内核需要一些磁盘访问,它就会进行上下文切换(让其他可运行的进程运行)。在磁盘控制器(或控制器)通过some发出磁盘块传输结束的信号后,内核可能会重新安排进程

记住,一次磁盘访问可能需要十几毫秒;在此期间,可能会发生多个上下文切换,处理器有时间执行数百万条机器代码指令

还可以阅读和。这些概念确实适用于内核及其进程调度器

还可以在Linux计算机上试用
/proc
(请参阅)。例如,在一两秒钟内重复
cat/proc/interrupts
命令两次,并观察差异。您将了解到,上下文切换在您的计算机上经常发生(可能每秒一千次切换)

另见

顺便说一句,最近的linux系统没有使用
int0x80
机器指令切换到内核模式(但是一些
syscenter
SYSCALL
机器指令)。另见