作者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