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

📄 porcess.h

📁 模拟操作系统,主要完成了文件管理,程管理等
💻 H
字号:
#include "stdio.h"
#define running 1
#define aready 2      /*  */
#define blocking 3
#define sometime 5
#define pn 10

struct
{
	int name;
	int status; 
	int ax, bx, cx, dx;
	int pc;
	int psw;
	int next;
}pcbarea[pn];

int PSW,AX,BX,CX,DX,PC,TIME;
int run;

struct
{
	int head;
	int tail;
}ready;

int pfree;

sheduling( )
{
	int i;
	if (ready.head==-1)
	{
		printf("无就绪进程\n");
		return;
	}
	i=ready.head;
	ready.head=pcbarea[ready.head].next;
	if(ready.head==-1)ready.tail=-1;
	pcbarea[i].status=running;
	TIME=sometime;
	AX=pcbarea[run].ax;
	BX=pcbarea[run].bx;
	CX=pcbarea[run].cx;
	DX=pcbarea[run].dx;
	PC=pcbarea[run].pc;
	PSW=pcbarea[run].psw;
	run=i;
}

create(int x)
{
	int i;
	if(pfree==-1)
	{printf("无空闲进程控制块,进程创建失败\n");
	return;
	}
	i=pfree;
	pfree=pcbarea[pfree].next;
	pcbarea[i].name=x;
	pcbarea[i].status=aready;
	pcbarea[i].ax=x;
	pcbarea[i].bx=x;
	pcbarea[i].cx=x;
	pcbarea[i].dx=x;
	pcbarea[i].pc=x;
	pcbarea[i].psw=x;
	if(ready.head!=-1)
	{
		pcbarea[ready.tail].next=i;
		ready.tail=i;
		pcbarea[ready.tail].next=-1;
	}
	else
	{
		ready.head=i;
		ready.tail=i;
		pcbarea[ready.tail].next=-1;
	}
}

⌨️ 快捷键说明

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