当前位置:首页>Linux>Linux 内核核心子系统:进程、调度、中断

Linux 内核核心子系统:进程、调度、中断

  • 2026-04-13 08:47:54
Linux 内核核心子系统:进程、调度、中断

在Linux内核驱动开发与系统运行中,进程、调度与中断是支撑系统高效并发、硬件响应、任务管理的核心机制,三者相互配合,实现了用户态程序执行、内核态硬件处理、多任务有序调度的完整闭环。其中:

进程是系统资源分配与任务执行的基本单元;

调度器决定了进程/线程的执行顺序与时机;

中断则是内核响应硬件事件、异步处理外设请求的关键途径。

本文基于Linux内核底层原理,系统性梳理进程管理、调度机制、中断处理的全流程逻辑,覆盖核心概念、数据结构、API接口、实践约束与应用场景。

一、进程与线程:内核视角的执行单元

1.1 基础概念澄清:进程、线程与任务

在UNIX/Linux体系中,进程是资源拥有的最小单位,通过fork()系统调用创建,包含独立的虚拟地址空间(程序代码、数据、栈、共享库)和初始执行线程;线程是进程内部的执行流,通过pthread_create()创建,共享所属进程的地址空间,是内核调度的最小实体。

1.2 执行模式、地址空间与上下文的关系

在谈及进程与线程时,需要明确以下核心概念:

模式(Mode):是指CPU可执行特定操作的特权等级。

内核模式(Kernel Mode):CPU可执行其架构所允许的全部操作,包括执行所有指令、发起任意I/O操作、访问任意内存区域;

用户模式(User Mode):CPU被限制执行部分指令(尤其是可能改变整机全局状态的指令),且无法访问部分内存区域。

系统调用是用户态进入内核态的唯一合法途径,执行完成后返回用户态,全程保留进程上下文。

上下文(Context):代表一条执行流的当前状态。

进程上下文可理解为该进程关联的寄存器全部内容,包括程序计数器、栈指针寄存器等。当中断处理函数执行时,中断上下文会替换掉当前的进程上下文。

进程上下文:线程执行用户代码或系统调用时的环境,包含CPU寄存器、进程栈、地址空间,调度器可切换进程上下文;

中断上下文:硬件触发中断时,内核暂停当前进程,切换到中断处理程序的执行环境,无进程关联、无虚拟地址空间、不可调度、不可睡眠,仅用于快速处理硬件请求。

1.3 线程生命周期:状态流转全流程

线程从创建到终止,会经历一系列状态切换,内核通过状态标记控制线程的执行与等待,核心状态流转如下:

创建态:通过fork()/pthread_create()创建,分配task_struct与资源,进入就绪队列;

就绪态(TASK_RUNNING):线程具备执行条件,等待调度器分配CPU;

运行态(TASK_RUNNING):调度器选中线程,CPU执行其指令;

阻塞态:线程等待资源/事件,分为:

TASK_INTERRUPTIBLE:可中断睡眠,接收信号即可唤醒;

TASK_UNINTERRUPTIBLE:不可中断睡眠,仅等待硬件事件完成;

TASK_KILLABLE:可被致命信号(SIGKILL)唤醒的睡眠态;

终止态(EXIT_ZOMBIE):线程执行完毕,资源未完全释放,等待父进程回收;

状态切换的核心触发条件:调度器抢占、资源等待、信号接收、硬件事件完成。

二、进程睡眠与唤醒:等待队列与完成量机制

内核中大量场景需要进程等待资源(如I/O完成、硬件数据就绪),睡眠与唤醒是实现进程同步、避免CPU空转的核心机制,Linux提供等待队列与完成量两种标准实现。

2.1 等待队列(Wait Queue):基于事件的睡眠

等待队列是内核实现“进程等待特定事件,事件触发后唤醒”的基础机制,本质是管理睡眠进程的链表,适用于多进程等待同一事件的场景(如设备驱动的读阻塞)。

等待队列初始化

静态初始化:DECLARE_WAIT_QUEUE_HEAD(queue_name),定义全局等待队列;

动态初始化:init_waitqueue_head(&queue),用于设备私有数据中的等待队列。 驱动开发中,通常将等待队列嵌入设备私有数据结构,实现单设备的进程等待管理。

进程睡眠接口 内核提供多种睡眠函数,适配不同中断与超时场景:

wait_event(queue, condition):不可中断睡眠,仅当条件满足时唤醒;

wait_event_interruptible(queue, condition):可中断睡眠,接收信号即可唤醒(最常用);

wait_event_killable(queue, condition):仅被致命信号唤醒;

wait_event_timeout(queue, condition, timeout):带超时的不可中断睡眠,超时自动唤醒;

