随笔分类 -  Windows System Ring3

1 2 下一页

《Windows via C/C++》学习笔记 —— 纤程(Fiber)
摘要:Windows中纤程(Fiber)的作用是为了让UNIX中的程序更好地移植到Windows。纤程是比线程更小的一个单位,可以把一个线程拆分为多个纤程,这些纤程的工作由用户指定,需要用户手工进行切换,从而让各个纤程交替完成它们的工作。 阅读全文

posted @ 2008-08-26 18:24 小虎无忧 阅读(8274) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— Windows 线程池
摘要:线程池,指很多个的线程同时存在,并发执行,并且受到统一的管理。Windows Vista 提供了新的线程池工作机制。一般这些线程池的创建的销毁是由操作系统自动完成的。让线程池与上一篇所讨论的“I/O完成端口”一起工作是十分高效的。 阅读全文

posted @ 2008-08-25 22:47 小虎无忧 阅读(12390) 评论(9) 推荐(0)

《Windows via C/C++》学习笔记 —— 设备I/O之“I/O完成端口”
摘要:I/O完成端口是性能最高、扩充性最好的一种用来接受异步I/O请求完成通知的方法。上一篇中介绍的3个方法:通知一个设备内核对象、通知一个事件内核对象、告警I/O,在一些方面总是有缺点。如果需要更高性能和更高的可扩充性的方法的话,可以考虑“I/P完成端口”。 阅读全文

posted @ 2008-08-21 18:03 小虎无忧 阅读(2815) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 设备I/O之“接收I/O请求完成通知”
摘要:异步I/O请求的方法,必须要考虑的就是当I/O请求完成之后,如何来接收通知。Windows提供了多种方法来实现——通知设备内核对象、通知事件内核对象、告警I/O、I/O完成端口。其中,I/O完成端口是性能最高的方法,但是实现却比较复杂。本篇首先讨论前3种接受通知的方式。 阅读全文

posted @ 2008-08-20 22:28 小虎无忧 阅读(1581) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 设备I/O之“异步设备I/O请求”
摘要:设备I/O是最慢且最不可预测的操作之一。而异步设备I/O的优点就是可以不必等待I/O函数的返回,让线程能够继续做其他的事情,而在当设备I/O结束的时候,通知程序是否I/O操作完成或是否发生了错误。本篇主要讨论如何发送“异步I/O请求”,是设计高性能、可扩展程序的基本要素。 阅读全文

posted @ 2008-08-19 15:47 小虎无忧 阅读(2250) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 设备I/O之“同步的设备I/O”
摘要:设备I/O是与计算机进行交互十分重要的一种方法,设备I/O分为同步和异步两种方法,本篇主要讨论同步的设备I/O,其优点的实现方法简单,但是缺点就是只有在I/O请求完成之后与之相关的函数才会返回,否则只能等待,直到I/O请求完成,也就是性能比较低。 阅读全文

posted @ 2008-08-18 22:39 小虎无忧 阅读(1467) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 设备I/O之“文件设备”
摘要:文件是一个经常需要使用的,如何操作文件显得非常重要。 阅读全文

posted @ 2008-08-17 14:11 小虎无忧 阅读(4952) 评论(0) 推荐(1)

《Windows via C/C++》学习笔记 —— 设备I/O之“设备的打开和关闭”
摘要:设备在Windows系统中的地位举足轻重。本问讨论了Windows有哪些设备,如何打开和关闭一个特定类型设备。 阅读全文

posted @ 2008-08-16 22:56 小虎无忧 阅读(3455) 评论(0) 推荐(1)

《Windows via C/C++》学习笔记 —— “线程同步”之“检测死锁”
摘要:在多线程程序中,死锁是一个常见的问题,也是一个很棘手的问题。Windows Vista中提供了一个机制,来对死锁进行检测,叫做“Wait Chain Traversal”(等待链遍历)机制。 阅读全文

posted @ 2008-08-15 23:32 小虎无忧 阅读(2971) 评论(1) 推荐(0)

《Windows via C/C++》学习笔记 —— 内核对象的“线程同步”之“互斥内核对象”
摘要:互斥内核对象确保线程以“独占”的方式访问某个或某些资源。这和关键代码段有点类似。但是当需要处理多个进程之间线程同步问题的时候,关键代码段就不能满足要求了,这个时候可以使用互斥内核对象。 阅读全文

