线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是....
分类:
编程语言 时间:
2015-05-21 19:24:04
阅读次数:
168
1)fork(): 父子进程的执行次序不确定。
vfork():保证子进程先运行,在它调用 exec(进程替换) 或 exit(退出进程)之后父进程才可能被调度运行。
2)fork(): 子进程拷贝父进程的地址空间,子进程是父进程的一个复制品。
vfork():子进程共享父进程的地址空间(准确来说,在调用 exec(进程替换) 或 exit(退出进程) 之前与父进程数据是共享的)...
分类:
系统相关 时间:
2015-05-19 21:02:31
阅读次数:
246
线程是指进程内的一个执行单元,也是进程内的可调度实体.
与进程的区别:
(1)内存
空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)线程是处理器调度的基本单位,但进程不是.
一个程序至少有一个进程,一个进程至少有一个线程. 进程是系统进行资源分配和调...
分类:
编程语言 时间:
2015-05-17 10:49:43
阅读次数:
147
一. 共享内存介绍系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射sh...
分类:
其他好文 时间:
2015-05-15 10:38:24
阅读次数:
258
一、多线程
1、操作系统有两个容易混淆的概念,进程和线程。
进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。
线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间...
分类:
编程语言 时间:
2015-05-03 17:32:55
阅读次数:
259
共享内存主要是通过映射机制实现的。 Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。当调用 CreateFileMapping 创建命名的内存映射文件对象时,Windows 即在物理内存申请一块指定大小的内存区域,...
DLL_PROCESS_ATTACH 进程启动或者调用LoadLibrary 时候,DLL映射到当前进程的地址空间,这个事件期间,DLL初始化实例数据DLL_PROCESS_DETACH DLL正从进程的地址空间分离出来,这也许是进程本身退出或者调用了FreeLibrary,在该事件里,...
分类:
其他好文 时间:
2015-04-23 22:58:07
阅读次数:
124
SystemV共享内存机制:shmgetshmatshmdtshmctl原理及实现:systemVIPC机制下的共享内存本质是一段特殊的内存区域,进程间需要共享的数据被放在该共享内存区域中,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。这样一个使用共享内存的进程可以将信息写...
分类:
系统相关 时间:
2015-04-17 15:26:58
阅读次数:
222
linux进程的地址空间,核心栈,用户栈,内核线程 地址空间:32位linux系统上,进程的地址空间为4G,包括1G的内核地址空间,和3G的用户地址空间。内核栈:进程控制块task_struct中保存了2个page大小的信息。为什么每一个进程都是用各自的内核栈呢?引用(http://hi.baidu...
分类:
编程语言 时间:
2015-04-16 23:17:50
阅读次数:
287
1、进程和线程区别进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位。a) 进程在执行过程中拥有独立的地址空间,而多个线程共享同一进程的地址空间,从而极大地提高了程序的运行效率。b) 进程和线程占...
分类:
其他好文 时间:
2015-03-18 23:06:22
阅读次数:
194