wait_event_interruptible_timeout(queue, condition, timeout):带超时的可中断睡眠(驱动首选)。 核心逻辑:进程检查条件不满足时,标记为睡眠态,加入等待队列,主动放弃CPU;条件满足后,调度器重新调度进程。

独占与非独占等待

非独占等待:wait_event_interruptible()默认模式,wake_up()会唤醒所有等待进程,适用于事件可被多进程共享(如数据可读);

独占等待:wait_event_interruptible_exclusive()wake_up()仅唤醒一个进程,适用于资源互斥访问(如设备锁)。

2.2 完成量(Completion):简化的同步机制

完成量是等待队列的轻量化封装,适用于单进程等待单事件的场景(如驱动初始化、资源加载完成),无需判断复杂条件,接口更简洁。

适用场景 完成量无复杂条件判断,仅用于“等待-触发”一次性同步,比等待队列更高效,常用于驱动探针、模块加载、硬件初始化完成通知。

2.3 延时与轮询:硬件等待的辅助机制

除睡眠等待外,内核提供延时函数与轮询接口,适配硬件操作的短时间等待场景。

I/O轮询接口 硬件无中断时,通过轮询寄存器状态等待事件,内核提供标准化轮询函数:read[bwlq]_poll_timeout(addr, val, cond, delay_us, timeout_us):循环读取I/O寄存器,直到条件满足或超时,避免自定义忙等循环,适配MMIO设备等待。

三、中断管理:硬件事件的内核响应机制

中断是CPU响应硬件异步请求的核心机制,当硬件(如网卡、串口、I2C设备)产生事件时,中断控制器向CPU发送信号,CPU暂停当前进程,执行中断处理程序,快速响应硬件请求,是驱动与硬件交互的关键。

3.1 中断注册与注销:驱动的中断绑定

Linux内核提供中断注册接口,自动处理资源释放,简化驱动开发,核心函数为devm_request_irq与request_irq。

中断注册函数

intdevm_request_irq(struct device *dev, unsignedint irq,    irq_handler_t handler, unsigned long irq_flags,     const char *devname, void *dev_id);

dev:设备结构体,用于自动释放中断;

irq:中断号,平台设备通过platform_get_irq()从设备树获取;

handler:中断处理函数指针;

irq_flags:中断标志,控制中断触发方式与共享属性;

devname:中断名称,显示在/proc/interrupts

dev_id:设备私有数据指针,不可为NULL,用于共享中断区分设备。

核心中断标志:

IRQF_SHARED:中断线共享,多个设备共用同一中断号;

IRQF_ONESHOT:线程中断专用,中断线保持禁用直到线程执行完毕;

IRQF_TRIGGER_RISING/FALLING/HIGH/LOW:中断触发方式(上升沿/下降沿/高电平/低电平)。

中断注销:托管式中断(devm_request_irq)无需手动注销,设备卸载时内核自动释放;非托管中断(request_irq)通过free_irq(unsigned int irq, void *dev_id)注销。

3.2 中断处理程序:约束与核心逻辑

中断处理程序运行在中断上下文,受严格约束,驱动开发必须遵守:

不可睡眠:不能调用kmalloc(GFP_KERNEL)mutex_lock()wait_event()等可能阻塞的函数;

不可访问用户空间:无进程上下文,无法使用copy_to/from_user()

快速执行:本地CPU中断禁用,长时间处理会阻塞其他中断,导致系统卡顿;

不可重入:同一中断线的处理程序串行执行,无需考虑并发(共享中断除外)。

中断处理程序原型:

irqreturn_thandler(int irq, void *dev_id);

返回值:IRQ_HANDLED(中断已处理)、IRQ_NONE(非本设备中断)、IRQ_WAKE_THREAD(唤醒线程中断);

核心逻辑:清除硬件中断标志 → 读取/写入硬件数据 → 唤醒等待进程 → 触发下半部处理。

中断查看:调试期间可以通过cat /proc/interrupts查看系统中断统计,包含中断号、CPU触发次数、中断名称、设备信息,用于驱动调试。

3.3 上半部与下半部:中断处理拆分

中断处理程序需快速执行,因此内核将中断处理分为上半部(Hard IRQ)与下半部(Bottom Half),拆分耗时逻辑:

上半部:即中断处理程序,运行在中断上下文,仅完成紧急操作:清除中断标志、读取硬件关键数据、标记事件、触发下半部,执行时间≤10μs。

下半部:运行在进程/软中断上下文,处理耗时操作(如数据拷贝、协议解析、I/O操作),允许睡眠与调度,内核提供三种下半部实现:

软中断(Softirq):内核子系统专用(网络、定时器),固定类型,驱动不直接使用;

线程化中断(Threaded IRQ):驱动首选,中断处理拆分到内核线程,允许睡眠,支持优先级调度;

