进程状态转换及其PCB的变化
来源:互联网 发布:mysql mac 安装包下载 编辑:程序博客网 时间:2024/05/16 15:04
代码实现了模拟进程状态转换及其相应PCB内容、组织结构的变化。
#include<iostream>using namespace std;typedef struct pcb{ int id; struct pcb *next;}pcb;pcb *ready,*run,*block;pcb* cre()//创建带头结点的ready队列{ pcb *head=new pcb; head->next=NULL; pcb *q=head; int n; cout<<"输入进程数:\n"; cin>>n; for(int i=0;i<n;i++) { pcb *p=new pcb; cin>>p->id; p->next=NULL; q->next=p; q=p; } return head;}void ins(pcb *head,pcb *node)//插入节点{ pcb *p=head; while(p->next) { p=p->next; } pcb *n=new pcb; n->id=node->id; p->next=n; n->next=NULL;}void del(pcb *head){ pcb *p=head->next; if(p) { head->next=head->next->next; delete p; }}void dis(){ pcb *p; p=ready->next; cout<<"ready:\t"; while(p) { cout<<p->id<<" "; p=p->next; } cout<<endl; p=run->next; cout<<"run :\t"; while(p) { cout<<p->id<<" "; p=p->next; } cout<<endl; p=block->next; cout<<"block:\t"; while(p) { cout<<p->id<<" "; p=p->next; } cout<<endl;}int main(){ ready=cre(); run=new pcb; run->next=NULL; block=new pcb; block->next=NULL; dis(); int i; cout<<"chose:\t1:ready->run\t2:run->ready\t3:run->block\t4:block->ready\n"; while(cin>>i) { if(i==1) { if(ready->next) { if(run->next) { ins(block,run->next); del(run); } ins(run,ready->next); del(ready); } else { if(block->next) { ins(block,run->next); del(run); ins(run,block->next); del(block); } } } else if(i==2) { if(run->next) { if(ready->next) { ins(ready,run->next); del(run); ins(run,ready->next); del(ready); } } } else if(i==3) { if(run->next) { if(ready->next) { ins(block,run->next); ins(run,ready->next); del(run); del(ready); } else { ins(block,run->next); ins(run,block->next); del(block); del(run); } } } else if(i==4) { if(block->next) { ins(ready,block->next); del(block); } } else break; dis(); cout<<"chose:\t1:ready->run\t2:run->ready\t3:run->block\t4:block->ready\n"; } return 0;}
0 0
- 进程状态转换及其PCB的变化
- 进程的基本状态及其转换
- 进程的基本状态及其转换
- 进程的基本状态及其转换
- 进程的三种基本状态及其转换
- 学习笔记--进程的三种基本状态及其转换
- 操作系统 进程的三种状态及其转换
- 进程的三种基本状态及其转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程的状态转换
- 进程状态的转换
- C++ Primer Chapter 14-5
- 枚举
- 关于Win7系统安装XAMPP建站集成软件包80端口占用问题的解决方法
- 深度学习常用的数据集,包括各种数据跟图像数据。
- 自学-JUC简介-01
- 进程状态转换及其PCB的变化
- C语言(身份证问题)2017.4.23
- hadoop测试环境搭建1
- MySQL-workbench 添加外键&EER图
- C++ Primer Chapter 15-1
- 直接插入排序(JAVA实现)
- [编程题] 最长公共连续子串
- day6-html
- 对vslam、双目stereo的回顾