Python Forensics-다중 처리 지원

법의학 전문가들은 일반적으로 일반적인 범죄에서 디지털 증거를 분석하기 위해 디지털 솔루션을 적용하기가 어렵다는 것을 알게됩니다. 대부분의 디지털 조사 도구는 단일 스레드이며 한 번에 하나의 명령 만 실행할 수 있습니다.

이 장에서는 일반적인 포렌식 문제와 관련 될 수있는 Python의 다중 처리 기능에 초점을 맞출 것입니다.

다중 처리

다중 처리는 둘 이상의 프로세스를 지원하는 컴퓨터 시스템의 기능으로 정의됩니다. 다중 처리를 지원하는 운영 체제를 사용하면 여러 프로그램을 동시에 실행할 수 있습니다.

다음과 같은 다양한 유형의 다중 처리가 있습니다. symmetricasymmetric processing. 다음 다이어그램은 일반적으로 법의학 조사에서 따르는 대칭 다중 처리 시스템을 나타냅니다.

다음 코드는 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() 시스템의 프로세스 집합을 나열하는 데 도움이됩니다.

산출

코드는 다음과 같은 출력을 생성합니다.