umber of the PCB to be started:");Р cin>>pcb_number;Р?}Р?cout<<("\n ID priority CPUtime ALLtime State\n");Р for(i=0;i<pcb_number;i++)Р insert();Р //insert(pcb_number);Р */ Р?cout<<"就绪队列初始化成功!"<<endl;Р?::print_init (ready_queue);Р?cout<<endl;Р}Р//调用destory(),将进程插入阻塞队列Рvoid block(PCB *pcb)Р{//将pcb插入到阻塞队列Р?pcb->State =2; //将PCB所指进程的状态设置为阻塞Р?pcb->CPUtime -=2; //设进程执行半个时间片单位后被阻塞Р//?pcb->next =NULL; Р?print(pcb);Р?cout<<(" 变迁2:running->blocked\n");Р?//将pcb插入到阻塞队列Р?//插入方式参考唤醒条件Р?//因为是随机唤醒一个进程,所以简单的把它放置在阻塞队列的头部Р?pcb->next =block_queue->next ;Р?block_queue->next =pcb;Р}Рvoid update(PCB *pcb)Р{//就绪队列中进程的优先级均增加1Р?PCB *temp=ready_queue->next ;Р?while(temp && temp->next )Р?{//就绪队列的最后一个是闲逛进程Р temp->priority ++;Р temp=temp->next ;Р?}Р}Рvoid run_priority(PCB *pcb)Р{Р?//如果pcb是闲逛进程,则不作处理,再次放入就绪队列ready_queue