本文由是阅读该文章做下的笔记。

CPU分内核与用户模式。

三言蔽之

内核模式下,应用可以直接存取内存,能够执行任何CPU指令。一般来说驱动运行在该模式下。
内核模式的应用一旦崩溃,整个操作系统都会崩溃。(所以驱动必须要非常稳定,否则蓝屏常在你身边)

用户模式就是我们一般应用所在的模式。用户模式下,应用想要存取硬件或者内存,必须通过系统API。由于与底层被隔离开来,所以用户模式下的应用崩溃通常不会影响到系统正常运行。

硬件决定

大专栏  CPU内核、用户模式p>内核模式和用户模式不是我们定义出来的在软件层面的一个概念,而是由CPU架构所决定的。

通常CPU分为0~3总共四个层。其中我们一般用的是0层内核模式以及3层用户模式。1和2一般少用。

其中,又有人提出-1层,这就是我们平常说的x86硬件下的CPU虚拟化(手机模拟器一般都要开这个)。

驱动

驱动一般会运行在内核模式以及用户模式下。

以下为猜测:

在OpenGL渲染过程中,会在用户模式下维护一个命令队列,切换到内核模式后再一次性发送到驱动,由驱动发送给显卡。

切换代价

在用户模式和内核模式之间切换,是有代价的,而且代价十分大。

最新文章

  1. python第三方库学习(2):requests
  2. sys.dm_tran_locks,
  3. 给Linux装图形化界面
  4. JS抽奖功能代码
  5. 浏览器兼容性之JavaScript篇
  6. 删除mysql
  7. JAVA计算文件大小
  8. memcached全面剖析--3
  9. javascript新的原生态API
  10. vsftp配置主动模式和被动模式
  11. 使用 Microsoft.ApplicationBlocks.Data SqlHelper 查询超时以及解决方案
  12. cf459C Pashmak and Buses
  13. yw info
  14. Web 前台优化
  15. 解决kali linux 开启ssh服务后连接不上的问题
  16. hdu 3015
  17. Postman Postman测试接口之POST提交本地文件数据
  18. 第一篇:Hadoop简介
  19. Docker源码分析(五):Docker Server的创建
  20. libevent学习笔记 —— 第一个程序:计时器

热门文章

  1. Jshint 安装方法
  2. 201709-1 打酱油 Java
  3. Java之创建线程的方式四:使用线程池
  4. 对Java面向对象中多态的理解
  5. zabbix使用短信猫实现报警
  6. PyCharm 代码行出现多余的数字
  7. python开源库——h5py快速指南
  8. leetcode中二分查找的具体应用
  9. UML-领域模型-定义
  10. CodeForces 992B Nastya Studies Informatics + Hankson的趣味题(gcd、lcm)