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ư symmetric và asymmetric 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: