原文:http://blog.csdn.net/wangtiewei/article/details/51112668 内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去,在此之后进程操作文件,就像操作进程空间里的地址一样了,比如使用C语言的 memcpy等内存操作的函数。这种方法能够很好的应 ...
原文:http://blog.csdn.net/ljianhui/article/details/10253345 共享内存主要是通过映射机制实现的。 Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。当调用 Create ...
第一部分:mmap系统调用直接将设备内存映射到用户进程的地址空间里。 第二部分:跨越边界直接訪问用户空间的内存页。一些相关的驱动程序须要这样的能力,(用户空间内存怎样映射到内核中的方法get_user_pages) 第三部分:直接内存訪问(DMA)I/O操作,使得外设具有直接訪问系统内存的能力。 L ...
分类:
系统相关 时间:
2017-08-09 21:16:45
阅读次数:
173
申请效率的比较 栈:由系统自动分配,速度较快。但程序员是无法控制的。 堆:是由new分配的内存,最好的方式是用VirtualAlloc分配虚拟内存,它既不是在堆也不是在栈,而是直接在进程的地址空间中保留一块内存,虽然用起来最不方便,但是速度快也最灵活。 http://blog.csdn.net/ho ...
分类:
系统相关 时间:
2017-07-21 23:15:23
阅读次数:
314
虚拟内存 为了有效的管理内存,linux提出了虚拟内存的概念。虚拟内存是硬件异常、主存、硬件地址翻译、磁盘、和内核软件的完美交互。 虚拟内存提供了三个重要的能力: 1、将内存看作是磁盘的告诉缓存 2、使得进程具一致的地址空间(线性地址) 3、使得进程的地址空间相互独立 虚拟内存的实现机制 内核会为每 ...
分类:
系统相关 时间:
2017-07-17 18:33:49
阅读次数:
206
程序进入内存时,即变成一个进程,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位 进程三个特征: 独立性:进程是系统中独立存在的实体,拥有自己独立的资源,有自己私有的地址空间,没有经过进程本身允许的情况下,一个用户进程不能直接访问其他进程的地址空间 动态 ...
分类:
编程语言 时间:
2017-07-09 18:15:35
阅读次数:
196
一、多线程 1、操作系统有两个容易混淆的概念,进程和线程。 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。 线程:表示程序的执行流程,是CPU调度执行的基本 ...
分类:
编程语言 时间:
2017-06-28 19:05:30
阅读次数:
192
什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程共享该进程的地址空间 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位, 例如,北京地铁与上海 ...
分类:
编程语言 时间:
2017-06-26 17:16:58
阅读次数:
218
fork 函数复制父进程(包括父进程的地址空间)产生子进程 在父进程返回子进程ID,在子进程本身返回0。 fork一般有两个用处: 1、网络服务进程等待请求,新请求到来,fork一个子进程处理,父进程继续监听。 2、子进程从fork返回立即调用exec执行其他程序,有的系统将fork之后立即执行ex ...
分类:
其他好文 时间:
2017-06-19 19:45:55
阅读次数:
197
WINDOWS下最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是栈,而是直接在进程的地址空间中保留一快内存。尽管用起来最不方便。可是速度快,也最灵活 new,malloc,GlobalAlloc具体解释 同样点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同。 m ...
分类:
其他好文 时间:
2017-06-16 20:21:31
阅读次数:
201