本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址:www.dtdishui.com 论坛地址:www.dtdebug.com QQ交流 :49759272.

Slides:



Advertisements
Similar presentations
职业指导服务系统 欢迎了解职业指导服务系统!
Advertisements

《高等学校创新能力提升计划》 的情况介绍 2012年3月.
市场营销策略模块 项目十一 促销策略--营业推广
交通大学教职工团购车险方案
房型介紹 單日 10天以上 托嬰照護 月子餐 VIP 特約 溫馨 精緻
第十章 报关.
服 务 管 理 新 概 念 服务行业管理软件专业开发商.
臺中市僑忠國小 101年度圖書館閱讀教師實施計畫
第五章 一般进出口货物报关程序.
計算機結構 – 概論 陳鍾誠 於金門大學.
实践演练 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
本节内容 KPCR:CPU控制区(Processor Control Region) 视频提供:昆山滴水信息技术有限公司 官网地址:
北楚教你答题滔滔不绝停不下来 ——如何答题丰满有内容.
本节内容 字符编码 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
_01Win32简介与IDE简介 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
_08遍历物理网卡 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
本节内容 消息的分发 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
项目四 客房部对客服务.
第二章 Java基本语法 讲师:复凡.
_04Combox控件和ListBox控件的使用
_05MessageMap的原理 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
面向非连接的 SOCKET编程 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Select模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
编译OpenSSL 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
_08文件的基本操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 Private Memory 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
虚拟机加密,是把源程序的X86指令变成自定义的伪指令,执行时内置在保护程序中的VM就会启动,读取伪指令,然后解析执行
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 线性地址的管理 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 模块隐藏 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
3.1私有内存的分配.
本节内容 消息的接收 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
<编程达人入门课程> 本节内容 学习路线 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
_03宽字符与Unicode编程 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
本节内容 结构体.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
本节内容 指针类型的使用 视频提供:昆山爱达人信息技术有限公司.
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
阻塞式模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
MFC的六大核心 机制 命令传递 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 导出表 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
大数据搜索挖掘实验室 第五章 子程序设计 张华平 副教授 博士 Website: 大数据搜索挖掘实验室
本节内容 如何调试驱动程序? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 结构体数组 视频提供:昆山爱达人信息技术有限公司.
服務套裝.
编程达人-- 从零开始学UI系列教程 第九节、布尔运算 先行者 YC.
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
本节内容 SEMAPHORE 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
本节内容 进程结构体EPROCESS 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
本节内容 this指针 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 任务段 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
Presentation transcript:

本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址:www.dtdishui.com 论坛地址:www.dtdebug.com QQ交流 :49759272

内容回顾 在之前课程里面讲到了线程的等待链表和调度链表 这节课我们开始学习Windows的线程切换,线程切换比较复杂 为了更好的学习,我们要先读一份代码: 模拟Windows线程切换(ThreadSwitch)

1、关键结构体 //线程结构体(仿EHREAD) typedef struct { char *name; //线程名 相当于线程TID int Flags; //线程状态 int SleepMillisecondDot; //休眠时间 void *InitialStack; //线程堆栈起始位置 void *StackLimit; //线程堆栈界限 void *KernelStack; //线程堆栈当前位置,也就是ESP void *lpParameter; //线程函数的参数 void (*func)(void *lpParameter); //线程函数 } GMThread_t;

2、调度链表 //线程结构体数组 extern GMThread_t GMThreadList[MAXGMTHREAD]; name Flags ... 所谓创建线程,就是创建一个 结构体,并且挂到这个数组中 此时的线程状态为:创建

3、初始化线程堆栈 StackLimit eax edx ecx ebx esi edi ebp Startup 9 GMThreadp name Flags ... 低 KernelStack 高 InitialStack

4、线程切换 当前线程 目标线程 ... eax edx ecx ebx esi edi eax edx ... ebp Startup 9 GMThreadp 保留ESP 切换ESP

5、线程的第一次运行: (参见课堂演示)

6、模拟线程切换总结: 1) 线程不是被动切换的,而是主动让出CPU. 2) 线程切换并没有使用TSS来保存寄存器,而是使用堆栈. 3) 线程切换的过程就是堆栈切换的过程.

7、课后练习: VIP会员可见