文件1：process.c - 进程管理

职责：进程的创建、撤销、查找、PCB维护
函数名	功能说明
proc_create(name, priority, total_time)	创建进程：分配PID、初始化PCB、设置state=NEW、记录到达时间
proc_terminate(pid)	撤销进程：释放PCB、记录结束时间、释放持有的资源
proc_find(pid)	根据PID查找进程PCB
proc_get_count()	获取当前活跃进程数
proc_reset_stats()	重置所有进程的统计信息
proc_set_finish_time(pid, time)	设置进程结束时间
proc_print_all()	打印所有进程信息

文件2：scheduler.c - 调度管理

职责：就绪队列管理、FCFS/RR/优先级/MLFQ调度算法、调度循环、时钟中断、性能对比
函数名	功能说明
初始化与主循环		
scheduler_init(algo, time_quantum)	初始化调度器：设置算法类型、时间片、就绪队列为空
scheduler_run(duration_ms)	调度主循环：运行指定时长，每1ms调用tick
就绪队列操作		
scheduler_add(pcb)	将进程加入就绪队列（调用当前算法的enqueue）
scheduler_next()	从就绪队列取下一个进程（调用当前算法的dequeue）
时钟与抢占		
scheduler_tick()	时钟中断：检查时间片，触发抢占
scheduler_preempt()	抢占当前进程：放回队列，重新调度
FCFS算法		
fcfs_enqueue(pcb)	尾部入队
fcfs_dequeue()	头部出队
RR算法		
rr_enqueue(pcb)	尾部入队
rr_dequeue()	头部出队
优先级算法		
priority_enqueue(pcb)	按priority升序插入（数字越小优先级越高）
priority_dequeue()	头部出队
MLFQ算法		
mlfq_enqueue(pcb)	按mlfq_level入队到对应队列（0最高，3最低）
mlfq_dequeue()	从高到低找第一个非空队列取头部
mlfq_tick()	时间片用完则降级（level++），放回队列
mlfq_boost()	每100ms将所有进程提升到队列0（防止饥饿）
性能对比		
benchmark_run()	依次测试4种调度算法，计算平均周转时间/响应时间，输出对比报告
辅助		
scheduler_get_algo_name()	获取当前调度算法名称

文件3：ipc.c - 进程通信

职责：消息队列、共享内存、管道
函数名	功能说明
消息队列		
msg_send(to_pid, type, data, len)	发送消息：将消息加入目标进程队列，若对方阻塞则唤醒
msg_receive(from_pid, type)	接收消息：从自己队列取消息，无消息则阻塞
msg_queue_create(pid, max_size)	为进程创建消息队列
msg_queue_destroy(pid)	销毁进程的消息队列
共享内存		
shm_create(size)	创建共享内存区域，返回shm_id
shm_attach(shm_id)	将当前进程附加到共享内存，返回虚拟地址
shm_write(shm_id, offset, data, len)	向共享内存写入数据
shm_read(shm_id, offset, buf, len)	从共享内存读取数据
shm_detach(shm_id)	将当前进程从共享内存分离
shm_destroy(shm_id)	销毁共享内存
管道		
pipe_create()	创建管道，返回pipe_id
pipe_write(pipe_id, data, len)	向管道写入数据（阻塞直到有空间）
pipe_read(pipe_id, buf, len)	从管道读取数据（阻塞直到有数据）
pipe_close(pipe_id, close_reader, close_writer)	关闭管道的一端或全部

文件4：sync.c - 同步管理

职责：信号量P/V、互斥锁、阻塞、唤醒、等待队列管理
函数名	功能说明
信号量		
sem_create(name, init_value)	创建信号量，初始化值和等待队列
sem_wait(sem_id)	P操作：value-1，若<0则阻塞当前进程
sem_signal(sem_id)	V操作：value+1，若<=0则唤醒等待队列头部进程
互斥锁
mutex_create(name)	创建互斥锁（二元信号量，初始值为1）
mutex_lock(mutex_id)	加锁：若已被占用则阻塞
mutex_trylock(mutex_id)	尝试加锁：不阻塞，立即返回成功或失败
mutex_unlock(mutex_id)	解锁：释放锁，唤醒等待者
阻塞与唤醒		
proc_block(sem_id)	阻塞当前进程：state=BLOCKED，加入等待队列，触发调度
proc_wakeup(pcb)	唤醒指定进程：state=READY，从等待队列移除，加入就绪队列

文件5：output.c - 可视化输出

职责：JSON格式的系统状态输出、事件日志、性能统计
函数名	功能说明
output_init(json_mode)	初始化输出模块（设置是否JSON模式）
output_snapshot()	输出完整系统状态JSON（时间、当前进程、调度算法、所有进程列表）
output_event(event_name, pid, extra)	输出事件日志JSON（事件名、PID、时间、附加信息）
output_stats(avg_turnaround, avg_response, total_switches)	输出性能统计JSON