#include<bits/stdc++.h>
using namespace std;
struct PCB{
    //进程名
    char process_name[20];
    //进程id
    int process_id;
    //优先数
    int priority_number;
    //到达时间
    int arrive_time;
    //运行时间
    int run_time;
    //已经运行cpu的时间
    int already_run_cpu;
    //进程状态
    char process_state[10];
    //阻塞原因
    char obstruction cause[20];
    //创建PCB的优先顺序
    friend bool operator < (const PCB x,const PCB y)
    {                 
        return x.priority_number<y.priority_number;
    }
}PCB;
//系统当前的进程数
int system_all_process;
//系统当前CPU运行的时间
int system_run_cpu;

//创建进程process的优先队列
priority_queue <PCB>process;
//创建一个就绪队列
queue<PCB>queue_ready;
//创建一个运行队列
queue<PCB>queue_run;
//创建一个阻塞队列
queue<PCB>queue_block;

//创建一个进程
void create_process(char name[20],int priority,int arrive,int run_time,int run_cpu)
{
    PCB pcb=(PCB)malloc(sizeof(PCB));
    pcb.process_name=name;
    pcb.already_run_cpu=run_cpu;
    pcb.arrive_time=arrive;
    pcb.obstruction_cause="暂未阻塞";
    pcb.priority_number=priority;
    pcb.run_time=run_time;
    pcb.process_state="就绪";
    pcb.process_id=system_all_process;
    queue_ready.push(pcb);
}
void Calculation_run_cpu()
{
    cout<<"当前系统CPU运行时间为:";
    cout<<system_run_cpu<<endl;
}
//根据进程的id让进程执行I/O事件
void implement_io(int pbc_id)
{
    
}
int main()
{
    
    return 0;
}