Python-forensics-multiprocessing-support
提供:Dev Guides
Pythonフォレンジック-マルチプロセッシングサポート
通常、法医学の専門家は、一般的な犯罪におけるデジタル証拠の山を分析するためにデジタルソリューションを適用することは難しいと感じています。 ほとんどのデジタル調査ツールはシングルスレッドであり、一度に1つのコマンドしか実行できません。
この章では、Pythonのマルチプロセッシング機能に焦点を当てます。これは、一般的なフォレンジックの課題に関連する可能性があります。
マルチプロセッシング
マルチプロセッシングは、複数のプロセスをサポートするコンピューターシステムの能力として定義されます。 マルチプロセッシングをサポートするオペレーティングシステムにより、複数のプログラムを同時に実行できます。
- 対称*や*非対称処理*など、さまざまなタイプのマルチプロセッシングがあります。 次の図は、通常の法医学調査で使用される対称型マルチプロセッシングシステムを示しています。
例
次のコードは、Pythonプログラミングの内部でさまざまなプロセスがどのようにリストされるかを示しています。
import random
import multiprocessing
def list_append(count, id, out_list):
#appends the count of number of processes which takes place at a time
for i in range(count):
out_list.append(random.random())
if __name__ == "__main__":
size = 999
procs = 2
# Create a list of jobs and then iterate through
# the number of processes appending each process to
# the job list
jobs = []
for i in range(0, procs):
out_list = list() #list of processes
process1 = multiprocessing.Process(
target = list_append, args = (size, i, out_list))
# appends the list of processes
jobs.append(process)
# Calculate the random number of processes
for j in jobs:
j.start() #initiate the process
# After the processes have finished execution
for j in jobs:
j.join()
print "List processing complete."
ここで、関数* list_append()*は、システム内の一連のプロセスをリストするのに役立ちます。
出力
私たちのコードは次の出力を生成します-