进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义...
分类:
系统相关 时间:
2014-06-20 10:43:26
阅读次数:
376
线程跟进程一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中跟进程有区别线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制进程具...
分类:
其他好文 时间:
2014-06-15 22:36:56
阅读次数:
307
我们曾经介绍过三种Tomcat集群方式的优缺点分析。本文将介绍Tomcat集群与负载均衡技术具体实施过程。在进入集群系统架构探讨之前,先定义一些专门术语:1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进...
分类:
Web程序 时间:
2014-06-15 21:12:31
阅读次数:
266
共享内存区是可用IPC形式中最快的。一旦内存区映射到共享它的进程的地址空间,进程间数据的传递就不再涉及内核。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。不再涉及内核是指:进程不再通过执行任何进入内核的系统调用来彼此传递数据。内核必须建立允许各个进程共享该内存区的内存映射关系,然后一直管理内存区。
默认情况下通过fork派生的子进程并不与其父进程共享内存区。
mmap...
分类:
系统相关 时间:
2014-06-11 06:34:25
阅读次数:
439
现在将共享内存区的概念扩展到将无亲缘关系进程间共享的内存区包括在内。Posix提供了两种在无亲缘关系进程间共享内存区的方法:
1、内存映射文件:由open函数打开,由mmap函数把得到的描述符映射到当前进程地址空间中的一个文件。(上一节就是这种技术)
2、共享内存区对象:由shm_open打开一个Posix名字(也许是在文件系统中的一个路径名),所返回的描述符由mmap函数映射到当前进程的地址...
分类:
系统相关 时间:
2014-06-11 00:28:43
阅读次数:
464
ios中的多线程的用法总结
1、进程的基本概念
(1)每一个进程都是一个应用程序,都有独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况
(2)同一个进程的线程共享内存中的内存和资源
2、多线程的基本概念
(1)每一个程序都有一个主线程,程序启动时创建(调用main来启动)。
(2)多线程技术表示,一个应用程序有多个线程,使用多线程能提供CPU的利用率,防止主线程被堵塞。
(3)任何有可能堵塞主线程的任务不要在主线程执行(如:访问网络)。
(4)主线程的生命周期和应用程序绑定着,程序...
分类:
移动开发 时间:
2014-06-08 14:50:29
阅读次数:
336
Android系统内核基于Linux2.6+内核,因此,其在进程内存管理方面的很多机制和Linux是很相像的。首先,让我们来看一个典型的Android进程的内存镜像(App进程和Native本地进程略有差别,但原理是一样的):
和Linux一样,Android提供了基于/proc的“伪文件”系统来作为查看用户进程内存映像的接口(cat /proc/pid/maps)。可以说,这是Android系统内核层开放给用户层关于进程内存信息的一扇窗户。通过它,我们可以查看到当前进程空间的内存映射情况,模块加载情况以...
分类:
移动开发 时间:
2014-06-08 03:04:05
阅读次数:
342
信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语。有三种类型:Posix有名信号量,使用Posix IPC名字标识;Posix基于内存的信号量,存放在共享内存区中;System V信号量,在内核中维护。这三种信号量都可用于进程间或线程间的同步。
图1 由两个进程使用的一个二值信号量
图2 由两个进程使用的一个Posix有名二值信号量
图3 由一个...
分类:
系统相关 时间:
2014-06-08 02:58:38
阅读次数:
359
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的....
分类:
编程语言 时间:
2014-06-06 14:12:07
阅读次数:
372