Engineer Hacks

インフラサーバ系エンジニアが考えたこととか勉強したことのメモ

モバイルネットワーク論2011_04メモ

周波数

周波数 = 1/波長

で、周波数にはキャリア周波数ってのがあって、その上に情報を乗っける。

特性

低い周波数の電波は、電波が通りやすいけど、情報は少ない。逆に高い周波数は、電波が通りにくいけど、情報は多くのせられる。で、そこそこ情報がのせられて、電波の通りが良いのが、1GHzより小さいところ。なので、TVと携帯で取り合っている。

音で実験

440Hzの音を出してみる。波長は、 440 = 1/λ で、代替2.26m。 この後、同じ音を出す現象を、時間軸で見るのと、周波数を横軸として強さを縦でとったスペクトラムの解説。

周波数と変調

2200Hzの波に、100Hzの周期で、音を出しているときが1、出していないときが0とする。このとき、オシロスコープで見ると、出ているところ、出ていないところでの波が見える。このときの、スペクトラムってどんな感じになるでしょう?

2200Hzが出る出ないなので、2.2khzのとこだけ大小してもいいと思われるが現実は異なる。実際にはスペクトラムは横に広がっていく。実際にスペクトラムをオシロスコープで見ると、2.2khzの横に、400hz分だけずれて2.6khzのとこに出たりする。//これ何で???

ところで、10Hz = 10bps ぐらいが送れると言われている。実は、もっと送れることも送れないこともある。それはなぜか?以下に続く。

通信品質(S/N比)と容量(Cbps)と帯域幅(Hz)

Hartley-Shannonの定理

C = B * log2 (1 + S/N)

C = B * log2 ((N+S)/N) としても良い

めちゃめちゃ基本式であり、これを知らずして情報は語れない。 何をいっているかというと、Bは一定なときに、信号に比べて雑音が大きいと、log2 (1)にって0に近づくので、帯域容量はへぼくなる。逆に、信号比がいまいちでも、帯域幅Bを大きくすれば、容量はあげられる。

なぜHartley-Shannonが導ける?

I = log2N

が、Hartleyの情報量だった。Nは選択肢の数。

電流と電圧と電力の話

豆電球Rを乾電池でつけるときの公式は、

