摘要:
MFC做USB HID上位机程序,背景不表,直接开始。 建立个Project; 执行Visual C++ Project|Settings,打开Link选项卡,在Category中选择Input,在Object/library modules中输入hid.lib setupapi.lib; 在应用程序一个文档内引用头文件,如: extern "C" { // Declare the ... 阅读全文
摘要:
第3章 线性表的链式存储 3.1链式存储 数据结构的存储方式必须体现它的逻辑关系 。在链式存储方式下,实现中除存放一个结点的信息外,还需附设指针,用指针体现结点之间的逻辑关系。如果一个结点有多个后继或多个前驱,那么可以附设相应个数的指针,一个结点附设的指针指向的是这个结点的某个前驱或后继。 3.2单链表 结点一般含有两个域,一个是存放数据信息的info域,另一个是指... 阅读全文
摘要:
第1章 概论 数据结构讨论的是数据的逻辑结构、存储方式以及相关操作的实现等问题。本章讲述数据结构的基本概念及相关术语,介绍数据结构、数据类型和抽象数据类型之间的联系,介绍了算法的特点及算法的时间与空间复杂性。 1.1数据结构 1.1.1数据结构 随着计算机软、硬件的发展,计算机的应用范围在不断扩大,计算机所处理的数据的数量也在不断扩大,计算机所处理的数据已不再是单纯的数值数据,而更多的是非数值数据。 需要处理的数据并不是杂乱无章的,它们一定有内在的联系,只有弄清楚它们之间的本质的联系,才能使用计算机对大量的数据进行有效的处理。 使用计算机处理用户信息表中的数据时,必须弄清楚下面3个问题 阅读全文
摘要:
阻塞与非阻塞访问是I/O操作的两种不同模式,前者在I/O操作暂时不可进行时会让进程睡眠。 在设备驱动中阻塞I/O一般基于等待队列来实现,等待队列可用于同步驱动中事件发生的先后顺序。 使用非阻塞I/O的应用程序也可借助轮询函数来查询设备是否能立即被访问。 阻塞操作是指在设备操作时若不能获得资源则挂起进程,直到满足可操作的条... 阅读全文
摘要:
并发(concurrency)指的是多个执行单元同时、并行被执行。而并发的执行单元对共享资源(硬件资源和软件上的全局、静态变量)的访问则容易导致竞态(race conditions)。 SMP是一种紧耦合、共享存储的系统模型,它的特点是多个CPU使用共同的系统总线,因此可访问共同的外设和存储器。 进程与抢占它的进程访问共享资源的情况类似于SMP的多个CPU. 中断可打断正在执行的进程,若中断... 阅读全文
摘要:
Linux2.6内核中使用cdev结构体描述字符设备: structcdev{ structkobjectkobj;//内嵌的kobject对象,描述设备引用计数 structmodule*owner;//所属模块,一般赋值为THIS_MODULE structfile_operations*ops;//文件操作结构体 structlist_headlist; dev_tdev;//设备号 uns... 阅读全文
摘要:
3 进程管理 进程是处于执行期的程序以及它所包含的资源的总称。线程是在一个进程中活动的对象。内核调度的对象是线程。 进程提供两种虚拟机制:虚拟处理器和虚拟内存。 fork() –> exec*() –> exit() fork()创建新进程(由clone()系统调用实现);接着调用exec*()创建新的地址空间,并把新的程序载入;最后exit()系统调用退出执行(终结进程释放资源)。 父... 阅读全文
摘要:
2 Getting Started with the Kernel 2.1 2.2 The Kernel Source Tree Directory Description arch Archi... 阅读全文
摘要:
1 Linux内核简介 1.1 1.2 操作系统和内核简介 操作系统是指在整个系统中负责完成最基本功能和系统管理的部分。这些部分应该包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的用户界面、基本的文件管理工具和系统工具。 内核是操作系统的内在核心。由中断服务程序,调度程序,内存管理,网络,进程间通信等系统服务组成。 ... 阅读全文
摘要:
The gcc C compiler has a built-in directive that optimizes conditional branches as either very likely taken or very unlikely taken. The compiler uses the directive to appropriately optimize the branch... 阅读全文