2010年1月16日 星期六

Energy Efficient Integrated Scheduling of Unicast and Multicast Traffic in 802.16e WMANS

前言 :
隨著多媒體(Multimedia)服務的興起,mobile station所處理的工作,不單單就只有處理unicast服務而已,而是再多出multicast服務。
如果這時後還是繼續使用burst scheduling(集中式傳送),將不適合用在這unicast及multicast同時存在的環境上,因為burst scheduling當初在設計時,並沒有考慮到multicast service的傳輸特性。


使用環境分析 :
因為要接受multicast 資料的關係,所以所有的MS會在同一時段同時醒過來,處理完multicast的資料後,接著就會進入睡眠狀態,一直到下一個週期的multicast資料送過來時再醒過來,或者是有unicast的資料要收發時,才會再醒過來。

如果MS在 開始接收multicast資料之前 或是 接收完multicast資料之後,隔不久剛好有unicast的資料要收發,
如果此時可以讓unicast的資料,延後或提前收發,立刻接續在multicast資料後面(或前面),那麼這樣是不是可以減少sleep → awake 的耗電量(awake→sleep的耗電量忽略不計)呢?

如果遇到這樣的情況時,那麼要怎麼決定到底要繼續保持idle狀態以服務接下來的unicast資料,還是要進入休眠狀態呢?

如果idle時間 大於 (sleep→awake的耗電量)/(idle狀態的耗電量),則MS需由idle進入sleep狀態 ;
反之idle時間 小於等於 (sleep→awake的耗電量)/(idle狀態的耗電量) ,則MS繼續維持idle狀態。

假設 Threshold = (sleep→awake的耗電量)/(idle狀態的耗電量) , MS開始接收multicast資料的時間點為ts,結束接收multicast資料的時間點為te,
而如果MS在 (ts - Threshold) 或 (te + Threshold) 這2個時間範圍內有unicast資料要做收送,
則Ms在開始(或結束)接收multicast之前(或之後),就不要進入休眠模式,一直保持著idle狀態即可。

Scheduling Set Based Integrated Scheduling (SSBIS) 的作法 :

Step 1 : SSBIS 事先將所有的MS分成multicast scheduling set及unicast scheduling set.
任一MS只會屬於multicast scheduling set或unicast scheduling set 其中之一,並不會同時屬於兩者。

Step 2 : 在multicast scheduling set內的MS,它們的unicast data將接續在相鄰的multicast tranmission period被傳送。

Step 3 : 而在unicast scheduling set內的MS的資料,將以burst mode(集中式傳送)的方式將資料送出。


結論 :

SSBIS與LVBF相比,因為SSBIS有考慮 該繼續保持idle狀態 或 進入休眠模式 這個因素,所以SSBIS的省電效果會比 LVBF來得好。


Q & A :

Q1 : 根據Simulation的第二個實驗(Figure 4),不論MS的數量變多或變少,為何當broadcast group越多,SSBIS所表現出來的整體的效能會越好?

A1 : 因為broadcast group越多,被分配到multicast scheduling set內的MS,若要收送unicast資料時,就有更多的multicast transmission period可供選擇。

2009年11月11日 星期三

Improving Mobile Station Energy Efficiency in IEEE 802.16e WMAN by Burst Scheduling

前言 : 節省電源的基本觀念為集中式傳送(burst transmissions),而集中式的傳送能達到最小的電源消耗,且也有符合802.16e所規範的QoS.

Longest Virtual Burst First (LVBF)的作法 :
Step 1 : 將所有的MS分成2種角色,一個是primary MS,另一個是secondary MS。Primary MS只有唯一一個,而secondary MS則會有許多個。
而被BS選出來的primay MS便保持在awake狀態,其餘的secondary MS則進入休眠狀態。

Step 2 : 當MS被BS分配成為Primary MS時,則該MS便能享有最大最多的資源(頻寬 or time slot),此時它就可以毫無忌憚地傳送接受資料,一直到系統所規定的傳輸資料上限為止,接著就進入休眠狀態。

Step 3 : 當Primay MS已達到傳送上限,則BS再從目前的這一群secondary MS,選出一個MS成為primary MS來進行集中式的資料傳輸作業。

在primary MS於awake狀態進行資料傳送的過程當中,其餘的secondary MS由於QoS的關係,必需在這段過程中,由sleep → awake,做一些資料傳送的動作,以滿足其minimum data rate的要求,這樣才不會違反QoS。

而上述這3個步驟在進行中的時後,必需要遵守3個原則。

