Python Forensics - Hỗ trợ đa xử lý

Các chuyên gia pháp y thường khó áp dụng các giải pháp kỹ thuật số để phân tích hàng núi bằng chứng kỹ thuật số trong các tội phạm thông thường. Hầu hết các công cụ điều tra kỹ thuật số là đơn luồng và chúng chỉ có thể thực hiện một lệnh tại một thời điểm.

Trong chương này, chúng ta sẽ tập trung vào các khả năng đa xử lý của Python, có thể liên quan đến các thách thức pháp lý phổ biến.

Đa xử lý

Đa xử lý được định nghĩa là khả năng của hệ thống máy tính hỗ trợ nhiều hơn một quá trình. Hệ điều hành hỗ trợ đa xử lý cho phép một số chương trình chạy đồng thời.

Có nhiều loại xử lý đa dạng như symmetricasymmetric processing. Sơ đồ sau đề cập đến một hệ thống đa xử lý đối xứng thường được tuân theo trong điều tra pháp y.

Thí dụ

Đoạn mã sau đây cho thấy cách các quy trình khác nhau được liệt kê nội bộ trong lập trình 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."

Đây, hàm list_append() giúp liệt kê tập hợp các quy trình trong hệ thống.

Đầu ra

Mã của chúng tôi sẽ tạo ra kết quả sau: