601kis00277MARS 1995/10/09 07:16:06 前へ 後へ 上へ

DOS版なら、

599へのコメント

シングルタスクですから、その強み?を生かして、よく、姑息な手を用います。

ホストプログラムって、結局は、ファイル管理と、メッセージだけですから、
どのみちメモリはたっぷり余るので、管理ファイルとかは、なるべくメモリに
展開して持たせておきます。こうすると、小さなファイルを頻繁に読みに行く
必要が無いので、高速になりますし、HDDの負担も軽減できるのです。

ま、この目的なら、管理ファイルをラムディスク上に取れば近い効果はありま
すね。あと、HDDの負担軽減には、大量のディスクキャッシュが有効です。
4Mも載せておくと、通常のユーザ相手だと未読の一気読みでも、キャッシュ
で間に合ってしまいます。

>アクセス時間オーバーのタイムアウトが動作しない等の制限はあるものの

こういう場合は、割り込みタイマ等を利用して、一種のワッチドッグ的なプロ
グラムをを組んでおくこともできのすね。もっとも、ふつうのホストでは、入
力待ちルーチンの所で時計をポーリングして監視しているのがふつうです。こ
の方法は、むしろ、回線異常やハングアップ対策に有効ですね。DOSでは、
いざという時には、プログラム実行中にリセットというのもアリですから、デ
ーモンより怖いハルマゲドンです。(ボクの行きつけの某ネットには、コケた
時にパソコンごとパワーオンリセットするハードウェア〜トラ技’63−12
を付けてあります。)

>getpid()の値が衝突して不幸になるであろう.

衝突しても、実メモリ上では別に領域を取ってますから、読みだしなら不都合
はありません。読み書きが入り乱れた時の動作はたいへん恐そうです。という
か、もともとBIOS自体がシングルタスクなので、どのみち無理なのはあた
りまえなのですが。このあたりは、MS窓のDOS窓でも同じこと。95だと
かなり使えるという話しで、ワープだとまあまあだいじょうぶらしいです。

ただ、これらのOSは、マルチタスクとは言いながら、OS側が勝手にタイム
スライスで切り替えている(I/Oとかとの同期は考慮されていない)だけな
ので、ワーストケースを想定すると安定して動くというのは奇跡的な気がしま
す。このへんは、UNIXでも、完全なリアルタイム処理にはならないので、
タイミングと、各処理部分が取るバッファで持ちこたえる時間のからみあいに
なるでしょうね。つまり、入力時の応答性を取るか、連続動作での実効速度を
とるか。

					MARS

前へ 後へ 上へ