Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当前目录状态。
Linux通过fork创建子进程与创建线程之间是有区别的:fork创建出该进程的一份拷贝,这个新进程拥有自己的变量和自己的PID,它的时间调度是独立的,它的执行几乎完全独立于父进程。
进程可以看成一个资源的基本单位,而线程是程序调度的基本单位,一个进程内部的线程之间共享进程获得的时间片。...
分类:
编程语言 时间:
2015-04-25 13:47:23
阅读次数:
216
1.核心理论
信号类型:linux系统支持的所有信号均定义在/usr/include/asm/signal.h中,其中常见的信号有:
SIGKILL: 杀死进程
SIGSTOP: 暂停进程
SIGCHLD:子进程停止或结束时用来通知父进程
2.函数学习
发送信号
函数名:kill
函数原型:int kill(pid_t pid, int sig);
函数功能:向进程发送信号
...
分类:
其他好文 时间:
2015-04-24 09:13:48
阅读次数:
152
借助于本次课程学习外加查阅网上资料,特针对top,glances.dstat做简单介绍。接触过linux的人都会知道,刚才所述的几个都是与windows中任务管理器一样,只需在命令行中键入这几种命令,就可以定时刷新显示当前系统上各设备使用情况。比如CPU占用百分比、负载,硬盘读写速率,网..
分类:
系统相关 时间:
2015-04-22 15:29:51
阅读次数:
314
陈铁+原创作品转载请注明出处+《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000对于现代操作系统,多任务是必备的,在linux系统下,进程会不断的被内核调度,从X进程切换为Y进程,以实现用户所见到的多任务状态,下面我们就看一看这样的过程,分析..
分类:
系统相关 时间:
2015-04-22 02:09:44
阅读次数:
241
需要的头文件:
#include
#include
pid_t fork(void)
功能:
用于从一个已存在的进程中创建一个新进程,新进程称为子进程,原进程称为父进程。
参数:
无
返回值:
成功:子进程中返回 0,父进程中返回子进程 ID。pid_t,为无符号整型。
失败:返回 -1。
失败的两个主要原因是:
1)当前的进程数...
分类:
系统相关 时间:
2015-04-21 16:10:49
阅读次数:
325
引言:
在Linux的内核的五大组成模块中,进程管理模块时非常重要的一部分,它虽然不像内存管理、虚拟文件系统等模块那样复杂,也不像进程间通信模块那样条理化,但作为五大内核模块之一,进程管理对我们理解内核的运作、对于我们以后的编程非常重要。同时,作为五大组成模块中的核心模块,它与其他四个模块都有联系。下面就对进程模块进行想写的介绍,首先要了解进程及其相关的概念。其次介...
分类:
系统相关 时间:
2015-04-21 13:04:30
阅读次数:
153
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。
采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息...
分类:
系统相关 时间:
2015-04-20 21:00:16
阅读次数:
278
大多数共享内存的具体实现,都是把由不同进程之间共享的内存映射为同一段物理内存。 多个进程都把该物理内存区域映射到自己的虚拟地址空间,这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。
共享内存允许两个不相关的进程访问同一段物理内存, 由于数据不需要在不同的进程间复制,所以它是在两个正在运行的进程之间传递数据的一种非常有效的方式,一个进程向共享内存区域写入数据,共享该...
分类:
系统相关 时间:
2015-04-20 20:58:51
阅读次数:
287
共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。这块共享虚拟内存的页面,出现在每一个共享该页面的进程的页表中。但是它不需要在所有进程的虚拟内存中都有相同...
分类:
系统相关 时间:
2015-04-20 20:58:44
阅读次数:
293
内核怎样保证各个进程寻址到同一个共享内存区域的内存页面
1、page cache及swap cache中页面的区分:一个被访问文件的物理页面都驻留在page cache或swap cache中,一个页面的所有信息由struct page来描述。struct page中有一个域为指针mapping ,它指向一个struct address_space类型结构。page cache或swap cac...
分类:
系统相关 时间:
2015-04-20 20:58:37
阅读次数:
644