2009年2月22日 星期日

[醫學] 電腦族每天必喝的四杯茶

面對電腦時間長了不好,那該怎麼辦?
其實每天四杯茶,不但可以對抗輻射的侵害,還可保護眼睛。

一、上午一杯綠茶:綠茶中含強效的抗氧化劑以及維生素C,不但可以清除體內的自由基,還能分泌出對抗緊張壓力的荷爾蒙。

綠茶中所含的少量咖啡因可以刺激中樞神經,振奮精神。

不過最好在白天飲用,以免影響睡眠。

二、下午一杯菊花茶:菊花有明目清肝的作用,有些人就乾脆用菊花加上枸杞一起泡來喝,或是在菊花茶中加入蜂蜜,都對解鬱有幫助。

三、疲勞了一杯枸杞茶:枸杞子含有豐富的β胡蘿蔔素、維生素B1、維生素C、鈣、鐵,具有補肝、益腎、明目的用。
其本身具有甜味,可以泡茶也可以像葡萄乾一樣作零食,對解決“電腦族”眼睛澀、疲勞都有功效。

四、晚間一杯決明茶: 決明子 有清熱、明目、補腦髓、鎮肝氣、益筋骨的作用。

參考資料:
[醫學] 電腦族每天必喝的四杯茶

2009年2月15日 星期日

mmap 和 VMA

lseek - move the read/write file offset
off_t lseek(int fildes, off_t offset, int whence);
參考網址

由 user process 角度來說明的話,VMA 是 user process 裡一段 virtual address space 區塊;virtual address space 是連續的記憶體空間,當然 VMA 也會是連續的空間。VMA 對 Linux 的主要好處是,可以記憶體的使用更有效率,並且更容易管理 user process address space。

要在AP中直接設定裝置或者直接存取實體記憶體位址,
在作業系統的保護下,通常要透過ioctl或read/write方法。

但是對於大量資料進出,比如video或streaming這樣的方法就顯的效能很低,所以Linux提供了另外一套機制叫做mmap。
透過mmap可以把檔案映射到使用者虛擬位址空間,透過這個指標就可以存取檔案。
那檔案怎麼支援mmap呢?答案是要實做mmap這個方法,把上層的mmap請求,
轉換成實際的動作。

那怎麼利用mmap做實體記憶體的應用呢?
AP要利用/dev/mem這支檔案,它可以映射到實際的記憶體。
DRIVER端則要用ioremap把實體記憶體轉換成核心虛擬位址,之後就讀寫這個記憶體指標。

最後簡單圖解如下:
AP->開啟/dev/mem->mmap到實體記憶體位址->AP快樂的存取
DRIVER->module_init時做ioremap->取得記憶體指標->DRIVER快樂的存取

從另一個觀念來看,VMA 可以讓 Linux kernel 以 process 的角度來管理 virtual address space。Process 的 VMA 對映,可以由 /proc/<pid>/maps 檔案查詢

int open(const char *pathname, int flags, mode_t mode)
flags:當檔案打開時,可以做的動作write,read,execute
mode:當檔案建立時,可以對於owner,user,group的權限
參考網址

void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
start指定記憶體位置,通常都是用NULL。start anywhere
offset指定檔案要在那裡開始對映,通常都是用0。
protections:權限:PROT_READ,PROT_WRITE,PROT_EXEC,PROT_NONE
flags:MAP_FIXED,MAP_PRIVATE,MAP_SHARED,MAP_ANONYMOUS,MAP_DENYWRITE,MAP_GROWSDOWN
MAP_LOCKED

------------------------------------------------
munmap關閉記憶體對映。
int msync(const void *start, size_t length, int flags);
如果開啟記憶體對映是希望寫入檔案中,那麼修改過的記憶體會在一段時間內與檔案稍稍有點不同。如果您希望立即將資料寫入檔案中,可使用msync。

start為記憶體開始位置,length為長度。

flags則有三個:
MS_ASYNC : 請Kernel快將資料寫入。
MS_SYNC : 在msync結束返回前,將資料寫入。
MS_INVALIDATE : 讓核心自行決定是否寫入,僅在特殊狀況下使用。
網址

參考資料:
Linux 的 Virtual Memory Areas(VMA):基本概念介紹
實體記憶體映射技術:mmap ioremap
Linux 的 Virtual Memory Areas(VMA):基本概念介紹-2
小談 mmap() 與 VMA
Linux程式設計-13.記憶體對映mmap

2009年2月8日 星期日

2009.02.09

上一篇的背英文單字的方法可能還是不適合我,
還是用我當時在準備研究所的方法吧~

key word:1-1-1-1-1-7-8-10-15-20-30-30-30-...

上面那一個是什麼意思呢?

是間隔幾天再讀此篇的意思!

例如:
我今天(9號)讀第57篇,這個特候要看第一個1,表示一天後,我還要再看57篇一次,也就是明天(10號)。
明天(10號)讀完了之後,要看第二個1,表示再過一天,還要再讀一次,也就是(1/11)

換句話說,有哪幾天要讀第57篇呢?
1/9-1/10-1/11-1/12-1/13-1/14-1/21-1/29-2/8-2/23-3/15-4/15-5/15...

而要注意的是,在1/10同時要讀58篇

這樣感覺好像會到最後,有一天要讀10篇以上的感覺,其實還好,因為,前面的你非常熟了,所以根本花不了多少時間。

另外,用這一個方法的好處是,今天讀完,明天可以馬上檢視你今天讀的進度,若有一些地方還不是很熟的話,就馬上加強它。通常過了前面的五天,那一頁就有一定的程度了,7天過後,再來測試一次,這麼一來遠程記憶也可以了~

以這個方法以經過個一個星期了,應該還不錯~

這一個方法比較適合基礎科目,集中火力;像是研究的話,就不適合了,因為,這個要花很多時間,而研究只要出來,並且透過blog協助記憶,等有需要再查就好,不需要記下來~

以上!!