2024年3月31日の投稿[2件]
C言語ネタです。
セマフォを使ったプロセス間での排他制御
セマフォは異なるプロセスが共有メモリへ同時に読み書きをしないために使おうを思っています。この記事だけではどう使ったらいいか見えませんが、セマフォの機能についてはシンプルに要点を突いて分かりやすい。こういう蛇足が無い説明は好きです。
ここでは他のプロセスの挙動は説明されていませんが、同じ名前のセマフォ(この記事では"/unko")を開いて同じ様に使います。同じセマフォを持った二つのプロセスがあるとして、後から sem_wait(sem) を実行した側は先に sem_wait(sem) を実行した側が sem_post(sem) を実行するまでブロック(動作を一時停止)します。sem_trywait(sem) を用いればブロックせずに戻りますので戻り値を見て処理を続行出来ます。
自力でセマフォを作ろうと思っていましたが、この方法でいいんでないかなと。
セマフォの方針が決まれば必要なことが一通りまとまったことになるので書き始められそうです。
まずは Art-Net を丁寧に受信する処理から進めます。ネットワーク上のすべての ArtDMX(スロットデータが列挙されたパケット) と存在する送信機の一覧を取得し、別プロセスから読み出して階層的に表示することを当面の目標とします。一種の Art-Net モニタでしょうか。画面を横に3分割し、左に送信機の一覧、中間に選択された送信機が扱うユニバース、右にスロットデータといった構成です。送信機とユニバースをキーボード(カーソル)操作で選択することも習作の一部となります。
これが作れなければ ArtNetPatch など作れませんし、最終的なパッケージでも欲しい機能です。
#C言語
セマフォを使ったプロセス間での排他制御
セマフォは異なるプロセスが共有メモリへ同時に読み書きをしないために使おうを思っています。この記事だけではどう使ったらいいか見えませんが、セマフォの機能についてはシンプルに要点を突いて分かりやすい。こういう蛇足が無い説明は好きです。
ここでは他のプロセスの挙動は説明されていませんが、同じ名前のセマフォ(この記事では"/unko")を開いて同じ様に使います。同じセマフォを持った二つのプロセスがあるとして、後から sem_wait(sem) を実行した側は先に sem_wait(sem) を実行した側が sem_post(sem) を実行するまでブロック(動作を一時停止)します。sem_trywait(sem) を用いればブロックせずに戻りますので戻り値を見て処理を続行出来ます。
自力でセマフォを作ろうと思っていましたが、この方法でいいんでないかなと。
セマフォの方針が決まれば必要なことが一通りまとまったことになるので書き始められそうです。
まずは Art-Net を丁寧に受信する処理から進めます。ネットワーク上のすべての ArtDMX(スロットデータが列挙されたパケット) と存在する送信機の一覧を取得し、別プロセスから読み出して階層的に表示することを当面の目標とします。一種の Art-Net モニタでしょうか。画面を横に3分割し、左に送信機の一覧、中間に選択された送信機が扱うユニバース、右にスロットデータといった構成です。送信機とユニバースをキーボード(カーソル)操作で選択することも習作の一部となります。
これが作れなければ ArtNetPatch など作れませんし、最終的なパッケージでも欲しい機能です。
#C言語
音響も照明もデジタルコンソールを使うのが日常となりました。
これらはとても高機能で便利な機器ですが、弱点を申し上げるなら起動に時間がかかることと、瞬間停電で動作不良に陥ることがあることです。
機器に与える電源は半仮設なことが多いためコネクタの脱落や接点不良の可能性は拭えず、老朽化した劇場ですと空調器等の動作によっては瞬間停電に等しい状態に陥ることもあります。
完全停電ならともかく、瞬間停電による動作不良はクライアントに理解を得ることが難しく、ストレージへのアクセス中に電源が落ちますとシステムが深刻な支障に至ることもあります。
前置きが長くなりましたが、瞬間停電や数分の停電があってもコンソールの動作を維持する対策を施したいので「無停電電源装置」を使いたい。いわゆる「UPS」です。
UPSのバックアップ方式には様々な種類があるのでどんな状況でも安心とは言い切れませんが、無いよりは明らかに事故率を下げられます。
ただ、UPS製品は据え置きを前提にした物が多く、仕込んでバラしてを繰り返すと物理的に傷みやすい。
ならばと思ったのが、デスビとUPSをラックケースに1パッケージにしたモノはどうだ?というアイデア。デスビとはノイズフィルタとサージカットを提供する電源分配装置と言えばいいでしょうか。欲しいのは瞬間停電に対策し、電源ノイズを軽減し、サージカットをする物です。安価なUPSでもサージカットは入っています。ノイズフィルタまで入っている物は重装備の設備用となりますが、コモンモードフィルタを入れれば事足ります。
私の印象ですが、UPSと言えば「OMRON」さん。安価な普及品から高性能な重装備品まで幅広くラインナップし、何よりも保守用の交換バッテリーの入手に安心感があります。バッテリーの寿命は3-5年のため、安いだけ品はいざ交換したいときにバッテリーが手に入らないこともあるからです。
コンソール周りの消費電力は300wくらいが平均でしょうか。上には上がありますが、一番頻度の高い条件を一般条件とし、もっと必要なら複数使うなり専用品として対策する方向で。
OMRONさんの製品で19インチラックにマウント出来そうな安価な製品ですと「BX50F」でしょうか。
「BX50F」

