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

📄 进程1.cpp

📁 设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通讯机构
💻 CPP
字号:
#include<iostream.h>
#include<slist.h>
void main()
{
int n;
char a;
cout<<"\n*********************进程管理小模拟系统********************\n"<<endl;
queue zhixing,jiuxu,zuse;
cout<<"\n*********************注意:********************\n1.若想结束输入,请输入R。\n2.本模拟系统进程调度采用的是先来先服务算法,输入进程名的顺序即为到达cpu的顺序\n"<<endl;
char r;
r='R';
for(int i=0;;i++)
{   
	char e[100];
	cout<<"输入进程名:"<<" ";
	cin>>e[i];
	if(e[i]!=r)
		jiuxu.enqueue(e[i]);
	else
		break;
}
A: cout<<"\n请选择操作:1、执行进程;2、将阻塞队列中进程调入就绪队列;3、封锁进程;4、结束进程;5、退出程序。 ";
cin>>n;
if(n==1)
{
if(!zhixing.isempty ())
{
	cout<<"已经有进程在执行!,此操作不能执行\n";
	char w;
	cout<<endl;
	cout<<"如果要继续请输入#;如果要退出按其它任意键"<<endl;
	cout<<"要选择的操作:";
	cin>>w;
    if(w=='#')goto L;
	else goto E;
}
else
{
	if(!jiuxu.isempty())
	{
		a=jiuxu.dequeue();
     if(a!=r)
      zhixing.enqueue(a);
goto L;
	}
	else goto L;
}
}
else if(n==2)
{
	if(!zuse.isempty())
	{
     a=zuse.dequeue ();
      if(a!=r)
       jiuxu.enqueue(a);
      goto L;
	}
	else goto L;
}
else if(n==3)
{
if(!zhixing.isempty())
	{
    a=zhixing.dequeue ();
    if(a!=r)
    zuse.enqueue(a);
     goto L;
}
else goto L;
}
else if(n==4)
{
cout<<"\n请输入要结束的进程名: ";
cin>>a;
if(zhixing.find (a)||jiuxu.find (a)||zuse.find (a))
{
	if(zhixing.find(a))
	{zhixing.del(a);}
     else if(jiuxu.find(a))
	 {jiuxu.del(a);}
    if(zuse.find(a))
	{zuse.del(a);}
    cout<<"\n结束进程成功!\n"<<endl;
    goto L;
} 
else
cout<<"没有此进程"<<endl;
goto L;
L: 
if(n==1||n==2||n==3||n==4)
{
cout<<"执行队列"<<endl;
zhixing.display();
cout<<endl;
cout<<"就绪队列"<<endl;
jiuxu.display();cout<<endl;
cout<<"阻塞队列"<<endl;
zuse.display();cout<<endl;
goto A;
}


else if(n==5);
else 
{
cout<<"\n你的输入错误!\n";
goto A;
}
}
E:;
}

⌨️ 快捷键说明

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