Archive for the ‘摘錄’ Category

[摘錄] UNIX 記憶體管理

星期四, 五月 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」,系統所有的時間都在處理虛擬記憶體,而不會進行任何實際的工作。

僅節錄個人覺得重要之處,全文請參見原書。

台塑集團的操作方式

星期四, 四月 23rd, 2009

消息來源: 東森財經新聞台 股動錢潮2300
23:28 盧燕麗: 當台塑集團開始買進庫藏股時,就是相對的低點。2001年買進南亞(1303),一年之後股價漲了96%。2006年買進福懋(1434),一年之內股價漲了九成。
23:30 柯建維: 沒錯,台塑集團就是這樣買。通常買庫藏股時還不是最低點,通常長庚醫院開始買,而且連買幾天之後,那個點就是很好的買點。

文茜的世界財經周報 2009.04.05.

星期一, 四月 6th, 2009

YouTube 上找到的,總共有四段:

  1. http://www.youtube.com/watch?v=emJBr7HRyiQ
  2. http://www.youtube.com/watch?v=oz5cYU1ODcA
  3. http://www.youtube.com/watch?v=AY3tVFakEB0
  4. http://www.youtube.com/watch?v=8MjXLp9Uiwo

文茜的世界周報 2009.04.05.

星期一, 四月 6th, 2009

YouTube 上找到的,總共有五段:

  1. http://www.youtube.com/watch?v=thR637OlrXk
  2. http://www.youtube.com/watch?v=VWUZysFKUWQ
  3. http://www.youtube.com/watch?v=fODUIo2r74I
  4. http://www.youtube.com/watch?v=h59uNmKLN6k
  5. http://www.youtube.com/watch?v=E6_ieXjKkzQ

文茜的世界周報 2009.04.04.

星期一, 四月 6th, 2009

YouTube 上找到的,總共有五段:

  1. http://www.youtube.com/watch?v=Gjw9W0khTIg
  2. http://www.youtube.com/watch?v=eGYJe4eatHY
  3. http://www.youtube.com/watch?v=BinUkuiRMLI
  4. http://www.youtube.com/watch?v=RhWh1dECzCY
  5. http://www.youtube.com/watch?v=6lFtAWoiRN4

Javascript 使用 parseInt() 時務必指定進位基數

星期六, 九月 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

Javascript 字串轉數值

星期六, 九月 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網頁設計師手札

Javascript – 數值轉字串

星期六, 九月 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網頁設計師手札