scheduling rule 1 : 一但MS進入awake狀態,scheduler就必需盡可能分配愈多的time slot給該MS。
scheduling rule 2 : scheduler必預選擇品質較好的通道給MS使用,以避免傳送時發生錯誤而需重傳。
scheduling rule 3 : 除非是為了滿足QoS的要求,否則若MS一但進入睡眠狀態,都不應被喚醒。

結論 :

1. 當MS的數量比較少時,LVBF在效能上會比Round Robin來得好,因為MS可以有較長的時間傳送資料,且也可減少狀態轉換次數。


2009年10月31日 星期六

將Vista、Windows Server 2008的開機磁區複製到另一顆HD後,郤無法開機?

案例 :

將伺服器上原本已有安裝Windows Server 2008的HD,用Ghost 複製到另一顆HD上,
然後將原本的HD卸除,改以這顆新複製的HD來開機,但在開機後郤出現如下所示的錯誤訊息...

============================================================
Windows 無法啟動。 最近的硬體或軟體變更可能原因。 若要修正問題:

1.插入您的 Windows 安裝光碟並重新啟動您的電腦。
2.選擇您的語言設定,然後按一下 [下一步]。
3.按一下修復您的電腦。

如果您沒有這片光碟請連絡您的系統管理員] 或 [電腦製造商以取得協助。

檔案: \Windows\system32\winload.exe

狀態: 0xc00000001

資訊: 無法載入選取的項目,因為應用程式遺失或損毀。
============================================================
詳情請參考 http://h50178.www5.hp.com/support/GU404PA/solve/82920.html ,以下為全文複製。

原因 :

在 Vista 之前的 NT 版本中,開機檔案 (ntldr、Ntdetect.com 和 boot.ini) 全部位於開機磁碟作用中主要分割區的 root 中。
在 Vista 中,這三個檔案已被 bootmgr、Boot Configuration Data (BCD) 和 winload.exe 取代,
但只有 bootmgr 和 BCD 仍在系統分割區的 root 中,
而 winload.exe 現在則常駐在 Boot 分割區的 Windows/system32 資料夾內。 BCD 檔案已取代 boot.ini檔案。

舊版的 WinNT 使用 boot.ini 檔案尋找硬碟和分割區的位置。
結合 boot.ini 資料和電腦的 BIOS 資料後,ntldr 會判斷用來開機的 Windows/system32 是在哪一個硬碟和分割區內。

Vista 已變更開機程序: 硬碟獨有的磁碟簽章 (從 MBR) 儲存在 BCD 中。
將影像檔 (Rdeploy、Ghost 等) 回復到另一個硬碟後,簽章也會隨之變更。
Bootmgr 會掃描所有硬碟以尋找此簽章,如果找不到,開機程序便會停止並顯示「unable to access \windows\winload.exe」。


解決辦法 :

* 在製作影像檔之前:

如果 Vista 位於開機磁碟的主要分割區中,便會使用 BCDedit 命令來「一般化」安裝作業,
以建立影像檔 (因此會從目前所用的分割區開機,而不檢查磁碟簽章)。
此方法與 Microsoft sysprep 公用程式所使用的方法相同。 按一下滑鼠右鍵開啟命令提示字元,
選擇「以系統管理員身分執行」後,再鍵入下列命令:

bcdedit /set {current} osdevice boot bcdedit /set {current} device boot bcdedit /set {bootmgr} device boot


*在複製之後:

有數種可能的程序,下文摘自 http://support.microsoft.com/kb/927391

方法 1: 使用「啟動修復」選項來修復 BCD 存放區
  1. 將 Windows Vista (or Windows Server 2008)安裝光碟放入光碟機,再啟動電腦。
  2. 於光碟開機提示時按下任一按鍵。
  3. 選取語言、時間、貨幣和鍵盤或其他輸入方法後,再按一下「下一步」。
  4. 按一下「修復您的電腦」。
  5. 依序按下欲修復的作業系統和「下一步」。 6. 按一下「系統修復選項」對話方塊中的「啟動修復」。
  6. 重新啟動電腦。

方法 2: 使用 Bootrec.exe 工具重建 BCD 存放區。如果前一個方法無法解決問題,
便可使用 Windows Recovery Environment 中的 Bootrec.exe 工具來重建 BCD 存放區。
  1. 將 Windows Vista (or Windows Server 2008) 安裝光碟放入光碟機,再啟動電腦。
  2. 於提示時按下任一按鍵。
  3. 選取語言、時間、貨幣和鍵盤或其他輸入方法後,再按一下「下一步」。
  4. 按一下「修復您的電腦」。
  5. 依序按下欲修復的作業系統和「下一步」。
  6. 按一下「系統修復選項」對話方塊中的「命令提示字元」。
  7. 鍵入 Bootrec /RebuildBcd 後按下 Enter。

如果原本機器上有安裝Hyper-V,在更換HD後,會連帶造成Hyper-V無法正常運作,
出現Hypervisor未啟動的錯誤訊息,此時只要進入命令提示字元,
輸入" BCDEdit /set hypervisorlaunchtype auto "的指令,再重新開機就能解決。

2009年10月8日 星期四

Adaptive Sleep Mode Algorithm in IEEE 802.16e

主旨及問題 :
由於傳統的Type 1,在睡眠時間到達maximum sleep window interval之後,如果依然還是沒有資料要傳輸,
那麼就會持續使用maximum sleep window interval作為其睡眠時間的依據,
但此時接著就會產生2個問題。

1. 傳輸延遲 : 當接下來如果有data在睡眠時產生,MSS需等到睡眠時間結束後才能甦醒,
待進入Listen window而得知有資料要傳輸,最後才跳離sleep mode回到normal mode.

2. 不必要的電源損耗 : 如果MSS睡到一半的時後,突然有資料產生要傳送,
此時MSS若不等到maximum sleep window interval結束,
而是只再睡一小段時間(假設 此一小段的時間 小於 maximum sleep window interval ),
那麼與原本要睡完一整個maximum sleep window interval時間相比,
此時MSS就會有不必要的電源損秏產生。

P.S : 此篇論文的假設前提,是架構在連MSS進入睡眠時,都會有電源消耗的情況之下,
而並非一般普遍所認為的,在進行睡眠時不會消耗電源的情況。

作法 :
若MSS的睡眠時間,已到達maximum sleep window interval,接下來不再是睡maximum sleep window interval這個時間,
而是改睡AVG這個時間長度,AVG = (initial sleep windows size + maximum sleep window size)/2,
除此之外,AVG亦會以2的指數倍成長,最大不得超過AVGmax這個時間長度(由user自行訂定)。
而當MSS的睡眠時間長度又到達AVGmax後,下一個睡眠時間長度又將再回到AVG。

換言之 : initial sleep window size 小於等於 AVG 小於 AVGmax 小於等於 maximum sleep window size

MSS一整個睡眠時間長度變換過程如下 :

Normal mode → initial sleep window size → initial sleep window size x 2 → initial sleep window size x 4 → initial sleep window size x 8 → ..... → maximum sleep window size → AVG → AVG x 2 → AVG x 4 → AVG x 8 → ..... → AVGmax → AVG → AVG x 2 → AVG x 4 → AVG x 8 → ..... → AVGmax → .....

結論 :
因為MSS的睡眠時間在第一次到達maximum sleep window interval之後,接下來就會改睡AVG (or AVGmax)這個時間,
又AVG & AVGmax皆小於maximum sleep window interval,所以即使接下來有資料要傳送,
那麼與原本要睡完一整個maximum sleep window interval相比,可以減少傳輸延遲及不必要的電源消耗。

2009年9月11日 星期五

IPSS: Integrated Power Saving Scheduling Algorithm for IEEE 802.16 PMP Networks

英文 : IPSS: Integrated Power Saving Scheduling Algorithm for IEEE 802.16 PMP Networks
中文 : 應用於IEEE 802.16網路之整合性節能演算法

主旨 :

1. 此篇提出的目的,並非在改進之前某一個排程演算法的缺點,而是在於提出一個新的實作方法。
其最主要的作法,就是先將服務劃分為即時性服務與非即時性服務。再依此對這2個群組重新做排程的動作,預先分配頻寬,避免在單一frame裡有過多的MSS存取網路。

2. 在BS的UL/DL scheduler與PSC Controller之間,加入一個IPSS模組,利用此模組控制UL/DL scheduler與PSC Controller,
使得MSS即使在睡眠模式的運作之下,連線服務品質仍能被滿足,另一方面藉由控制PSC Controller,驅使MSS根據IPSS排程結果進行睡眠模式的運作。

作法 :

1. 先提出 sub-cycle & scheduling cycle的概念,以及對服務做分類..

Q : 那又為何要使用sub-cycle & scheduling cycle ?
A : sub-cycle其實也就是計算出在不違反delay constraint的原則之下,最多能夠延遲多久才能資料送出的這個值。

而scheduling cycle是要給非即時性服務所使用的值,沒有什麼嚴格限制的要求,也因為如此,所以其中的β值,才可以自行任意訂定。

2. 有了sub-cycle & scheduling cycle的值之後,才能夠計算出該預留多少頻寬分配給group 1 & group 2.

3. 計算該預先保留分配多少頻寬給MSS,以及該MSS要在哪一個Frame( or 時刻)醒過來.

4. 每間隔一個scheduling cycle的時間,IPSS會將這些分散在β個sub-cycle的頻寬資源做重新分配給下一個group 2的MSS使用。

同理,每間隔一個sub-cycle的時間,IPSS將group 1的頻寬資源做重新分配給下一個group 1的MSS使用。



導師同學發問時間...

Q : 為何針對Figure 4.2(a) & Figure 4.2(b)的實驗結果圖,採IPSS作法,能得到將近100%的average sleeping ratio ? 而MMPS+WFQ的作法,以及without Mgnt+WFQ的作法,其average sleeping ratio,郤不會那麼漂亮,而且還會隨著MSS數量的增加,而有下降的驅勢?

A : IPSS的作法,最主要是充份利用delay constraint。當收到封包後,就盡量往後面一直拖一直拖,拖到不能再拖,delay constraint快到了之後,擠到最後一刻才把資料送出去,所以可以有充足的睡眠時間。

而MMPS & 傳統的802.16,並不會拿delay constraint做為其考量的依據,如果有收到封包後就馬上傳送,傳送完又要再等一段時間來進入休眠模式,所以average sleeping ratio才不會那麼高。

而如果MSS的數量又逐漸增多,MSS之間能彼此配合一起共同睡眠的時間又會相對地變少,到最後可能幾乎就無法再進入休眠狀態。

如何實作SQL Server 2005 2008 DB Mirroring (上集) ?

前言 : 要完成SQL Server DB Mirroring,並能fail over,至少需要三台機器。
這三台機器的角色分別是Principal(主體)、Mirror(鏡像) & Witness(見證)。

Principal 主體 : 資料庫預設存放的機器

Mirror 鏡像 : 當需要做fail over時,資料庫會從主體移轉至鏡像。

Witness 見證 : 見證伺服器用來監控主體是否能正常運作,當見證伺服器發現主體有問題,就會自動將資料庫切換至鏡像伺服器。

P.S :
1. 當fail over發生時,主體 & 鏡像 所屬的機器是會改變的。並非某台機器將綁死某個角色而不再變動。

2. 鏡像資料庫是無法被存取的,只有主體資料庫才能被存取,所以SQL Server的版權,只要買一套即可。



Step 1 : 建立DNS Server

Step 2 : 開始 → 執行→ 輸入 dcpromo ,建AD,建立新樹系。

Step 3 : 將其它PC加入該domain (例 : OASIS.corp)

Step 4 : 在AD內新建一帳號,取名為SQLService,為的就是要來啟動SQL服務 ; 又因為此帳號是用來啟動SQL服務,所以有管理SQL Server的最高權限(等同sa)。

假設已將SQL Server 2005 2008 安裝完畢。

Step 5 : SQL Server 組態管理員 → SQL Server 服務 → 開啟 SQL Server (MSSQLSERVER) ,將登入身份由Local system改成剛剛建立的SQLService(例 : OASIS\SQLService)

Step 6 : 確認 DNS的record是否正確

Step 7 : 確認 SQL Server 組態管理員 → SQL Server網路組態 → MSSQLSERVER的通訊協定 → TCP/IP 內的IP與port是否正確。

P.S : 在安裝SQL Server完畢且SQL Server曾運行一段時間之後,若本機電腦的IP曾更換過,則TCP/IP內所記載的IP與port,有可能與現行狀態不符合。雖然此種情況不會影響到SQL Server的正常運作,但有時在做一些特殊設定時,會參考到此TCP/IP內的設定值,但因為TCP/IP內的設定值,與現在本機電腦真正在使用的IP不同,所以此時就會發生無法順利完成設定的情況,就得來此做檢查。

Step 8 : 開始建立主體、鏡像 & 主體 伺服器,在設定過程當中,端點名稱可隨意取,但是不要用中文。

2009年9月9日 星期三

arg max 的解釋

y=f(x) , x為input , 將x丟入f函式後就能得到y這個值。

z = max f(x) : x的值可能有很多種,將x丟入f後,那麼也會相對地產生許多y值,那麼在這眾多的y值當中,會有一個最大的y值,而 z 就是指這個最大的y值。

w = arg max f(x) : 將x丟入f後,會產生最大的y值(也就是z),而w就是能讓f產生最大y值的參數x值。

例 :

x={1 , 2 , 3) , f(1) = 20 , f(2)=50 , f(3) = 5 , 則 y={20 , 50 , 5} 所以 z = 50 , w = 2 .