摘要: 随着一句fork,一个新进程呱呱落地,但它这时只是老进程的一个克隆。然后随着exec,新进程脱胎换骨,离家独立,开始了为人民服务的职业生涯。人有生老病死,进程也一样,它可以是自然死亡,即运行到main函数的最后一个”}”,从容地离我们而去;也可以是自杀,自杀有2种方式,一种 是调用 exit函数,一种是在main函数内使用return,无论哪一种方式,它都可以留下遗书,放在返回值里保留下来;它还甚至能可被谋杀,被其它进程通过 另外一些方式结束他的生命。进程死掉以后,会留下一具僵尸,wait和waitpid充当了殓尸工,把僵尸推去火化,使其最终归于无形。系统中的僵尸进程都要由wait系统调用来. 阅读全文
posted @ 2013-04-10 18:38 ~风~ 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 前面已经谈了内核加载与系统引导过程,下面我们来看看内核的 do_fork() 函数是如何创建一个新的进程的。在 Linux 内核中,供用户创建进程的系统调用fork()函数的响应函数是 sys_fork()、sys_clone()、sys_vfork()。这三个函数都是通过调用内核函数 do_fork() 来实现的。根据调用时所使用的 clone_flags 参数不同,do_fork() 函数完成的工作也各异。这部分内容简单,我不打算就此而展开分析。下面我们重点来讲解以下 do_fork() 函数的工作原理。我们知道 do_fork() 函数生成一个新的进程,大致分为三个步骤。1、建立进程控. 阅读全文
posted @ 2013-04-10 17:51 ~风~ 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。 我们来看一个例子:[cpp] view plaincopyprint?/* * fork_test.c * version 1 * Created on: 2010-5-29 *... 阅读全文
posted @ 2013-04-10 16:43 ~风~ 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 一、引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程方法。与DOS和早期的Windows不同,Unix/Linux系统是真正实现多任务操作的系统,可以说,不使用多进程编程,就不能算是真正的Linux环境下编程。 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由.. 阅读全文
posted @ 2013-04-10 12:39 ~风~ 阅读(224) 评论(0) 推荐(0) 编辑
摘要: C语言真是很灵活,今天发现结构中函数指针的应用,就查了些资料总结一下。其实在结构体已经和C++中的类功能差不多,只是其是面向过程,没有了作用域的要求,如public等你可以在结构体中定义函数函数指针,然后对其调用和类调用方法一样,在调用时对其赋值(你要调用的指针),这样看来,C也可以临时客串一下面向对象了。呵呵.大家可以试一下. 1 #include<stdio.h> 2 struct square 3 { 4 int length; 5 int width; 6 int height; 7 int (*add)(int a,int b); 8 }; 9 int square_ad 阅读全文
posted @ 2013-04-10 12:17 ~风~ 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传递给read或write。 按照惯例,UNIX系统shell使用文件描述符0与进程的标准输入相关联,文件描述符1与标准输出相关联,文件描述符2与标准出错相关联。这是各种shell以及很多应用程序使用的惯例,而与UNIX内核无关,如果不遵守这种惯例,那么很多UNIX系统应用程序就不能正常工作。 在依从POSIX的应用程序中,幻数0、1、2应当替换成符号常量 阅读全文
posted @ 2013-04-10 10:26 ~风~ 阅读(844) 评论(0) 推荐(0) 编辑
摘要: 目录(?)[-]目录SCTP相关术语SCTP功能SCTP 基本信令流程转自:http://wiki.dzsc.com/info/4248.html SCTP 被视为一个传输层协议,它的上层为SCTP 用户应用,下层作为分组网络。在SIGTRAN 协议的应用中,SCTP 上层用户是SCN 信令的适配模块(如M2UA、M3UA),下层是IP 网。 目录SCTP相关术语 SCTP功能 SCTP 基本信令流程 添加新目录>>-->[编辑本段]-->SCTP相关术语 1. 传送地址 传送地址由 IP 地址、传输层协议类型和传输层端口号定义。由于SCTP 在IP 上传 输,所以一个 阅读全文
posted @ 2013-04-10 09:52 ~风~ 阅读(11689) 评论(0) 推荐(0) 编辑