V = RI (オームの法則

となる。電力は

P = IV = RI2 = V2 / R

である。電波の強さの単位は、W(Watt)と書けるのだけど、電波を受けるときに、アンテナには抵抗(インピーダンス)がある。なので、

電力P = V2 / R  //R=アンテナの抵抗、V=電界の強さ

と書ける。電界は、計ることが出来る。このあたりの話を踏まえてつつ・・・。

もっかいHartley-Shannon

C = B * log2 (1 + S/N)

(N+S)/N のとき、Sは信号の強さで、Nはノイズ。全体で電力比を表している。これは電力の比なので、電界に世界にもっていくと、 √(N+S)/Nと書ける。この√は、電界なので、計量可能となる。

ちょっと戻って、

C = Bs/2 log2 (1 + S/N) = Bs log2 √(N+S/N)

となる。Bsを大きくすれば、帯域幅を大きくするので、何回も送れる。シンボル一つの意味は、ログの後ろ(そもそものHartley情報量では、選択肢の数だった)の値。4bitおくりたかったら16になっているはず、選択肢の数が。言い換えれば√以下は、16になっている。

モバイルネットワーク論2011_03メモ

携帯キャリアの話

エリアを広げるのは大変

エリアを広げるのは、BTSを打つのはいいけど、中継区間の光ファイバの敷設が大変。

RNC(Radio Network Controller)ってなんで必要

ローミングしたときに、RNCが無いと折り返し通信ができない。もう一個は、BTSの管理のためにある。

回線交換とパケット交換の収入

日本だとトントンだけど、国外だと回線交換のが圧倒的。にも関わらず、パケット交換網のがトラヒックが多く、設備量が求められる。しかし、定額制に代表されるように、収入は上がらない。じゃあどうする?ってのが、キャリアごとの戦略。

キャリアの通信方式の変遷

  • SB:movaをやめて、WCDMAとLTE
  • Docomo: movaをやめて、WCDMAとLTE
  • AU: 全部やってる、WiMAXも含めて。カオス。

携帯のつながり方

  • IMSI :加入者識別子、International Mobile Subscriber Identity
  • MSISDN : いわゆる携帯電話番号、Mobile Subscriber Integrated Services Digital Network Number

最初に携帯電源をいれると、IMSIを使ってHLRへ位置登録しにいく。このとき、MSISDNじゃダメ。なぜかというと、電話番号を使っていないユーザにも対応できないから。

なんで、IMSIで電話しちゃだめなの?

2in1なんかもあるけど、固定電話はIMSIを持ってないので、固定電話にかけられなくなっちゃうから。

ページング

全ての携帯はページンググループに入っている。これを利用して、2段階呼び出しする。

  1. ページンググループに対して呼び出し(PICH)
  2. ページングメッセージで自分あてのメッセージがあるか探す(S-CCPCH)

免許関連

T: AD 10-008 202

は、電気通信回線設備認証

R: 005XYAA0233 のG1A、G1Bとか

工事設計認証というやつで、設計情報で認証をとれる。認証とは、第二条第11号の3に規定する証明則(特定無線設備の〜)のこと。 ちなみに、型式認定もあるけど、これは現物をもっていって取得する。

工事設計認証が普通なんだけど、認証で取得した情報はWEBで調べられる。すなわち、発売前の携帯無線方式や、どんな通信をするものかが、ある程度わかる。

免許不要局

  1. 微弱な電波(300MHzからかなり小さくなるよ)
  2. 市民ラジオ
  3. 出力電力が1Wより小さい + 技術基準適合証明(技適、TELECとかいう)
  4. 所定の手続きで登録したもの

モバイルネットワーク論2011_02メモ

情報量の話

Hartleyの情報量

I = log2N ただし、Iは情報量で、Nは選択肢の数。

例えば、1024の選択肢があれば、I=10。// 当たり前か。

何が嬉しいの?

  1. 大きな数も小さく表せる。仮にI=32 (=32bit)だったら、約43億の情報量。32bitPCを43億情報量PCって呼ぶの変だよね。
  2. 選択肢が1個しかなければ、情報量は0と表せる。

天気の情報量

晴:60% 曇:20% 雨:20% 雪:0% のときの情報量は? 感覚的には2bitより小さくなるはず、なぜならば均等なときはランダムで決めづらいが、今回はある程度推測がつくから。

エントロピー

コインの表裏が均等に出るやつだと、情報量は1bit。というのも、I = log2 1 なので。 それぞれが出る確率は P = 1/2 。抽象化すると、 P = 1/N

仮に表が80%出ちゃうようなコインのときの情報量を求めたい。

情報量を求めるには、選択肢の数が求めたいので、(当たり前だけど)まず確率を求める公式は、P = 1/N であり、変換すると N = 1/P となる。Pは0.8とわかっているのだから、Nは1.25ぐらいになる。同様に、裏はN=5となる。

情報量は、表と裏とで、両方求める必要があるので、それぞれの情報量に選択肢の出やすさをかけて、全ての和をとったものとなる。 すなわち、 I = 0.8 * log2 (1.25) + 0.2 * log2 (5) となる。これを頑張って計算すると0.72になる。

事象が起こる確率をバラバラとしたときの情報量の表し方

I = Plog2 (1/P) + ... として、事象を並べていけばOK。こう書いてもいい。 I = ∑ Plog2 (1/P) 。

これがエントロピーで、平均情報量といってもOK。

2bitの情報を送りたいときの、送り方の話。

例えば、11は大声、00はかなり小さい声として、11,10,01,00 として1回で送ってもいい。または、1と0 を2回送ってもいい。これは、送り方の話。最終的に受け取る情報量は同じ。でも、送るのが2回となった場合は、時間も2倍かかる。その代わり、エラーの確率も上がってくる。

ちなみに、最近の無線方式は、伝送方式をAdaptiveに変えるものが主流。

シンボル

さっきの例でいえば、大声はもシンボルの一つ。ノイズが全然なければ、1シンボルに大量のbitを突っ込んで送ってやってもいい。

参考

http://www.yc.tcu.ac.jp/~it/it2.pdf

モバイルネットワーク論2011_01メモ

モバイルネットワーク論2011_01

閲覧中でのメモ取り忘れなので、要点だけ覚えているところメモ。

人口衛生の見え方

  1. 地平線のところから、赤道上に垂線をひくと、30度が転写できる。
  2. 1:2:√3の三角形ができるので、上記の垂線の長さは3000km
  3. 衛生から、観測点まで引いた線の角度をθとすると、tanθ=6000km/32000km。これよりθは概ね5度。(計算機つかってOK)
  4. あとは、180 - (x + 30 + 5+ 90) = 55度 でおしまい。

ラジオの話

AMはkhzを利用しており、モノラル。FMはMHzでステレオ。

Quiz1

bitってどうやって送る? 音でも光でも電波でも、何でもOK。

Quiz4

1bit送受信時に、ARQ方式と、連続送信方式(受信側で多数決)した場合にどちらが効率よいか?ただし、何らかの情報を送信した場合に、bit落ちする確率は10%。

答えは、連続送信方式。具体的に全パターンを数え上げて計算すれば、わかる。 (直感的にARQだと、送る信号が全て異なる意味を持つから? 連続送信方式だと、全てのbitが同じ意味を持つ。)

WiMAX下り40MbpsとLTE下り40Mbpsってどっちが早い?

実際に周波数だけで比べちゃダメ。帯域幅も勘案した上で比較すること。

なお、どっちもMIMO使っているが実測ではそんなに速度はでない。

高速通信の条件

  • 基地局に近いこと = 信号が強いこと
  • 他の電波が無いこと = 雑音(ノイズ)が弱いこと
  • 他のユーザがいないこと

最初の2つより、 信号/雑音(ノイズ)の比が重要。 さらに発展させると、 bit/単位周波数 となる。理屈は後で。

地デジ

一般的に、アナログよりデジタルのが帯域が広いはず。 地デジでは、デジタルにして周波数帯域幅が減っているけどなんで? デジタルなのは、信号処理(圧縮等)ができるから。 //これ、アナログだと信号処理なんでできないの?

SystemSoftware2010_03メモ

2013/12/6に受講している。

Hints for Computer System Design のディスカッション。

http://research.microsoft.com/en-us/um/people/blampson/33-Hints/WebPage.html

Figure 1: Summary of the slogans に書いてあることが凄くイイ。

Process

プロセスとは

  • プログラムのインスタンス
  • CPUとメモリの仮想化。あたかもプロセスが一台のコンピュータを使えるか、のように見える。
  • segments -- text: program itself -- data: mallocされるやつで、heapにいれられる。 -- stack: argument, return address を入れておく。

プロセスの構造体はいろいろ入っとる。

Thread

プロセスは拡張マシンだとすると、スレッドは仮想CPUを使う。スレッドにはPC(Program Counter)があって、次の命令のアドレスが入っとる。スレッドが複数あるときは、PCを徐々にずらす感じかな。

A process is an abstraction of both memory and the CPU. It contains one or more threads. The thread is the abstraction of the CPU, including the PC (program counter) and all of the registers.

Signal

プロセスに割り込みしたいとき等に、プロセスへ通知する方法。

勉強もと

http://web.sfc.keio.ac.jp/~rdv/keio/sfc/teaching/system-software/system-software-2010/lec03.html

SystemSoftware2010_02メモ

SystemSoftware2010_02のメモ

前回同様に2回目もメモ。

研究者にとって重要なのは、アイデアじゃなくて、最初は問題定義。これは、ビジネスの世界でも一緒だね。Seedsベースの一発勝負は、失敗することも多い。

What is system calls?

System call is the interface between user side and kernel side. System calls are divided into :

  • process management
  • file management and I/O
  • file system management
  • network

授業で例になってたのは、open()、read()、write(); そりゃそうか。

The number of system calls of Linux 2.6.19 is about 320.

How system calls are executed?

  • user process: prepare argument such as filename.
  • user process: execute trap or interruption. これで、割り込み発生して、カーネル側にうつる
  • kernel: determine which system call is beign requested.
  • kernel: verify permission. これ、セキュリティ・ホールになりがち。
  • kernel: Do system calls here! 待たなくちゃいけないときは、ここでsleep。
  • kernel: 構造体とかをスッキリしてreturn.
  • user process: おかえりなさい。

ちなみに、setuidより

int $0x80

が、割り込みアセンブラ。interruptのこと。

How big?

around 5.6 + 1.3 M lines. 1/3 codes are about driver which is the biggest part of kernel codes. Second one is arch, such as CPU code.