Windows进程通信同步、线程通信同步
共享内存 概述 核心在于让多个进程能够访问同一块物理内存区域,从而实现快速的数据共享 原理 将同一段物理内存映射到多个进程各自的虚拟地址空间 通信方式 进程直接读写该内存区域,无需内核在用户态和内核态间拷贝数据 高性能原因 避免了数据在用户态和内核态之间的拷贝,是速度最快的IPC...
共享内存 概述 核心在于让多个进程能够访问同一块物理内存区域,从而实现快速的数据共享 原理 将同一段物理内存映射到多个进程各自的虚拟地址空间 通信方式 进程直接读写该内存区域,无需内核在用户态和内核态间拷贝数据 高性能原因 避免了数据在用户态和内核态之间的拷贝,是速度最快的IPC...
消息循环 概述 ATL消息循环 h cpp 其他:Visual studio 相关 符合模式permissive 概述 /permissive-是 Visual Studio(从 VS 2017 版本开始引入)中的一个重要编译器选项,旨在让编译器遵循最新的 C++ 语言标准(C+...
定义 一般将进程定义成一个正在运行的程序的一个实例 一个内核对象,操作系统用它来管理进程。 内核对象也是系统保存进程统计信息的地方。 一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。 此外,还包含动态内存分配,比如线程堆栈和堆的分配。 进程要做什么事情,都必须让一个...
Windows 安装 为了确定安装目标,在安装前后调用了get_reg_items get_reg_items 上买的Windows实现是通过枚举注册表 把几个目标路径的注册表存到一起 然后根据安装前后这些路径下的注册表的项数,来找出新增的那个 通过比较,确定新增项,然后记录下新...
调试实践 关于调试实践。 内存破坏 栈内存 在Windows中,栈只是操作系统为线程分配的一块内存。 作用是记录函数调用链(局部变量的分配、参数传递)。 每当调用函数时,都会创建一个栈帧并且把它压入到栈中。 随着线程中调用的函数越来越多,栈也会变得越来越大。 函数结构 函数前导指...
可等待的计时器内核对象 概述 可指定的计时器内核对象会在某个指定的时间触发,或者每隔一段时间触发一次,通常被用来在某个时间执行一些操作。 函数 第二个参数表示将要创建的是一个手动重置计时器还是一个自动重置计时器。 当手动重置计时器被触发的时候,正在等待该计时器的所有线程都会变成可...
概述 在Windows应用程序中,我们可以给每个线程指定一个处理器,这样在多个处理器的机器上就可以同时执行多个操作,从而提高吞吐量。 但是,当一个线程发出一个同步I/O请求的时候,它就会被临时挂起,知道设备完成I/O请求为止。此类挂起会影响性能,因为线程卡在那里不能做别的事情。 ...
关键段 概述 critical section是一小段代码,它在执行之前需要独占对一些共享资源的访问权。 这种方式可以让多行代码以“原子方式”来对资源进行操控。 这里的原子方式,是指除了当前线程之外,没有其他任何线程会同时访问该资源。 当然,系统仍然可以暂停当前线程去调度其他线程...
命令标记 命令分隔符 用于分隔单行上的多个命令 块分隔符 圆括号 一对大括号 ( { } ) 用于包围调试器命令程序中的语句块 方括号 用于访问数组元素或表示寄存器或内存位置 别名解释器 用户别名(以$开头) 用户别名只能在当前调试会话中使用 例如:$myalias 全局别名(以...
异常的产生 CPU执行程序汇编代码时,发现了异常,然后把异常告诉了操作系统。 操作系统首先会让程序自身处理这个异常。 如果程序自身有能力处理,程序就继续运行。 有能力是值程序中有注册的异常处理函数。 如果程序没能力处理,这个异常还没被处理,操作系统就会来处理,操作系统就会提示用户...
搜索当前分类