作者livenupday (挂站中..请稍後XD)
看板b96902HW
标题Re: [系程] sorted chunk只能存在一个tmpfile里?
时间Mon May 18 13:29:41 2009
应该是说
fork出的所有process所用到的记忆体总和不能超过上限
而很多process同时在做,是看起来像平行
然而实际上系统会分配资源给不同process(东做一点西做一点这样)
所以其实还是单个CPU在处理(如果单核的话)
而如果是多核的话,怎麽分配资源就决定於OS的设计了
简单的说如果以introduction的范例来说
我们可以尝试使用 5MB/process 来开两个child processes来同时做
(所以范例的说法有点讲错了,不好意思)
※ 引述《kiwaygo (鸡尾酒)》之铭言:
: : 3. 我知道一次fork一个也可以避开lock的问题,但同样的,
: : 这似乎就有点跟作业规定不太一样QQ
: : 所以请同学们还是维持一次fork多个process,
: : 要多少可以自行决定,但不要搞的跟vfork一样XD
: 可是...如果fork不搞得跟vfork一样
: 读入的数字资料会同时全都存在memory中吧
: (我指的是整个inputfile的每个数字都同时读在记忆体中进行sorting)
: 这样说来,记忆体不是会爆掉吗?= =
: (言下之意是一定要处理double fork,两层的merge sort吗?)
: 因为之前问过助教
: 助教说这次作业在处理child process本来就不是平行的
: 平行的时候记忆体就会爆
: 现在怎麽好像又说弄fork的时候一定要平行这样?
: 请助教解惑,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.31.157
1F:推 meteor260:这样实在是很奇怪 以introduction来看要分出4个process 05/18 16:10
2F:→ meteor260:但是每个process必须sort10M的东西,现在只能开5M怎麽 05/18 16:10
3F:→ meteor260:sort... 05/18 16:10
4F:推 meteor260:难道要跟提问的同学说法一样要用两层merge?? 05/18 16:14
5F:→ livenupday:就是 一次两个process做sorting 分别用5M 然後做四轮@@ 05/18 16:15
6F:→ livenupday:这样是原po的两层merge意思吗XD 05/18 16:16
7F:推 meteor260:是 这样会不会太麻烦囧TZ 05/18 16:50
8F:推 kiwaygo:这样啊...我又要改了= = 05/18 17:50
9F:推 kiwaygo:这就是我的两层sort的意思没错啊...感觉真的很麻烦... 05/18 19:36