posted @ 2008-08-14 17:47 小虎无忧 阅读(1027) 评论(0) 推荐(1)

《Windows via C/C++》学习笔记 —— 内核对象的“线程同步”之“信号量”
摘要:信号量是用来给资源的计数的,可以用信号量来表示可用资源的个数。线程访问资源之前,要查看信号量可用资源的值,如果为0,则申请资源的线程进入阻塞状态;如果大于0则将其减1,该线程继续进行。当线程使用完成之后,信号量可用资源数加1,被阻塞的一个线程就可以进入就绪(可调度)状态。 阅读全文

posted @ 2008-08-13 18:14 小虎无忧 阅读(1197) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 内核对象的“线程同步”之“等待定时器”
摘要:等待定时器是一种“定时”发送通知的内核对象,当发送通知的时候,也就是其进入“已通知状态”的时候。它的作用主要就是“定时”,可以完成一些特殊的任务。 阅读全文

posted @ 2008-08-12 17:12 小虎无忧 阅读(2359) 评论(1) 推荐(1)

《Windows via C/C++》学习笔记 —— 内核对象的“线程同步”之“事件内核对象”
摘要:事件内核对象可以反映某个时间是否完成,若未完成,则相关线程进入等待状态;若完成,则可以通知某些线程进入就绪状态。 阅读全文

posted @ 2008-08-11 13:40 小虎无忧 阅读(980) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 内核对象的“线程同步”之“等待函数”
摘要:等待函数让线程进入阻塞状态,等待某个事件发生或者某些资源释放,这些函数可以与内核对象配合使用,一同完成线程同步的处理。 阅读全文

posted @ 2008-08-10 22:33 小虎无忧 阅读(1640) 评论(2) 推荐(0)

《Windows via C/C++》学习笔记 —— 用户模式的“线程同步”之“条件变量”
摘要:条件变量是Windows Vista中提供的一种处理线程同步的机制,可以与关键代码段和读写锁相互配合使用,通知某一个线程或者让某一个线程进入等待。 阅读全文

posted @ 2008-08-09 21:04 小虎无忧 阅读(2563) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 用户模式的“线程同步”之“读写锁”
摘要:读写锁是Windows Vista中新增的一种线程同步机制。该机制特别适合于“读者-写者”的线程同步问题。可以让一些读线程同时不修改地访问某些资源,让单个写线程在修改某些资源时独占这些资源。 阅读全文

posted @ 2008-08-08 13:05 小虎无忧 阅读(2690) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 用户模式的“线程同步”之“关键代码段”
摘要:关键代码段是一种高效的线程同步方法,可以用关键代码段保护某些共享资源,让线程一原子的方式访问之。 阅读全文

posted @ 2008-08-07 13:08 小虎无忧 阅读(1741) 评论(0) 推荐(0)

《Windows via C/C++》学习笔记 —— 用户模式的“线程同步”之“互锁函数族”
摘要:互锁函数族是一系列API函数,它们提供了一种以原子方式访问资源的方法,防止因为多线程同时访问一个资源而导致该资源被破坏(比如丢失修改)的情况。互锁函数机制效率高,简单,通常适用于对单个变量进行保护。 阅读全文

posted @ 2008-08-06 13:36 小虎无忧 阅读(1890) 评论(2) 推荐(0)

《Windows via C/C++》学习笔记 —— 线程的相关性
摘要:线程亲缘性主要是线程与CPU之间的关系。在多CPU计算机上,一个线程可以被任何CPU调度,可以通过一些API函数来限制线程只能在某个或某些CPU上调度从而获得最大的效率。 阅读全文

posted @ 2008-08-05 12:40 小虎无忧 阅读(5463) 评论(2) 推荐(1)

《Windows via C/C++》学习笔记 —— 线程优先级
摘要:线程优先级决定了线程能否“尽快”被调度,这是线程的重要属性。Windows Vista是一个抢占式操作系统,一个高优先级的线程总是比低优先级的线程先调度,利用优先级,可以让某些线程完成一些特殊的功能。 阅读全文

posted @ 2008-08-04 12:48 小虎无忧 阅读(5498) 评论(4) 推荐(0)

1 2 下一页

导航