⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 时间片.cpp

📁 操作系统 银行家算法 。。。。及课件 和课后习题答案
💻 CPP
字号:
#include "stdafx.h"

#include <iostream.h>
struct pcb
{
  char q;
  int atime;
  int btime;
  char state;
  struct pcb *next;
} ;
char proc[5]={'a','b','c','d','e'};
int a[5]={4,3,5,2,4};
pcb *link(char proc[],int a[],int n)
{
	  pcb *head,*r,*p;
	  for(int i=0;i<n;i++)
	  {
		  p=(pcb *)new(pcb);
		  p->q=proc[i];
          p->atime=a[i];
          p->btime=0;
          p->state='r';
		  p->next=NULL;
          if (i==0)
		  {
			  head=p;r=p;
		  }
		  else
		  {
			  r->next=p;r=p;
		  } 

	  } 
	  r->next=head;
	  return head;	  
}   	 
  void deal(pcb *h,int n)
  {
	  pcb *r,*s,*p;
	  r=h;s=h;
	  int j=5;
	  int flag=0;
	  for(int i=0;i<n;i++)
	  {
		 cout <<"第"<<i+1<<"次运行的过程:"<<endl;
		 
		for(int f=0;f<flag;f++)
			  {j-=1;}
		flag=0;
		  for(int i=0;i<j;i++)
		  {
			  
			  
			  if (j==0) {break;}
              s->btime=s->btime+1;
			  if (s->btime==s->atime)
			  {
				  s->state='e';
			      p=s;
				  r->next=p->next;
				 
				  cout<<s->q<<' '<<s->atime<<' '<<s->btime<<' '<<s->state<<' '<<s->q<<"运行完"<<endl;
				  s=s->next;
				  delete p; 
				  flag+=1;
			  }
			  else
			  {
				r=s;
			    s=s->next;
			    cout<<r->q<<' '<<r->atime<<' '<<r->btime<<' '<<r->state<<' '<<endl;
				
			  }
		
		  }
		  
	  }
	  
  }
void main()
{
	pcb *head;
    head=link( proc, a,5);
    deal(head, 5);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -