Windows 核心编程 _ 用户模式:线程同步三
Slim读写锁 概述 目的和关键段一样,对一个资源进行保护,不让其他线程访问它。 和关键段不同的是,SRWLock允许我们区分那些想要读取资源的值的线程(读取者线程)以及想要更新资源的值的线程(写入者线程) 关于读写锁的功能 让所有的读取者线程同一时刻访问共享资源应该是可行的,因...
Slim读写锁 概述 目的和关键段一样,对一个资源进行保护,不让其他线程访问它。 和关键段不同的是,SRWLock允许我们区分那些想要读取资源的值的线程(读取者线程)以及想要更新资源的值的线程(写入者线程) 关于读写锁的功能 让所有的读取者线程同一时刻访问共享资源应该是可行的,因...
ETW(Event Tracing for Windows) 概述 ETW是Windows提供的高性能内核级事件追踪机制,能够以极低开销(通常<5% CPU)实时捕获系统和应用程序事件 ETW架构核心组件 事件生产者 内核级 系统组件(如进程管理器、TCP/IP协议栈) 用...
pipe pipe用于创建一个管道,以实现进程间通信。 pipe函数的参数是一个包含两个int的数组指针。 该函数成功时返回0,并将一对打开的文件描述符值填入其参数指向的数组。 如果失败,返回-1并设置errno。 通过pipe创建的这两个文件描述符fd[0]和fd[1]分别构成...
地址空间 32位系统,CPU可直接寻址4GB空间,这也是每个进程的地址空间大小。 其中,高2GB供内核模块使用,称为内核空间。 低2GB供用户态模块使用,称为用户空间。 使用/3GB开关,可以将用户空间增大到3GB。 Windows内容load到内核空间高地址,主程序load到用...
Windows 安装 为了确定安装目标,在安装前后调用了get_reg_items get_reg_items 上买的Windows实现是通过枚举注册表 把几个目标路径的注册表存到一起 然后根据安装前后这些路径下的注册表的项数,来找出新增的那个 通过比较,确定新增项,然后记录下新...
进程描述 进程是一个程序一次执行的过程,它和程序有本质区别。 程序是静态的,它是一些保存在磁盘上的指令的有序集合。 而进程是一个动态的概念。它是一个运行着的程序,包含了进程的动态创建、调度和消亡的过程,是Linux的基本调度单位。 进程是os的最小单元 os会为每个进程分配大小为...
概述 网络程序需要处理的第三类事件是定时器事件,比如定期检测一个客户连接的活动状态。 服务器程序通常管理着众多定时事件,因此有效地组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要逻辑,对于服务器的性能有着至关重要的影响。 为此,需要将每个定时事件分别封装成定时器,...
文件描述符 内核为每个进程维护一个已打开文件的记录表,文件描述符是一个较小的正整数(0—1023),它代表记录表的一项,通过文件描述符和一组基于文件描述符的文件操作函数,就可以实现对文件的读、写、创建、删除等操作。 常用基于文件描述符的函数有open(打开)、creat(创建)、...
两种高效的并发模式 并发编程的目的是让程序“同时”执行多个任务。 如果程序是计算密集型的,并发编程并没有优势,反而由于任务的切换使效率降低。 但如果程序是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。 由于I/O操作的速度远没有CPU计算速度快,所以让程序阻塞I...
应用开发特色 四大组件 活动 所有Android应用程序的门面,凡是在应用中看得到的东西,都是放在活动中的 服务 在后台运行 广播接收器 允许你的应用接收来自各处的广播消息,比如电话、短信 内容提供器 为程序之间共享数据提供了可能 丰富的系统控件 Android系统为开发者提供了...
搜索当前分类