バックアップ容量は500VA/300wなのでもう一息欲しい気もしますが、小型軽量だし、空冷余白や付属パネルを含めても2Uに収まりそうなので実用的かなと。
実は、OMRONさんのBZ50LT2をすでに使っています。一見安っぽいのですが十分に使えています。事故に遭遇したことはありませんが、試験停電させたところ数分保持しました。卓周辺で単体の消費電力が300wを越える製品は多くありませんし、BX50Fは形が違うだけで同等の製品ですから十分使えるでしょう。
#照明器具
これらはとても高機能で便利な機器ですが、弱点を申し上げるなら起動に時間がかかることと、瞬間停電で動作不良に陥ることがあることです。
機器に与える電源は半仮設なことが多いためコネクタの脱落や接点不良の可能性は拭えず、老朽化した劇場ですと空調器等の動作によっては瞬間停電に等しい状態に陥ることもあります。
完全停電ならともかく、瞬間停電による動作不良はクライアントに理解を得ることが難しく、ストレージへのアクセス中に電源が落ちますとシステムが深刻な支障に至ることもあります。
前置きが長くなりましたが、瞬間停電や数分の停電があってもコンソールの動作を維持する対策を施したいので「無停電電源装置」を使いたい。いわゆる「UPS」です。
UPSのバックアップ方式には様々な種類があるのでどんな状況でも安心とは言い切れませんが、無いよりは明らかに事故率を下げられます。
ただ、UPS製品は据え置きを前提にした物が多く、仕込んでバラしてを繰り返すと物理的に傷みやすい。
ならばと思ったのが、デスビとUPSをラックケースに1パッケージにしたモノはどうだ?というアイデア。デスビとはノイズフィルタとサージカットを提供する電源分配装置と言えばいいでしょうか。欲しいのは瞬間停電に対策し、電源ノイズを軽減し、サージカットをする物です。安価なUPSでもサージカットは入っています。ノイズフィルタまで入っている物は重装備の設備用となりますが、コモンモードフィルタを入れれば事足ります。
私の印象ですが、UPSと言えば「OMRON」さん。安価な普及品から高性能な重装備品まで幅広くラインナップし、何よりも保守用の交換バッテリーの入手に安心感があります。バッテリーの寿命は3-5年のため、安いだけ品はいざ交換したいときにバッテリーが手に入らないこともあるからです。
コンソール周りの消費電力は300wくらいが平均でしょうか。上には上がありますが、一番頻度の高い条件を一般条件とし、もっと必要なら複数使うなり専用品として対策する方向で。
OMRONさんの製品で19インチラックにマウント出来そうな安価な製品ですと「BX50F」でしょうか。
「BX50F」

バックアップ容量は500VA/300wなのでもう一息欲しい気もしますが、小型軽量だし、空冷余白や付属パネルを含めても2Uに収まりそうなので実用的かなと。
実は、OMRONさんのBZ50LT2をすでに使っています。一見安っぽいのですが十分に使えています。事故に遭遇したことはありませんが、試験停電させたところ数分保持しました。卓周辺で単体の消費電力が300wを越える製品は多くありませんし、BX50Fは形が違うだけで同等の製品ですから十分使えるでしょう。
#照明器具