どーも、PlugOutです。
僕はシステムエンジニアなので、システムエンジニアじゃない人がシステムエンジニアと話をするときに覚えておくと便利そうな用語をまとめてみました。
基本的には業界用語や専門用語をメインにしています。
ちなみにタイトルにはPart1とつけていまして、色々とネタがまだあるようならPart2も書こうかなと思っていますよ!
# プロセス
プログラムによる一連の処理のこと。
例えば何らかのプログラムを起動した場合、それによって行われる処理のこと自体を差します。
良くプログラムとごっちゃにして使われています。
例:
プロセスが正常に起動しました。
まだこのプロセスは動いています。
# 殺す
物騒な単語ですが、これはシステムの命令のkill(殺す)からきています。
起動中のプロセスを強制的に終了させるときに使います。
主語になるのは人とは限らず、別のプログラムが殺す可能性もあります。
例:
このプロセスがなかなか終わらないから殺しておいて。
プロセスが時間内に終わらないので殺しておきました。
# 生き残る
終了すると思われていたプログラムが実は終了していなかった場合に使用します。
次にご紹介する「ゾンビ」と合わせて使用することが多いです。
例:
正常に終了したはずのプロセスが実は生き残っていました。
アプリケーションは全て終了させたはずなのにまだ生き残りがいる。
# ゾンビ
先ほどの殺すと合わせて、強制終了させたはずのプロセスが実は終了していなかった場合に使用します。
そしてその終了させたはずのプロセスが制御範囲外にある場合に良く使います。
ちなみに本来の意味のゾンビとは、死んだ人間が不思議な力で蘇った状態を差します。
(一度死んでから蘇ったを差すので、若干意味が変わって使われている気がします)
例:
不可解な挙動をしていたのは、ゾンビとしてプロセスが生き残っていて干渉していたからだと分かりました。
ゾンビのせいでプロセスが起動しない。
# 死ぬ
またまた物騒ですが、プロセスが想定外に終了した場合に使います。
例:
このプロセス、いつの間にか死んでんじゃん。
想定外にプロセスが死んでしまったので、該当の処理が行われなかったようです。
# フリーズ
プロセスが、意図せずに停止している状態を差します。
注意するのは次の処理の待機しているわけではなく、完全に動いていない場合を差すということです。
例:
プロセスでフリーズが発生し、その後何らかの理由で殺されたようです。
もしこのプロセスがフリーズしているなら殺しておいて。
# ログ
プロセスにおいて、その過程の何らかの情報を記録しておくこと、記録された情報、またその対象のこと。
大抵の場合はログファイルというものがあり、そこへプロセスがログとして情報を書き込みます。
ログを利用する一番の理由は、プロセスの中でどのような処理が行われたのかを後から確認するためです。
例えば想定外のエラーが発生した場合に、どんなエラーだったのかをログとしてログファイルに書き込んでおくと状況を確認しやすいです。
例:
ログにエラーの情報がないか確認して。
プログラム内にログが足りていないので、これ以上(状況を)追えません。
# ログを吐く
先ほどのログをファイルなどへ出力することです。
次にご紹介する「エラーを吐く」とごっちゃにして使われることもあります。
例:
このプロセス、想定していないログを吐いている。
ログを吐くようにしていなかったので、エラーの原因追及は難しいかと。
なんでログを吐くようにしていないの?
# エラーを吐く
エラーが発生すること。
先ほどのログと合わせてよく使われることが多いです。
例:
プロセスがログにエラーを吐いていないか確認して。
プロセスがエラーを吐いて死んでいました。
# 落ちる
複数の意味があります。
## 1
プロセスが想定外に終了すること。
先ほどのエラーを吐くと一緒に使われることが多いです。
また、先ほどの「殺す」を「落とす」に言い換えることもありますが、この場合は想定外の意味を含みません。
(意図的に終了させているので)
例:
このプロセス、エラー落ちしたようですね。
あ、(このプロセス)落ちたわ。
このプロセス、邪魔だから落としておいて。
## 2
完全にファイルなどがダウンロードされること。
「落とす」だと、ファイルなどをダウンロードすることを指します。
主語がプロセスなど、処理を指すもの以外の場合はこちらの場合が多いです。
例:
該当のファイルが全て落ちたようですね。
ファイルが全て落ちたことを確認してから処理を落としてください。
## 3
「欠落」の意味。
例えばログや出力結果などの中で情報が欠落している場合に使用します。
「抜けている」の言い換えとして考えると理解がスムーズかもしれません。
例:
このファイルからこの情報が落ちているようなので確認してください。
ログの中からこの情報が落ちているので異常です。
# スレッド
プロセスの中における、処理を実行する単位のことです。
一つのプロセスの中に複数のスレッドが同時に動作することがあり、これをマルチスレッドと呼び、反対に一つしかない場合はシングルスレッドと呼びます。
例えばスレッドAとスレッドBの2つのスレッドがプロセス内にあるとすると、AとBは独立して同時に動作します。
AとBがそれぞれ[1秒ごとに特定のURLへアクセスする]様な処理だとすると、処理結果としては1秒ごとに2回ずつ特定のURLへアクセスが発生します。
そしてプロセスが終了すると、それに所属するスレッドは全て終了します。
# 親子
複数の意味があります。
## 1
例えばプロセスから別のプロセスを起動させた場合、あるいはスレッドから別のスレッドを起動させた場合、起動元を親、起動先を子と呼びます。
大抵の場合、親が終了すると子も終了します。
# 例:
親プロセスが子プロセスの終了を待っているのでプロセスが終了しません。
これらのスレッドは親子関係です。
想定外に親が子を殺してしまったのでプロセスは異常終了しました。
## 2
データベースにおける依存関係のことです。
AとBの2つのテーブルがあり、Bの中にAが採番される情報を持っている場合、Aを親、Bを子と呼びます。
例:
親が既に削除済みだったので、取得結果に不足が生じた様です。
子がいない親がいたら全て削除しておいて。
なぜこれらのテーブルは親子関係である必要があるの?
## 3
オブジェクト指向における継承関係のことです。
Aというクラスがあり、Aを継承したBというクラスがあるとき、Aを親、Bを子と呼びます。
例:
親の実装が変更されたので、子が影響を受けてしまった様です。
このクラスを親にして子を作ればスマートです。
如何だったでしょうか?
これらの用語を覚えて
「子がエラーを吐いて死んでしまったので、子を待っていた親を殺しましたが、実はゾンビとして生き残っていたようです。」
「いいから早く親も子も殺して!」
なんて会話を聞いてもスマートに対応できるようになると良いと思います(白目)
ではでは!
エンジニアとして技術ブログもやっています。