reactos操作系统实现(41)
来源:互联网 发布:mysql修改数据库密码 编辑:程序博客网 时间:2024/05/06 14:30
当线程初始化成功后,是怎么样放到推迟就绪队列的呢?通过下面这几个函数的分析,就会了解这个问题了。从以前的分析可以知道是调用函数KeReadyThread来执行的,这个函数的代码如下:
#001 VOID
#002 NTAPI
#003 KeReadyThread(IN PKTHREAD Thread)
#004 {
这里参数Thread就是刚刚创建的线程。
#005 KIRQL OldIrql;
#006 ASSERT_THREAD(Thread);
#007 ASSERT_IRQL_LESS_OR_EQUAL(DISPATCH_LEVEL);
#008
锁住分发器的自旋锁,以便原子操作。
#009 /* Lock the Dispatcher Database */
#010 OldIrql = KiAcquireDispatcherLock();
#011
设置线程为就绪状态。
#012 /* Make the thread ready */
#013 KiReadyThread(Thread);
#014
释放分发器的自旋锁。
#015 /* Unlock dispatcher database */
#016 KiReleaseDispatcherLock(OldIrql);
#017 }
在这个函数里主要就是同步了分发器的自旋锁,然后用调函数KiReadyThread来进一步设置线程就绪状态。
- reactos操作系统实现(41)
- reactos操作系统实现(1)
- reactos操作系统实现(2)
- reactos操作系统实现(3)
- reactos操作系统实现(4)
- reactos操作系统实现(5)
- reactos操作系统实现(6)
- reactos操作系统实现(7)
- reactos操作系统实现(8)
- reactos操作系统实现(9)
- reactos操作系统实现(10)
- reactos操作系统实现(11)
- reactos操作系统实现(12)
- reactos操作系统实现(13)
- reactos操作系统实现(14)
- reactos操作系统实现(15)
- reactos操作系统实现(16)
- reactos操作系统实现(17)
- 学习linux内核
- 智能指针——类指针成员的复制
- 编程实现可执行文件的数字签名验证及证书安装
- 学习笔记:水仙花数相关类
- JavaScript中的正则表达式解析
- reactos操作系统实现(41)
- [C++再学习系列] 深入new/delete:New的3种形态
- 资料收集
- WinCE基础知识(二):WinCE 5.0 的目录结构
- 软件开发一点总结
- [32位汇编系列]003 汇编中__stdcall 调用约定以及参数传递
- FreeBSD7.0+postfix+sasl2+mysql+maildrop+ExtMan+Mailman+ClamAv完全安装
- LINUX下的21个特殊符号
- Memory management