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()*は、システム内の一連のプロセスをリストするのに役立ちます。

出力

私たちのコードは次の出力を生成します-

マルチプロセッシングサポート出力