线程 与 内核态

文章目录

      • 线程创建/切换需要内核态

线程创建/切换需要内核态

  • 线程需要在内核注册:线程本质是CPU执行流,而软件实体中 只有操作系统(内核)能够直接访问和管理物理 CPU 核心或处理器。
    创建线程需在内核调度器数据结构中注册。
  • 线程需要自己的栈空间:整个进程的虚拟地址空间由内核负责管理,需要操作页表、设置内存映射等,这些操作都依赖于 CPU 提供的特权指令(如修改 CR3 寄存器),只能在核心态执行。用户态程序没有权限直接操作 MMU(内存管理单元)。
  • 线程切换需要保存当前线程的完整硬件上下文(寄存器状态、栈指针、程序计数器等),并恢复下一个线程的上下文。这种直接操作 CPU 状态的工作只能在核心态完成。
  • 内核会进行管理线程的创建,避免耗尽系统资源(CPU 时间、栈空间)

你可能感兴趣的:(2025,-,C++,数据结构)