跳到主要內容

發表文章

目前顯示的是有「OS」標籤的文章

Network Security

在尋找偽裝( Masquerading) 攻擊時,找到共同筆記[1]所寫的內容,對於 網路安全的分類很詳細、清楚,另外筆記中也有其他像 Cloud Computing 的資料可以參考。 ----------------------------------------------------------------- [1]  http://sls.weco.net/node/10551 [2]  http://sls.weco.net/node/10655

洗鏡光 - DCview.com達人部落格

要找 working set 的資料,從 [1] 的網站中得到他寫的作業系統筆記,而他筆記的內容大部分是從洗鏡光老師投影片的內容整理而來,於是 google "洗鏡光" 找的洗鏡光老師的投影片,結果是:「洗鏡光 - DCview.com達人部落格」,這是介紹「相機」的網站阿,怎麼是洗鏡光 老師的 blog 呢? 後來自己認為:「洗鏡光老師不可能沒有自己的網頁」,於是在「程式設計俱樂部」論壇[2]中找到洗鏡光老師的發言,其中有老師的英文名字(   shene ),再使用 shene 找,於是在找到洗鏡光老師[3]在美國的網站。從老師英文的網站中,在得知老師在台灣的網站就是「洗鏡光 - DCview.com達人部落格」,繞了一大圈才在「文章列表-- 電子計算機(電腦)科學 (3)」中,真正找到洗鏡光老師的投影片。 在 blog 中,另外有2篇文章,有一篇是說明「浮點數精確度」的問題,是值得詳細閱讀。 -------------------------------------------------------------- [1]  http://nixchun.pixnet.net/blog/category/523852 [2]  http://www.programmer-club.com.tw/ [3]  http://blog.dcview.com/blog.php?m=Bj8CZQ%3D%3D

fork and exec

在 unix system 中,當某一個 child process 被執行時,系統會呼叫 fork() function,複製一份 parent process 的程式碼給 child process,child process 再使用 exec() function create 其他的 process 來執行想要的動作,在鳥哥的網站中[1]有詳細的說明。 Copy on Write technique: 但是當許多個 child processes 同時執行時,這種 fork() 的動作只需要 create 一份給多個 child processes,不需要重複的複製,以減少 memory 的使用量,這種技術叫做 copy on write 技術。 所謂 copy on write 技術就是允許 parent 和 child process 一開始就 share page,這些 share pages 被標示成 copy on write 的 page,當任何一個 process 想要寫入這些 share page 時,只要將它所需要的 share page 複製到另外 empty 的 memory space 中,才做寫入的動作。 --------------------------------------------------------------------- [1]  http://linux.vbird.org/linux_basic/0440processcontrol.php

Condition Variable

在 OS 第6 章中討論 Processes Synchronization 的問題,其中 Monitor 是一種 解決 Processes Synchronization 問題的程式結構,主要是利用 Semaphore 的機制來處理 critical section 的問題,而因為某些 threads 在 Monitor 中被執行,不僅是將資料 lock 住就可以了,有些時候必須要 Condition Variable 來限制某些條件之下,才能存取資料,在[1]中舉了一個例子,就是「 某個 thread 如果要從 stack 中讀取 data,如果 stack 中沒有 data 就必須等待 data 被 push 到 stack 中」。   在上述這種情況下,僅僅是使用 mutual exclusion 是不能夠滿足特殊條件下的需求,於是有 condition variable 的變數設定,引用 [1] 程式的例子如下: do { boost::mutex::scoped_lock guard(m_lock); ..... m_condition.wait(m_lock); } while (some condition); 完成條件叫醒等待中的執行緒 { boost::mutex::scoped_lock guard(m_lock); ..... m_condition.notify_one(m_lock); } -------------------------------------------------------------------- [1]  http://yumei.homeip.net/blog/index.php?m=08&y=09&d=25&entry=entry090825-091626&category=18 [2]