免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: dulao5

[函数] 大家不觉得fork和exec函数很奇怪吗? [复制链接]

论坛徽章:
0
发表于 2006-06-17 19:05 |显示全部楼层
其实几位斑竹没有别的意思,说这样不好,那样不好,说心理话,没有谁会对一个上进的朋友有什么意见,
不让你谈,让去看书,只是意见,因为有些事情确实很简单。 LZ对事情的理解是有点不够。而且LS那么多层我相信大多数都比LZ对APUE研究的更深。 甚至脑袋里都有这本书的内容。
我问问题惟恐自己问的问题太简单,书上很容易找到。

论坛徽章:
0
发表于 2006-06-17 19:23 |显示全部楼层
原帖由 isjfk 于 2006-6-17 19:00 发表
我觉得 lz 这种怀疑一切,否定一切的想法很好。不敢怀疑前人的想法,不敢否定前人的想法,哪儿来的进步?

当初我看 APUE 的时候对先 fork 再 exec 这种做法也是感觉很奇怪,好像跟 UNIX 简洁的特点不大相符。但 ...

我敢肯定lz比你还喜欢这个理论.怀疑之前,需要点什么吧.

论坛徽章:
0
发表于 2006-06-17 21:00 |显示全部楼层
原帖由 isjfk 于 2006-6-17 19:00 发表
如果没有人怀疑牛顿的经典力学,哪儿来的相对论?


说到物理了,总有人误解相对论的产生,忍不住要水一帖。

对于牛顿力学的怀疑,绝不是某个民科跳跃思维的灵光一现,而是因为牛顿力学与电磁学这两大理论体系发生了明显而根本的冲突,不调和不行了,狭义相对论才应运而生。

正是有了两大阵营无数科学家之前的努力造就了狭义相对论的土壤,没有牛顿和麦克斯韦,就不会有爱因斯坦。
狭义相对论也不是对二者的“否定”,而是对二者的“调和”。

迄今为止,在物理学历史上,勇于“怀疑一切”的跳梁民科们从没有对物理学作出过任何贡献。

论坛徽章:
0
发表于 2006-06-18 22:05 |显示全部楼层
进程创建最关键的因素个人认为是时间,哪个系统在指定的时间内创建的进程数量越多,哪个就取胜。
至于用哪个方式实现,有必要讨论这么多么???
请查找资料看看FORK创建进程的效率和你所谓的CREATPROCESS之间差异,还有,最好在你知道原理的情况下比较事物,不知道你能看到CREATEPROCESS的源代码么?
当然你这么“胡说八道”也没有错,说错了才能对嘛。
个人观点

论坛徽章:
0
发表于 2006-06-19 09:13 |显示全部楼层

治学先治史

看看UNIX最初设计在PDP7上或许能有些收获.

论坛徽章:
0
发表于 2006-06-19 11:17 |显示全部楼层
原帖由 isjfk 于 2006-6-17 19:00 发表
我觉得 lz 这种怀疑一切,否定一切的想法很好。不敢怀疑前人的想法,不敢否定前人的想法,哪儿来的进步?

当初我看 APUE 的时候对先 fork 再 exec 这种做法也是感觉很奇怪,好像跟 UNIX 简洁的特点不大相符。但 ...



看了这么多回贴,最赞同这个!

论坛徽章:
0
发表于 2006-06-19 16:01 |显示全部楼层
有空看看M.J. Bash <<The Design of the UNIX Operating System>>。

论坛徽章:
0
发表于 2006-06-19 16:59 |显示全部楼层
楼主有研究精神

JohnDell未免太严厉了。

论坛徽章:
0
发表于 2006-06-19 17:00 |显示全部楼层
而且十分偏激。

论坛徽章:
0
发表于 2006-06-19 19:06 |显示全部楼层

回答你的问题

小弟最近刚开始研究unix编程,看的是《unix环境高级编程》这本书,疑问很多,在此先请教一个问题:

书上说除了init进程以外,unix创建进程唯一的办法就是使用fork系统调用。
那么我的疑问是:
1. 执行代码分支的确很方便,但是为了一个很小的分支复制整个父进程,我感觉这样很不聪明。


这样做有它的优缺点。优点是子进程完全复制了父进程的几乎所有东西,编写c/s架构的程序非常方便,很多经典的服务器实现方式都是父进程监听,有client访问时fork一个子进程去服务;缺点是大荷载的时侯代价确实大,所以现在基本所有的unix/类unix 系统都支持线程。其实线程就是因为fork进程的代价太大,才提出的一种解决方案。这是一个事物发展的过程。线程也有不好的地方啊,编写的难度大很多,因为所有东西都在一个进程空间内,所以必须和各种锁打交道,还有tls什么的,确实增加了编写和调试的难度。

2. 用exec调用新的程序;

这种应用只有init、shell等几个地方用得着,而且基本上用得着的地方,对fork+exec 的效率都没什么要求。试问,你用shell执行一个程序的时候,fork+exec花费的时间和程序运行的时间相比,能占到多少?

所以,我觉得,fork这个函数还是有用的,尤其在一些负荷不大的应用中。


多说一句,大家能不能就事论事,多谈论些具体的技术问题,不要用哲学之类的形而上的东西来压人。更别说什么谁比谁好之类的问题,毫无意义
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP