随笔分类 -  windows

摘要:转自:Melody_lu123CSDN 博客,很赞的技术文章.原文作者:Gustavo Duarte转自:http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memoryHow The Kernel Manages Your Memory内核如何管理你的内存After examining thevirtual address layoutof a process, we turn to the kernel and its mechanisms for managing user memory. Here is go 阅读全文
posted @ 2012-04-13 16:25 zsounder 阅读(1255) 评论(0) 推荐(0)
摘要:转自:Melody_lu123CSDN 博客,很赞的技术文章.这是之前几篇我所翻译文章的作者的另外一系列关于内存管理相关的文章的第一篇。翻译并自我巩固学习。希望对其它同学也能有所帮助。转载自:Gustavo Duarte的http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memoryAnatomy of a Program in Memory剖析内存中的程序Memory management is the heart of operating systems; it is crucial for both programm 阅读全文
posted @ 2012-04-13 16:20 zsounder 阅读(1151) 评论(0) 推荐(1)
摘要:概述 : 非内核对象临界区非常适合于序列化对一个进程中的数据的访问,因为它们的速度很快。但我们或许想要使一些应用程序与计算机中发生的其它特殊事件或者其它进程中执行的操作取得同步。这时临界区无能为力。就需要使用内核对象来同步。 可以使用下列内核对象可用来同步线程: 1. 进程,Processes 2. 线程,Threads 3. 文件,Files 4. 控制台输入,Console input 5. 文件变化通知,File change notifications 6. 互斥量,Mutexes 7. 信号量,Semaphores 8. 事件(自动重设事件和手动重设事件),Events 9. 可等. 阅读全文
posted @ 2011-06-21 15:15 zsounder 阅读(541) 评论(0) 推荐(0)
摘要:概述 : 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区:在所有同步对象中,临界区是最容易使用的,但它只能用于同步单个进程中的线程。取得对某个数据区的访临界区一次只允许一个线程问权。还有,在这些同步对象中,只有临界区不是内核对象,它不由操作系统的低级部件管理,而且不能使用句柄来操纵,由于不是内核对象,使得它作为一种轻量级的同步机制,同 阅读全文
posted @ 2011-06-21 15:09 zsounder 阅读(587) 评论(0) 推荐(1)
摘要:今天面试的时候,被问到了一个问题:release版本下new了一个对象A, 将A传入debug版本库,发生错误?可能的原因是什么呢?debug模式下: 1: // debug模式下的new 2: #define new DEBUG_NEW 3: 4: // DEBUG_NEW如下 5: #define DEBUG_NEW new(THIS_FILE, __LINE__) 6: 7: // 对于如上的new,编译器会寻找如下定义的operator new 8: void* AFX_CDECL operator new(size_t nSize... 阅读全文
posted @ 2011-03-28 22:29 zsounder 阅读(2385) 评论(0) 推荐(0)
摘要:1. Windows平台下主要的内存管理途径申请释放newdeletemallocfreeCoTaskMemAllocCoTaskMemFreeIMalloc::allocIMalloc/freeGlobalAllocGlobalFreeLocalAllocLocalFreeHeapAllocHeapFreeVirtualAllocVirtualFree2. 调用关系第一层:Win32 API作为系统的接口,提供了一组操作虚拟内存的接口;第二层:Heap作为虚拟内存的一部分,Win32 API又提供了一组操作Heap内存的接口,但是这些接口是建立在操作虚拟内存的接口的基础上。第三层:Windo 阅读全文
posted @ 2011-03-26 17:42 zsounder 阅读(2085) 评论(0) 推荐(1)
摘要:1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种基本数据类型在内存冲就是按照一定的规则排列的,而不是一个紧挨着一个排放,这就是内存对齐。对齐模数: 内存对齐中指定的对齐数值K成为对齐模数(Alignment Modulus)。当一种类型S的对齐模数与另一种类型T的对齐模数的比值是大于1的整数,我们就称类型S的对齐要求比T强(严格),而称T比S弱(宽松)。2:内存对齐的好处: 内存对齐作为一种强制的要求,第... 阅读全文
posted @ 2011-03-24 14:54 zsounder 阅读(3496) 评论(2) 推荐(3)