- 博客(5)
- 问答 (1)
- 收藏
- 关注
原创 4.线程到底是如何调度和切换的?
4.线程到底是如何调度和切换的?本节内容将作为本篇文章最重要的部分来讲述,源代码才是我们的王道,在WRK-v1.2\base\ntos\ke\Yield.c文件里,我们终于看到代码了,需要说明的是这个部分并非是完整的调度,我们是从这个入手来看整个的过程,没有源代码的原理就是空中楼阁。NTSTATUS NtYieldExecution (VOID){ KIRQL OldIrq
2015-11-07 20:07:37 1174
原创 3.如何保存CPU现场信息
2.讲完了进程和线程之后,我们的核心问题块来临了,操作系统到底是采用什么策略进行进程或线程调度的,也就是决定让哪个线程或者进程进入到CPU里面去执行。在讲这个问题之前我们还有一个很重要的上课讲的内容,进程或者线程切换的时候,我们如何保存其运行信息?3.1线程的切换我花费好几个小时去找这个的内容,因为我借的两本书上都没讲代码,而是直接给出了原理和答案,好在我还是找到了线程切换的一部分代码,但
2015-11-07 20:06:35 5032
原创 2.进程和线程的结构是什么?
2.进程和线程的结构是什么?先不要着急它们是如何创建的,要说明白它们是如何被创建的是很复杂的,步骤繁多,而且这也不是我们的核心内容,在KPCRB这个非常复杂的结构里我们找到了KTHREAD的结构,接下来我们就去找找这个结构,在WRK-v1.2\base\ntos\inc\Ke.h里我们找到了这个结构的定义:typedef struct _KTHREAD { DISPATCHER_H
2015-11-07 20:04:50 960
原创 1.从一个问题开始
1.从一个问题开始: 操作系统如何得知当下正在运行的线程或者进程以及如何做到下一个将要运行的进程或线程? “Windows内核有一个特殊的基本要求,就是只要CPU在内核中运行,就得使段寄存器Windows系统中段寄存器FS在用户空间指向TEB、而在系统空间则指向KPCR。”关于FS段寄存器有什么作用以及如何指向KPCR和TEB数据结构那就是另外一个回事了,下面我们先来看一下K
2015-11-07 20:03:02 592
原创 windows平台内核代码探究
一拿到这个问题的时候,当时就感觉很不妙,众所周知微软对于自己的系统是何等的“吝啬”,拿到这种问题简直让我感到这问题很难研究下去,而且自己还是这个小组的组长,一下子感到自己身上的责任就重了许多,所以从16周开始我自己就开始进入到了这个题目的研究中去了,百度一下”windows处理机调度”第一页里真正有介绍这个的问题的只有http://blog.csdn.net/deyili/article/deta
2015-01-09 16:01:03 1409
空空如也
asp.net 鼠标悬停显示我自己在后台写的一些信息
2014-12-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人