#!/usr/bin/env python3 """ 先来先服务调度算法 (FCFS) First Come First Served """ from typing import List, Dict from base import ( Process, ProcessScheduler, generate_random_processes, print_processes ) class FCFSScheduler(ProcessScheduler): """先来先服务调度 (First Come First Served)""" def schedule(self) -> Dict: """FCFS 调度算法""" # 按到达时间排序 ready_queue = sorted(self.processes, key=lambda p: (p.arrival_time, p.pid)) current_time = 0 for p in ready_queue: if p.arrival_time > current_time: current_time = p.arrival_time p.start_time = current_time current_time += p.burst_time self.calculate_metrics(p, current_time) self.results.append(p) return self.print_results("FCFS (先来先服务)") if __name__ == "__main__": processes = generate_random_processes(n=5, seed=42) print_processes(processes, "测试数据") scheduler = FCFSScheduler(processes) scheduler.schedule()