Windows
文章平均质量分 93
houxiangr
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《windows核心编程》第一部分
第一部分(1)windows错误处理windows大多函数返回值的类型windows函数运行错误时会返回一个错误代码,此错误代码线程独立,每一个错误代码关联一个详细的错误信息。DWORD GetLastError()//返回最近的一次错误代码,要在错误发生后立即调用防止被改写DWORD FormatMassage()//通过错误代码获取错误的具体信息VOID SetLastError()//...原创 2018-06-11 16:13:49 · 220 阅读 · 0 评论 -
《Windows核心编程》第二部分(进程)
第二部分(1)进程windows 2000可以使用多核,windows 98只能使用单核。在第一部分中大体的分析了windows操作系统中的内核对象,本节中的进程则属于内核对象的一种。进程的内核对象则是我们经常说的PCB进程控制块。进程:一个正在运行的一段程序的实例。进程是不活泼的。只是线程的容器。一个进程包括内核对象进程控制块和所执行的代码块和数据。每个进程包含一个环境块形式为:是以键值对的形式...原创 2018-06-11 16:14:56 · 268 阅读 · 0 评论 -
《Windows核心编程》第二部分(线程)
(3)线程多线程的优点:可以让用户同时体验应用程序的多种服务。多线程的缺陷:在多线程访问一共享资源的时候会发生冲突。和进程一样,线程也由两部分组成。(1)内核对象:一种数据结构,管理和存储线程的有关信息。(2)线程堆栈:维护线程运行过程中需要的内存空间。同一个进程中的线程共享进程的地址空间,共享进程句柄表,共享其他线程的线程堆栈。主线程的入口点函数是_tmain或_tWinmain。如果在进程中创...原创 2018-06-11 16:15:58 · 229 阅读 · 0 评论 -
《Windows核心编程》第二部分(线程调度,优先级和亲缘性)
(4)线程调度,优先级和亲缘性如上所诉,在每个线程内核对象中都有一个CONTEXT结构,其中保存了线程上一次运行寄存器的情况,在线程调度中,windows大约每隔20ms就会从线程内核对象中选出一个可调度的线程,将其CONTEXT还原到CPU寄存器中,如此循环。我们对操作系统内部的线程调度可以做出的影响很小,无法保证一个线程在某个时间段一直运行。一般可调度的进程比较少,大多线程都在等待某个其他事件...原创 2018-06-12 14:15:38 · 486 阅读 · 0 评论 -
《Windows核心编程》第二部分(用户模式下的线程同步)
(5)用户模式下的线程同步线程必须访问系统资源,如果一个线程独占了对一个资源的访问,那么其他线程就需要做同步处理。必须限制线程对已经被占有的共享资源的访问。比如一个线程在对一个内存进行占有时其他线程就要做同步处理,限制其他线程占有此内存。线程之间的通信可以让多个线程约定访问一个线程,同时不破坏资源的完整性;一个线程可以通知其他线程某项任务已完成。线程同步的windows下的几种方法:(1)原子访问...原创 2018-06-12 14:16:38 · 220 阅读 · 0 评论 -
《Windows核心编程》第二部分(内核模式下的线程同步)
(6)内核模式下的线程同步用户模式主要优点为速度快,内核模式相对于用户模式的区别是可以对多个值进行操作,也可以对不同进程下的线程进行同步操作,但是速度会比较慢(模式的切换,高速缓存命中率下降)。几乎所有的内核对象都可以进行线程同步。内核对象内部有两种状态,一种是未触发状态(比如,进程内核对象刚创建的时候)和触发状态(比如,对应进程终止的时候),每个内核对象内部有一个bool值来监控这两种状态。//...原创 2018-06-16 15:28:06 · 278 阅读 · 0 评论
分享