个人认为: 阻塞和非阻塞性能是一致的
原因主要如下:
众所周知CPU和外设通讯,一般都是CPU的速度高于外设响应速度,因此才会出现中断技术
故当应用程序提出一个传递数据的请求,操作系统可以有两种方式供选择:
a. 直到操作系统将要求的数据传送完毕,才返回应用程序
b. 直接返回应用程序,当操作系统将数据传送完毕后通知应用程序传输完成
针对第一种情况,操作系统不可能设计得什么都不做专门等着传送数据,而是将所
有数据准备成一个个队列,传送给驱动程序,挂起应用程序,等待数据传输完毕,
而在驱动程序这个级别是采用中断方式传送数据(也就是说操作系统还能完成其他任务)
,如果数据传送完毕后,通知操作系统,操作系统此时返回应用程序,这就是第一种
(也就是阻塞方式传输)。
第二种情况下:操作系统仅将传来的数据拷贝一份,然后传递给驱动程序后就返回
应用程序,因此在应用程序中定位传送完成的条件就显得有点困难,但用阻塞方式和
线程相结合就很完美了。
操作系统实现线程的方法是时分复用,也就是说某种CPU要想实现多道程序共同运行
硬件电路必须提供一个固定频率的时钟脉冲,这个时钟脉冲起到定时唤醒操作系统的目
的,唤醒后的操作系统决定下一步进行什么样的操作(是挂起一个程序,运行另外的程
序,还是....)