工作队列(Workqueue):通用下半部机制,将任务交给内核线程执行,支持睡眠,适用于异步后台任务。

3.4 线程化中断:驱动友好的底半部方案

线程化中断将中断处理分为硬中断处理与线程处理,解决传统下半部无法睡眠的问题,是嵌入式驱动的主流方案。

注册接口:

intdevm_request_threaded_irq(struct device *dev,     unsigned int irq,    irq_handler_t hard_handler,    irq_handler_t thread_fn,    unsigned long flags,    const char *name,                                   void *dev_id);

hard_handler:上半部,仅清除中断,返回IRQ_WAKE_THREAD

thread_fn:下半部线程函数,允许睡眠、调用阻塞API;

优势:线程化中断运行在进程上下文,可使用互斥锁、I2C/SPI通信、睡眠函数,简化复杂驱动(如传感器、音频设备)的中断逻辑。

3.5 工作队列:通用异步底半部

工作队列是内核将任务延迟到内核线程执行的机制,适用于所有需要异步、可睡眠的底半部场景,与中断无关,可独立使用。

核心流程:

初始化工作:INIT_WORK(&work, work_func)

调度工作:schedule_work(&work),将任务加入内核工作队列;

驱动应用:中断上半部调度工作队列,下半部在工作线程中处理硬件数据、上报事件,实现中断快速响应与耗时操作分离。

3.6 中断与上下半部机制对比

四、并发与调度:内核的任务管理核心

4.1 调度器核心作用

Linux调度器负责管理TASK_RUNNING状态的线程,分配CPU时间片,实现:

公平调度:保证所有线程获得合理的CPU时间;

优先级调度:实时线程(RT)优先于普通线程(CFS);

抢占调度:高优先级线程可抢占低优先级线程的CPU;

负载均衡:多核系统中均衡线程调度,提升CPU利用率。

调度器的触发时机:时钟中断、线程睡眠/唤醒、线程创建/终止、系统调用返回。

4.2 进程上下文的调度与抢占

用户态抢占:调度器在用户态线程时间片用完、高优先级线程就绪时,抢占当前线程;

内核态抢占:配置CONFIG_PREEMPT时,内核态执行(除原子区外)可被高优先级线程抢占,降低系统延迟;

原子区:持有自旋锁、中断上下文、软中断上下文时,禁止抢占与睡眠,保障并发安全。

4.3 驱动中的调度影响

驱动运行在进程上下文(如系统调用、线程中断)时,可被调度器抢占,因此必须处理并发访问;运行在中断上下文时,不可调度,需快速执行。睡眠/唤醒机制是驱动与调度器交互的核心,实现进程等待与唤醒的无缝衔接。

五、实践总结:驱动开发中的核心应用

在Linux设备驱动开发中,进程、调度、中断机制的落地场景贯穿始终,核心应用总结:

阻塞I/O实现:驱动读/写接口中,用等待队列让进程睡眠,硬件中断触发后唤醒进程,实现数据就绪同步;

硬件中断响应:注册线程化中断,上半部清中断,下半部处理数据、上报输入事件(如触摸屏、键盘驱动);

异步任务处理:用工作队列处理硬件数据解析、协议封装,避免中断上下文耗时操作;

进程同步:通过完成量实现驱动初始化、硬件加载的同步等待;

并发安全:原子区禁止抢占,配合自旋锁保护硬件寄存器、共享数据,避免竞态问题。

六、结语

进程、调度与中断是Linux内核的三大基石,构建了“任务管理-执行调度-硬件响应”的完整体系。进程是资源与执行的载体,调度器保障多任务有序高效执行,中断实现硬件异步请求的快速响应,三者协同支撑了Linux系统的高并发、高实时、高稳定特性。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-15 14:55:28 HTTP/2.0 GET : https://f.mffb.com.cn/a/486162.html
  2. 运行时间 : 0.249789s [ 吞吐率:4.00req/s ] 内存消耗:4,749.84kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4e7e38538307891600f227829dbefe52
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000983s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001463s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000706s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000649s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001410s ]
  6. SELECT * FROM `set` [ RunTime:0.000587s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001548s ]
  8. SELECT * FROM `article` WHERE `id` = 486162 LIMIT 1 [ RunTime:0.001062s ]
  9. UPDATE `article` SET `lasttime` = 1776236128 WHERE `id` = 486162 [ RunTime:0.026171s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000715s ]
  11. SELECT * FROM `article` WHERE `id` < 486162 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001519s ]
  12. SELECT * FROM `article` WHERE `id` > 486162 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001136s ]
  13. SELECT * FROM `article` WHERE `id` < 486162 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004119s ]
  14. SELECT * FROM `article` WHERE `id` < 486162 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.019137s ]
  15. SELECT * FROM `article` WHERE `id` < 486162 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020377s ]
0.253791s