看板 b96902HW 關於我們 聯絡資訊
應該是說 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
meteor260:這樣實在是很奇怪 以introduction來看要分出4個process 05/18 16:10
meteor260:但是每個process必須sort10M的東西,現在只能開5M怎麼 05/18 16:10
meteor260:sort... 05/18 16:10
meteor260:難道要跟提問的同學說法一樣要用兩層merge?? 05/18 16:14
livenupday:就是 一次兩個process做sorting 分別用5M 然後做四輪@@ 05/18 16:15
livenupday:這樣是原po的兩層merge意思嗎XD 05/18 16:16
meteor260:是 這樣會不會太麻煩囧TZ 05/18 16:50
kiwaygo:這樣啊...我又要改了= = 05/18 17:50
kiwaygo:這就是我的兩層sort的意思沒錯啊...感覺真的很麻煩... 05/18 19:36