星期四, 五月 28th, 2009
摘錄自: Unix 系統管理 Essential System Administration 2/e, by Æleen Frisch. Copyright 1998 O’Reilly Media Inc., 957-98213-4-8. 第七章。
- 要使系統執行順暢,記憶體不但要足夠應付大工作,還要能讓數量龐大的日常小工作能夠同時進行。
- swapping: 置換, 是把整個行程寫入磁碟中,再將其記憶體釋出。當要繼續執行被置換完畢(swapped-out)的行程時,必須將其重新載入記憶體。
- pagging: 切頁, 是將行程記憶體內容的某些節區(單位為 page)搬到磁碟上,以釋放部分記憶體給需要的行程使用。
- page fault: 切頁錯誤, 是指當行程要使用記憶體某部分的內容時,該部分的內容尚未由磁碟讀出並置於記憶體中。
- 在虛擬記憶體系統上,除非記憶體嚴重不足,否則很少會進做置換的動作。
- 虛擬記憶體的原理是「並非所有記憶體都會同時使用」,因此系統內部可以把虛擬位址對應到實體記憶體位址;當行程要用到目前不在記憶體內程式碼和資料時,kernel 會把需要的部分從磁碟上載入記憶體(即進行切頁動作),可能還會把該行程其他不需使用的 page 置換掉。
- 若系統實體記憶體不足以讓所有執行中的行程使用時,切頁就會有問題。在這種情形下,kernel 會動態分配記憶體:若某行程要讀進一個新 page,但沒有可用或可重複使用的 page 時,作業系統會從其他行程偷來一個 page 以供使用。被偷的 page 叫做被切出(page out),其內容會被寫在磁碟上的切頁區。若某行程再度需要該 page,其內容會被切回來(page in),通常會強迫使用其他的 page 空間。在這種情況下,CPU 會花很多時間在處理切頁錯誤上,因此會讓行程執行的很沒有效率。最嚴重的狀況稱之為「thrashing」,系統所有的時間都在處理虛擬記憶體,而不會進行任何實際的工作。
僅節錄個人覺得重要之處,全文請參見原書。
Posted in FreeBSD, Linux, 摘錄 | No Comments »
星期四, 四月 23rd, 2009
消息來源: 東森財經新聞台 股動錢潮2300
23:28 盧燕麗: 當台塑集團開始買進庫藏股時,就是相對的低點。2001年買進南亞(1303),一年之後股價漲了96%。2006年買進福懋(1434),一年之內股價漲了九成。
23:30 柯建維: 沒錯,台塑集團就是這樣買。通常買庫藏股時還不是最低點,通常長庚醫院開始買,而且連買幾天之後,那個點就是很好的買點。
Posted in 投資理財, 摘錄 | No Comments »
星期六, 九月 27th, 2008
parseInt() 的第二個參數是指定進位基數,若不指定,parseInt 會依據第一個參數自動判斷。
如果開頭是 0x 或 0X,則視為 16 進位;若開頭是 0,則視為 8 進位;其餘則視為 10 進位。
var e = '1234';
alert(parseInt(e)); // 1234
var f = '01234';
alert(parseInt(f)); // 668, 八進位制的 1234 轉成十進位是 668
alert(parseInt(f, 10)); // 1234, 指定成十進位。
因此在使用 parseInt() 時,除非真的要使用到預設的自動判斷機制,否則請指定進位基數,免得造成自己的困擾。
Ref 1: JavaScript網頁設計師手札
Ref 2: JavaScript parseInt() Function
Posted in Javascript, 摘錄 | No Comments »
星期六, 九月 27th, 2008
方法一: Number constructor function
var e = '123';
e = Number(e); // 123
方法二: parseInt() 或 parseFloat()
var e = '123.45abc';
var e1 = parseInt(e, 10); // 123
var e2 = parseFloat(e); // 123.45
若無法轉換成數值時,會回傳 NaN (Not A Number)。
var f = 'abc123';
var f1 = Number(f); // NaN
var f2 = parseInt(f, 10); // NaN
var f3 = parseFloat(f); // NaN
Ref: JavaScript網頁設計師手札
Posted in Javascript, 摘錄 | No Comments »
星期六, 九月 27th, 2008
方法一: String constructor function
var e = 123;
e = String(e);
方法二: toString method
var e = 123;
e = e.toString();
方法三: string concatenation
var e = 123;
var ee = e + '';
Ref: JavaScript網頁設計師手札
Posted in Javascript, 摘錄 | No Comments »