Python Forensics - Çoklu İşlem Desteği

Adli tıp uzmanları, normal olarak adli suçlardaki dijital kanıt yığınlarını analiz etmek için dijital çözümler uygulamayı zor buluyorlar. Çoğu dijital araştırma aracı tek iş parçacıklıdır ve aynı anda yalnızca bir komutu yürütebilirler.

Bu bölümde, ortak adli zorluklarla ilgili olabilecek Python'un çoklu işlem yeteneklerine odaklanacağız.

Çoklu işlem

Çoklu işlem, bilgisayar sisteminin birden fazla işlemi destekleme yeteneği olarak tanımlanır. Çoklu işlemeyi destekleyen işletim sistemleri, birkaç programın aynı anda çalışmasını sağlar.

Çeşitli çoklu işlem türleri vardır; örneğin symmetric ve asymmetric processing. Aşağıdaki diyagram, genellikle adli soruşturmada izlenen simetrik bir çoklu işlem sistemine ilişkindir.

Misal

Aşağıdaki kod, Python programlamasında farklı işlemlerin dahili olarak nasıl listelendiğini gösterir.

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."

Burada işlev list_append() sistemdeki süreçlerin listelenmesine yardımcı olur.

Çıktı

Kodumuz aşağıdaki çıktıyı üretecektir -