本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章描述USB 3.0 集线器的体系结构要求.本章还描述主机下行口和集线器下行口之间功能性的不同之处,以及设备上行口和集线器上行口之间的不同之处.本章包括三个主要的子模块的其中两个的描述:超高速集线器中继器/转发器(SuperSpeed hub repeater/forwarder)以及超高速集线器控制器(SuperSpeed hub controller).USB 2.0 集线器子模块在Universa…
Github https://github.com/gongluck/Windows-Core-Program.git //第10章 同步设备IO与异步设备IO.cpp: 定义应用程序的入口点. // #include "stdafx.h" #include "第10章 同步设备IO与异步设备IO.h" //可提醒IO回调 VOID WINAPI funComplete( _In_ DWORD dwErrorCode, _In_ DWORD dwNumberOfBy…
10.5 接收I/O请求完成的通知 (1)I/O请求被加入设备驱动程序的队列,当请求完成以后,设备驱动也要负责通知我们I/O请求己经完成. (2)可以用4种方法来接收I/O请求己经完成的通知 技术 特点 触发设备内核对象 ①允许一个线程发出I/O请求,另一个线程对结果进行处理. ②当向一个设备同时发出多个I/O请求的时候,这种方法是不能用的,因为等待函数中等待的是同一个内核对象,只要任何一个I/O请求完成时都会被触发,却没办法区别是哪个请求的完成触发了内核对象. 触发事件内核对象 ①允许一个线程…
10.3 执行同步设备I/O (1)对设备读写操作的函数 ①ReadFile/WriteFile函数 参数 描述 hFile 文件句柄 pvBuffer 指向要接收文件数据的缓冲区或把缓冲区数据写入设备 nNumbytesToRead 要读取的字节数或写入的字节数 pdwNumBytes 实际读取的字节数或写入的字节数 pOverlapped 指向OVERLAPPED结构体. ①要进行同步读写时,该参数为NULL,同时打开设备的时候,标志不能指定为FILE_FLAG_OVERLAPPED. ②要…
10.1 打开和关闭设备 10.1.1 设备的定义——在Windows中可以与之进行通信的任何东西. (1)常见设备及用途 设备 用途 用来打开设备的函数 文件 永久存储任何数据 CreateFile(pszName为路径名或UNC路径名) 目录 属性和文件压缩的设置 同上,如果指定FILE_FLAG_BACKUP_SEMANTICS标志,将打开一个目录.可以改变目录的属性(如正常或隐藏等)和他们的时间戳 逻辑磁盘驱动器 格式化驱动器 CreateFile(pszName为\\.\x:)其中的x…
同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很好的一种方式. 线程是我们开发高性能.响应性好的一个必不可少的工具.这样在多处理器上就可以同时执行多个操作,从而提高吞吐量.当线程发出一个同步设备IO请求的时候,它会被临时挂起,直到设备完成IO请求为止.但线程阻塞会损害性能,这里有个问题是我们如何让线程不被挂起. 让线程始终进行有用的工作就需要它们…
高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等的复杂性和多变性,使得对系统的优化变得异常复杂,如何定位性能问题出在哪个方面,是性能优化的一大难题.本章从系统人手,重点讲述由于系统软.硬件配置不当造成的性能问题,并且给出了检测系统故障和优化性能的一般方法和流程. 10.1  系统性能分析的目的 10.1.1  找到系统性能的瓶颈系统的性能是指操作…
Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模块.执行对应运行等级的初始化脚本.个性化设置.进入登录状态这十个步骤.怎么样?服气吧!如果觉得还不够直观,那么看一下图10.1 Linux系统启动流程吧. LVS的IPVS模块也是采用动态加载的方式 图10.1 Linux系统启动流程那关机是不是会省点事儿呢?不是!Linux的关机会涉及4个命令和4…
第10章 系统级I/O 10.1 Unix I/O 一个Unix文件就是一个m个字节的序列:B0,B1,…,BK,…,Bm-1 Unix I/O:一种将设备优雅地映射为文件的方式,允许Unix内核引出一个简单.低级的应用接口,这使得所有的输入输出都能以一种统一且一致的方式来执行: 打开文件: 内核返回一个小的非负整数,叫做描述符. Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入(描述符为0).标准输出(描述符为1).标准错误(描述符为2). 改变当前文件位置: 对于每个打开的文件,…
第8章,BOM BOM的核心对象是window,具有双重角色,既是js访问浏览器的一个接口,又是ECMAScript规定的Global对象.因此,在全局作用域中声明的函数.变量都会变成window对象的属性和方法. 例: var age = 20; function sayAge(){ alert(this.age); } alert(window.age); window.sayAge(); 定义全局变量与在window对象上直接定义属性区别:全局变量不能通过delete操作符删除,而直接在w…