def main(args): processes = [] try: console_writer_q, log_file_q, metadata_file_q = set_up_writers(args) print("[!] Set up plugins. it may take a few seconds ..") sleep(2.5) acm = Acf(device_id=args.device_id, threads_num=args.threads) acm.setDaemon(True) acm.start() adb = AndroidDebuggingBridge(args.device_id) while True: running_processes = get_running_processes(adb, args.package_filter, args.user_filter) for process in running_processes: if process not in processes: p = Process(process, console_writer_q, log_file_q, metadata_file_q) processes.append(process) acm.processes.append(p) sleep(1.2) except KeyboardInterrupt: print("Bye Bye") exit(0)
def _init_process(self): """ Initialize process class when it's needed by pymem. """ self.process = Process()
print("\nNew process input...") arrival_time = input("\tProcess arrival time: ") priority = input("\tProcess priority: ") burst_time = input("\tProcess burst time: ") try: arrival_time = int(arrival_time) priority = int(priority) burst_time = int(burst_time) except: print("Invalid input...\n") continue new_process = Process(burst_time, arrival_time, priority) processes.append(new_process) print(f"New process [id: {new_process.id}] added successfully.") user_input = input("Keep adding processes? [y/n] ") == "y" print("\n" + tabulate( [[ process.id, process.arrival_time, process.priority, process.burst_time ] for process in processes], headers=["Process", "Arrival Time", "Priority", "Burst Time"])) print("\nRunning scheduling algorithms...\n")
import sys from modules.process import Event,Process e1 = Event("e1",1,None) e2 = Event("e2",2,None) e3 = Event("e3",4,None) e4 = Event("e4",3,e2) e5 = Event("e5",5,None) e6 = Event("e6",6,None) e7 = Event("e7",7,e6) e8 = Event("e8",8,None) e9 = Event("e9",9,e3) p1 = Process("P1",[e1,e2,e5],0) p2 = Process("P2",[e4,e3,e6],0) p3 = Process("P3",[e7,e8,e9],0) # p2.display_events() # if p1.search_event(e1): # print("Element found") # sys.exit() def lamport(all_processes): all_events = [] for process in all_processes: for event in process.events: all_events.append(event)
# Processo com prioridade 0 (de tempo real) tentando utilizar impressora 1 procs_descr[0]['printer_cod'] = 1 print('\nVerificação de disponibilidade de recursos do processo 0, prioridade 0, printer 1...') err_msgs = resmngr._resources_availability(procs_descr[0]) assert len(err_msgs) == 1 print(err_msgs) procs_descr = original_procs() err_msgs = [] # Ambos os processos de usuário, processo 1 com modem, impressora 1 e disco 2 alocados e o processo 0 # verificando se pode alocar o modem e o disco 2 err_msgs = [] procs_descr[0]['priority'] = 3 procs_descr[0]['modem'] = 1 procs_descr[0]['disk_cod'] = 2 process1 = Process(priority=1, printer_cod=1, scanner=0, modem=1, disk_cod=2, init_time=0, total_exec_time=0, blocks=0) resmngr.allocate(process1) print("\nVerificação de disponibilidade do modem e do disco para o processo 0...") err_msgs = resmngr._resources_availability(procs_descr[0]) assert len(err_msgs) == 2 print(err_msgs) err_msgs = [] # Teste do método free() resmngr.free(process1) print("\nVerificação de disponibilidade do modem e do disco para o processo 0 depois de chamar free()...") err_msgs = resmngr._resources_availability(procs_descr[0]) assert len(err_msgs) == 0 print(err_msgs)