7.Windows线程切换_时钟中断切换
绝大部分系统内核函数都会调用SwapContext函数,来实现线程的切换,那么这种切换是线程主动调用的。
如何中断一个正在执行的程序?
- 异常 比如缺页,或者INT N指令
- 中断 比如时钟中断
系统时钟
- Windows系列操作系统: 10-20毫秒
- 如要获取当前的时钟间隔值,可使用Win32API:
GetSystemTimeAdjustment
ida中ALT+T搜索_IDT 点进去
这个api就是0x30,追进去
这两个api不是当前模块的是HAL.dll中的,下面来打开它
跟到里面又发现一个不是hal.dll中的api,它属于ntoskrnl.exe中的调来调去最终都要会到ntoskrnl。
KiDispatchInterrupt中调用了SwapContext,所以当触发了时钟中断也会使线程切换。
时钟中断执行流程
线程切换的几种情况:
- 主动调用API函数
- 时钟中断.
- 异常处理
如果一个线程不调用API,在代码中屏蔽中断(CLI指令),并且不会出现异常,那么当前线程将永久占有CPU,单核占有率 100% 2核就是50%
7.Windows线程切换_时钟中断切换相关推荐
- 6.windows线程切换_主动切换
ida 分析KiSwapThread sub esp, 10h mov [esp+10h+var_4], ebx ;保存当前线程寄存器现场 mov [esp+10h+var_8], esi mov [ ...
- macf键与功能键切换_功能切换(功能开关或功能标志)与功能分支
macf键与功能键切换 功能分支 如果使用分支,则表示不进行持续集成/部署/交付 ! 您可能具有很好的单元测试 代码覆盖率 ,可能正在执行TDD ,可能已经以BDD格式编写了功能和集成测试,并且可能在 ...
- python版本切换_怎么切换python版本
展开全部 (1)分别安2113装 python-2.7.12.amd64.msi python-3.5.2-amd64.exe (python官网下载的) 顺序无所谓(为5261了看着4102方便,我 ...
- java中英文切换_中英文切换
//首页 var zh_index = { "index1":"首页", "index2":"产品实例" }; var ...
- (62)时钟中断切换线程,时间片管理, KiDispatchInterrupt
一.回顾 前面的课程,我们分析了API主动切换线程的流程,分析了 KiSwapContext 和 SwapContext 函数,这两个是切换线程的函数.分析了 KiSwapThread 函数,功能是找 ...
- 进程线程004 Windows线程切换的三种方式
文章目录 主动切换(调用API) KiSwapContext函数分析 哪些API调用了SwapContext函数 总结 时钟中断切换 如何中断一个正在执行的程序 系统时钟 时钟中断的执行流程 总结 时 ...
- 9.Windows线程切换_TSS
SwapContext这个函数是Windows线程切换的核心,无论是主动切换还,是系统时钟导致的线程切换,最终都会调用这个函数. 在这个函数中除了切换堆栈以外,还做了很多其他的事情,了解这些细节对我们 ...
- java实现windows壁纸自动下载与切换
壁纸风波 许多有内涵的朋友都喜欢将自己的电脑桌面壁纸设置为美女图片,并且隔一段时间,自动更换,看起来十分炫酷.的确,用过windows的朋友们都知道,windows的个性化设置里面,可以将壁纸设置幻灯 ...
- 解决Windows对JDK默认版本切换问题
解决Windows对JDK默认版本切换问题 参考文章: (1)解决Windows对JDK默认版本切换问题 (2)https://www.cnblogs.com/ll409546297/p/659317 ...
最新文章
- rabbitmq 网络分区错误
- 新手理解的JS原型链
- 如何迁移开源 Flink 任务到实时计算Flink版?实战手册来帮忙!
- Swift中文教程(十二) 下标
- 分布式SQL学习总结(1)——蚂蚁金服资深总监韩鸿源:像使用集中式数据库一样使用OceanBase分布式数据库
- 我的java学习之旅班刊_我的java学习路程
- JDK17 带来什么新特性?网友:不好意思,我还在JDK6踏步走...
- 查看谁连接oracle,oracle如何查看当前有哪些用户连接到数据库
- 必备技能!聊聊二维码扫码登录的原理
- 什么是工业DTU?工业DTU特点及应用领域分析
- 支付宝扫一扫连接WIFI
- C0G(NP0) 电容的耐压测试
- pands 画图 调整大小_关于cad画图比例,图纸比例,打印比例问题详解
- C++数据结构课程设计
- C++ 类的交叉引用
- mysql xpath注入工具_WEB安全第四篇--与数据库的亲密接触:SQL注入攻击
- C C++ 调用第三方DLL库失败 LoadLibrary 返回NULL 并报 126 错误 解决办法
- 2021年Java工程师飞升成神之路
- 100道Java并发和多线程面试题
- 2020 BAPC Preliminaries 题解
热门文章
- WSL:WSL(Windows Subsystem for Linux)的简介、安装、使用方法之详细攻略
- ML之XGBoost:XGBoost案例应用实战(原生接口实现+Scikit-learn接口实现)
- DL之pix2pix(cGAN)之AC:基于pix2pix(cGAN)模型实现对图像实现Auto Color自动上色技术
- 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2(二)
- 快速认识网络爬虫与Scrapy网络爬虫框架
- Xshell-密钥登录
- session 重写进入redis测试
- JSP中内置对象pageContent的使用
- 0523-学习进度条
- css3 点击爆炸下落