内核级线程特点:纯内核级线程中,线程
• •
程原语来创建其他线程。
线程创建:线程执行中可通过内核创建线 线程调度:内核要为整个进程及进程中
的单个线程维护现场信息,应在内核中建立和 维护PCB及TCB,内核的调度是在线程的基础 上进行的。
内核级线程主要优、缺点
主要优点:
多处理器上,内核能同时调度同一进程中多个 线程并行执行。 • 进程中的一个线程被阻塞了,内核能调度同一 进程的其它线程占有处理器运行。 • 内核线程数据结构和堆栈很小, KLT 切换快 , 内核自身也可用多线程技术实现,能提高系统的 执行速度和效率。 •
线程调度和进程调度间的关系(1)
假设进程 B 正在执行线程 2 ,可能出现 下列情况。 第一种情况: • 进程B的线程2发出一个封锁B的系统调 用 ( 如 I/O 操作 ) ,通知内核进行 I/O 并将进 程 B 臵为等待状态,按照由线程库所维护 的数据结构,进程B的线程2仍处在运行态。 线程 2 并不实际地在一个处理器上运行, 而是可理解为在线程库的运行态中。这时, 进程B为等待态,线程2为线程库运行态。 此为模式切换时出现的线程库运行态
3、进程及控制和使用的资源
访问令牌
进程
句柄1 句柄2 句柄3
…
VAD
虚拟地址空间块 VAD VAD VAD
对象句柄表
可用对象
文件x 信号量y 区域 z
令程以及控制和使用的资源
对象和句柄间的关系
应用程序
句柄 用户态 核心态
执行体对象
内核对象
执行体 内 核
线程又称轻量进程
• 线程运行在进程的上下文中 , 并 使用进程的资源和环境。 • 系统调度的基本单位是线程而 不是进程 , 每当创建一个进程时, 至少要同时为该进程创建一个 线程,否则该进程无法被调度 执行。