2011年10月19日水曜日
2011年9月25日日曜日
2011年9月20日火曜日
Windows 7の導入におけるIE9の影響
2011年8月5日金曜日
Microsoft Office に PDFMaker アイコン(Adobe PDF への変換)やメニューが表示されない(Windows 版 Acrobat 8)
2010年4月22日木曜日
ITイニシアティブのバックナンバー
「経営とITをつなぐ実践情報誌 ITイニシアティブ」のバックナンバーが、ブラウザ対応の電子版で公開されました。
クラウドコンピューティング、仮想化、ビジネス・インテリジェンス、データ統合など最新のエンタープライズITの動向
やキーパーソンの寄稿が掲載されています。
EnterpriseZine会員(無料)の方はどなたでも閲覧が可能です。
『ITイニシアティブ』電子版はこちら⇒ http://enterprisezine.jp/iti/
経営・ビジネス・ITをつなぐ実践情報誌 ITイニシアティブ
2008年9月18日木曜日
プロセスとスレッド
プロセスとは、プログラム(実行バイナリ)がOS上に実体を持ち、実行できる状態になったもののことです。プログラムそのものは、ファイルです。
プロセスはプログラムがメモリにロードされて実行できる状態になったものを指します。
スレッドとは、プロセスの中での実行単位のことです。
ひとつのプロセスには、必ず、ひとつ以上のスレッドを持ちます。
ひとつのプロセスに、複数のスレッドを持たせることができます。
ひとつのプロセスに複数のスレッドがあれば、複数のCPUで同時に処理を実行することができます。このことを、並列処理とかマルチスレッドと言います。
プロセスかスレッドのどちらかを複数にすることにより、マルチスレッド処理を実現することができます。
Javaでは、比較的、簡単に、マルチスレッド処理を実現できます。Javaでは、JavaVMがOSに対して、マルチスレッドで処理を実行するように制御してくれます。
たいていのDBMSは、複数プロセスや複数スレッドでの構成になっているため、複数の処理を同時に実行することができます。
プロセスは、「生成」されてから処理が行われるまでに、「実行」、「スリープ」、「実行可能」の状態に変化します。
「生成」とは、プロセスの誕生に相当します。次に、「実行可能」な状態になります。実行可能な状態とは、実行する準備が整ったということを意味します。その後、CPUが使用できるようになれば、「実行」状態となり、処理が行われます。ただ、どんなプロセスでも、ずっと処理が実行され続けることはありません。それは、途中で、データの読み込みや、書き込みをしたり、自ら、処理を一時的に停止したりするためです。これを、「スリープ」の状態と言います。WindowsやUNIX、LinuxのOSで、プロセスの一覧を確認すると、多数のプロセスが表示されますが、ほとんどが、何も処理をしていない「スリープ」の状態です。スリープ状態のプロセスは、たいていは、要求していた入出力が与えられると、目を覚まします。目が覚めたプロセスは、「実行可能」な状態になり、CPUが利用できるようになると「実行」状態になります。
UNIXやLinuxのvmstatコマンドを例に、プロセスとリソースの関係性について、説明します。
ひとつのプロセス(または、スレッド)が「実行中」の場合は、ひとつのCPU(または、コア)を利用していることになります。
「実行可能」な状態の場合は、CPUの使用率には現れず、run queue(procsのr列)に現れます(Windowsの場合は、Processor Queue)。
「スリープ」の状態の場合は、I/O待ちとなりますが、I/O待ちには、2種類あります。ディスクI/O待ちとネットワークI/Oです。ディスクI/O待ちであれば、wait I/OとしてCPU使用率に現れる(cpuのwa列)のと同時に、ブロックされているプロセス数として現れます(procsのb列)。ネットワークI/O待ちの場合は、wait I/Oには現れません。
ちなみに、プロセスがすべてスリープ状態であれば、CPUのアイドル(idle)として表示されます。(cpuのid列)