返信

YTさん、はじめまして。
拙著お読みいただきありがとうございます。

タスクとかスレッドっていう言葉はOSの用語です。
マルチタスクとかマルチスレッドとかいう言葉聞いたことありますか?
あのタスクやスレッドのことです。
正確に意味を理解するにはOSの基礎的な知識が必要で、
説明が長くなっちゃいますから(OSの入門書になっちゃうかも)
この場ではご勘弁ください。
GoogleとかWikipediaなどで調べてみるとよいでしょう。

で、392ページ近辺で使っているタスクとかスレッドという言葉は
このOS用語のタスク/スレッドと同じ意味で、
コンピュータの内部で動く一つ一つのプログラムのことを指します。

タスク/スレッドという風に併記してあるのは、
図6.1にある『(b)クライアントとやり取りする部分』を
タスク(プロセスという言葉を使う場合もあります)で実現する場合と
スレッドで実現する場合の両方があるので、二つを併記しているわけです。

なお、タスクで実現するか、スレッドで実現するかは、
性能をはじめとしたいろいろな事情を考慮して、
サーバプログラムを作る人が判断します。
タスクとして動くようにプログラムを作るか、
スレッドとして動くようにプログラムを作るか、
プログラムを作る人が決めるということですね。

それから、ソケットの上限に関係するのは
(いくつまで作れるかという数の問題ですよね?)
次の三つの要素です。

一つはソケットに割り当てるポート番号です。
ポート番号は16ビットですから、最大で65536個の値しかとれません。
クライアント側のポート番号はそれぞれが違う値にしなくてはいけないので、
クライアント側のソケットは65536個が上限になります。
なお、サーバ側のソケットは同じポート番号を割り当てることもできるので、
クライアント側より多数のソケットを作ることができるはずです。

もう一つは、OSのソケットテーブルの上限です。
こちらはOSの作り方によって違うでしょう。
個々のOSがいくつ、という数は私も知りません。

そして最後はメモリ容量です。
ソケットを作るとメモリを消費しますから、ソケットの数が多くなるとメモリがなくなります。
ポート番号の上限も、ソケットテーブルの上限も、十分に大きな値ですから、
実際の上限はメモリ容量によって決まると思って良いでしょう。
ソケットをたくさん作るっていうことは、
プログラムがたくさん動くっていうことでもありますから、
その面でもメモリが足りなくなるでしょう。
メモリがなくなる前に動作速度が低下して使い物にならなくなる、
という結果になるかもしれません。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.