Posts

東京大学のOCWについて

東京大学のOCWには以下の問題があるようである。 1つ目は、Adobe Flashでビデオ配信されていることである。これ自体は、現状では問題ないのだが、今のメンテナンス状態を考えると、Adobe Flash Playerが提供されなくなった後に、HTML5等で更新されることもなさそうに思えるので、残念なことになってしまうかもしれない。 2つ目は、iiionline.iii.u-tokyo.ac.jpというウェブサイトへのリンクになっているビデオがあるということである。このウェブサイトが今はもう動いていないようである。ocw.u-tokyo.ac.jpにちゃんとまとめておかなかったのは失敗だろう。おもしろそうな講義もあったので残念である。

OCW「ビッグデータ時代の人工知能学と情報社会のあり方」(東京大学)

ビッグデータ時代の人工知能学と情報社会のあり方は、コースの半分近くのビデオは非公開になってしまっている。公開されているビデオは、人工知能に関する概論的な講義である。 私は、人工知能について学んで来なかったのだが、深層学習が人工知能の研究においてどのような意味を持つかを解説した第9回第10回は特におもしろかった。

OCW「情報工学概論A」(東京大学)

東京大学の「情報工学概論A」は、インターネットを実現する技術についての講義であった。 インターネットの運営に関することから、イーサネット等からHTTP等までのネットワークの技術、暗号化技術について、解説している。 内容は、基礎的なものであるので、2018年の今でも視聴する価値はあると感じた。しかし、実例として触れられているものは、古くなってしまっている。

OCW「データベース」(上智大学)

大学の公開している日本語の講義はいろいろあるのだが、内容が一部だけではなく役に立つものと言うと、あまりないように思える。 また、そのような講義がまとめられている物も見つけられない。 上智大学理工学部「データベース」は、 データベースとSQLについて全く知らなかった時期に、SQL ゼロからはじめるデータベース操作を 読むのと同時に視聴して大変役に立った。

スウェーデンとElsevier

Sweden ends contract with science publisher Elsevier, moving for open access for scientific articlesによると、 2018年6月30日から、スウェーデンの研究者は、Elsevierの学術雑誌に投稿したり、論文を閲覧したりできなくなるらしい。 商業的な学術雑誌ももう少しリーズナブルな価格になって欲しい。 オープンアクセスであれば、確かに私は助かるが、継続性があるのか良く分からないので。

Windowsマシンのuptimeを知る方法

どうやら、uptime(1)コマンドにそっくりなものは、Windowsの標準機能にははないようだ。 その代わり、以下のようにすると、起動時刻を知ることができる。 > net statistics server \\client1 のサーバー統計情報 統計情報の開始日時 2018/05/15 6:43:10 受け付けたセッション 1 タイムアウトしたセッション 0 エラーが発生したセッション 0 送信バイト数 (KB) 0 受信バイト数 (KB) 0 平均応答時間 (ミリ秒) 0 システム エラー 0 アクセス許可違反 0 パスワード違反 0 アクセスしたファイル 0 アクセスした COM デバイス 0 スプールした印刷ジョブ 0 バッファーのオーバーフロー回数 ビッグ バッファー 0 リクエスト バッファー 0 コマンドは正常に終了しました。

岩波講座 ソフトウエア科学6「オペレーティングシステム」#7

セマフォ

前節の排他制御の方式は、現実のシステムには適用しにくい。また適用するにしてもビジーウェイティングを使っているので、ごく短いクリティカルセクションへの利用に限定されるべきである。

より一般的な排他制御として、セマフォを導入する。

セマフォはプロセス間通信の伝達に使われる整数型の変数である。

セマフォは、0と1以外の値も取ることができ、より多くの情報を伝達できる。

セマフォは一般に、イベント変数と呼ばれるプロセス間の共通変数の一種である。

セマフォの変数へのアクセスも排他制御が必要である。

プロセス間で伝達されるイベントには以下が含まれる。
(1) プロセスがクリティカルセクションに入った。
(2) プロセスがクリティカルセクションから出た。
(3) 新しいプロセスが始まった。
(4) 入出力操作が始まった。
(5) 入出力操作が完了した。
(6) メッセージを受け取った。
(7) リソースを受け取った。
(8) リソースを開放した。

イベント変数は、
(1) イベントの履歴を記録するデータ構造(整数型の変数)。
(2) イベント変数の待ち条件が満たされるのを待っているプロセスの待ち行列。
からなる。

セマフォにはP命令(wait命令)とV命令(signal命令)が定義される。

P命令は、引数SについてS≧1が満たされるまでプロセスを一時停止させるのが役割である。もし、S≧が満たされていればSを1減らしてプロセスは継続する。

V命令は、引数Sのセマフォの待ち行列で待っているプロセスの中から1つが選ばれ、実行可能状態に移行させる。ディスパッチャーは実行可能プロセスから1つを選び実行する。もし、Sのセマフォの待ち行列が空であった場合には、Sは1増加させられVを実行したプロセスは続行される。

P命令とV命令は、セマフォを提唱したダイクストラの母語であるオランダ後のPasseren(パスを許す)とVerhoog(起こす)に由来する。

P命令とV命令はそれぞれ分割不可能でなくてはならない。つまり、ひとときにはある1つのセマフォに対して、1つのPまたはVしか実行できない。

P、V、ディスパッチャーは、いずれも共通データである待ち行列を操作するので、排他制御を必要とする。